1. 18 Jan, 2002 1 commit
  2. 17 Jan, 2002 1 commit
  3. 15 Jan, 2002 2 commits
  4. 14 Jan, 2002 1 commit
  5. 10 Jan, 2002 1 commit
  6. 08 Jan, 2002 2 commits
  7. 07 Jan, 2002 1 commit
  8. 03 Jan, 2002 1 commit
  9. 02 Jan, 2002 1 commit
    • Christopher Alfeld's avatar
      · 1eb1e1d9
      Christopher Alfeld authored
      This check-in consists of 7 modifications to assign.
      
      1. Equivalence Classes
      
      Defined an equivalence relation on the physical nodes and applied it
      to the physical topology to get the resulting quotient topology (abuse
      of terminology).  So instead of searching among all possible physical
      nodes to make a map, assign only searches among all possible
      equivalence classes of nodes.  This tremendously reduces the search
      space.  At the time of this writing it reduces the physical topology
      from 252 nodes to 13 nodes.  The equivalence classes are generated
      automatically from the ptop file.
      
      2. Scoring based on equivalence classes.
      
      Each equivalence class used comes with a significant cost.  This
      strongly encourages assign to use equivalence machines when possible.
      The result is that an experiment that does not otherwise specify will
      almost definitely get machines of the same type.  If this needs to be
      reduced in the future it is the SCORE_PCLASS constant.
      
      3. Heuristics
      
      Added a bunch of heuristics for choosing which equivalence class to
      use.  This was less successful than I hoped.  A good solution is now
      found in record time but it still continues searching.  When OPTIMAL
      is turned on these heuristics help a lot.  When off they make little
      difference.  I may turn this into a compile time option in the future
      since the heuristics do take non-trivial CPU cycles.
      
      4. Fixed the very-very-big-and-evil disconnected-switches bug.
      
      Assign wasn't cleaning up after itself in certain cases.  Disconnected
      graphs are now merely a minor, easily ignored, bump rather than the
      towering cliffs they use to be.
      
      5. Fixed the not-yet-noticed not-enough-nodes bug.
      
      Found a bug that probably has never come up before because we have
      checks that avoid those circumstances.
      
      6. Modified constants.
      
      I was tired of waiting so long for results so, I lowered CYCLES and
      reduced the constant for naccepts (Mac, you probably want to add that
      inconspicuous number to your configurable constants; look for
      "naccepts =").  The results is roughly a speedup of 2.  It works great
      currently but we may want to change these numbers up again if we get
      problems with features and desires.
      
      7. General clean up.
      
      Associated with the other changes was a lot of restructuring and some
      cleanup.  Specifically to the assign loop and scoring code.
      1eb1e1d9
  10. 29 Nov, 2001 1 commit
  11. 05 Sep, 2001 1 commit
  12. 26 Jul, 2001 1 commit
  13. 25 Jul, 2001 1 commit
  14. 24 Jul, 2001 1 commit
    • Christopher Alfeld's avatar
      This commit contains two signifcant changes: · 210aa1ec
      Christopher Alfeld authored
      1. 'tb-set-hardware ... shark' and 'tb-set-hardware ... dnard' are now
      functionally identical.  Previously only the former worked but both passed
      the parser.
      
      2. Assign will now exit very quickly in the case that, for a given virtual
      nodes, there are no physical nodes that could match in type.  This should
      never happen as the parser and assign_wrapper have checks that usually
      prevent this.  However, in the case of problems in the code (such as #1)
      this'll make it easier to debug.  In addition, as we add more types of
      nodes and our estimates becoming increasingly inaccurate cases where this
      might occur could slip in.  All calling code treats this identically to an
      'insufficient resources' failure.
      210aa1ec
  15. 23 Jul, 2001 1 commit
  16. 20 Jul, 2001 1 commit
    • Christopher Alfeld's avatar
      This is a nearly complete rewrite of the assign interswitch code. Assign · 8078740b
      Christopher Alfeld authored
      now precomputers the shortest path between all pairs of switches and uses
      this to computer paths through the switch fabric.  In the process of
      writing this I also removed the limitations of two switch hops.  Packets
      can now travel through any number of switches to reach their destination.
      Of course, the longer the path the more it costs so assign will prefer
      shorter paths.
      
      Also did various other tweaks in the process.  We now use strings almost
      everywhere instead of char*'s and the makefile is cleaner.
      8078740b
  17. 20 Jun, 2001 1 commit
  18. 03 May, 2001 1 commit
  19. 24 Apr, 2001 2 commits
  20. 23 Mar, 2001 2 commits
  21. 21 Mar, 2001 1 commit
  22. 15 Mar, 2001 1 commit
  23. 14 Mar, 2001 1 commit
  24. 13 Mar, 2001 1 commit
  25. 01 Mar, 2001 1 commit
  26. 03 Jan, 2001 1 commit
  27. 02 Jan, 2001 1 commit
  28. 27 Dec, 2000 1 commit
  29. 26 Dec, 2000 1 commit
  30. 21 Dec, 2000 1 commit
  31. 01 Dec, 2000 1 commit
  32. 26 Sep, 2000 1 commit
  33. 25 Aug, 2000 1 commit
  34. 03 Jul, 2000 1 commit
  35. 29 Mar, 2000 1 commit
  36. 05 Jan, 2000 1 commit