1. 10 Nov, 2010 1 commit
  2. 20 May, 2009 1 commit
  3. 01 Mar, 2007 1 commit
  4. 25 Jan, 2006 1 commit
    • Robert Ricci's avatar
      Merge in changes from the assign-devel branch. This includes: · ed3cbc13
      Robert Ricci authored
      Ripping out crope and replacing (almost) all cropes, char*s and
      strings with fstring
      
      Beginnings of XML parser support (not built by default yet).
      
      Significant re-org of code.
      
      Should now compile with the latest gcc.
      
      Putting link information in stored solutions.
      
      Support for fixing interfaces.
      ed3cbc13
  5. 11 Aug, 2004 1 commit
  6. 03 Jun, 2004 1 commit
    • Robert Ricci's avatar
      'port' assign to compile under gcc 3 (specifically tested with 3.3.1). · f05e1008
      Robert Ricci authored
      This mostly required messing with the STL #includes.
      
      Still builds under gcc 2.95, and won't be built with 3.3 by default
      until I've spent more time testing it.
      
      One reason for doing this is that gcc 3.3 seems to generate faster
      code from templated functions. Tests so far show that the
      gcc3-compiled binary shaves 15-30% off of assign's runtime.
      
      The other reason for doing this is forward-looking. When we end up
      getting boss running on FreeBSD 5 or a recent Linux distro, the
      compiler is likely to be from the gcc 3 branch.
      f05e1008
  7. 26 Apr, 2004 1 commit
    • Robert Ricci's avatar
      Some big changes to assign, and some related changes to assign_wrapper · 238dce73
      Robert Ricci authored
      and ptopgen.
      
      Add link typing to assign. Each virtual link is given a single type.
      Each physical link is given one or more types. A virtual link will
      only be mapped to a physical link which can satisfy its type. In both
      the top and ptop files, the link types are now mandatory, and they
      fall at the end of the mandatory link arguments.
      
      This differers from the 'regular' type system in two ways. First, a
      plink is not constrained to filling only one type at a time. If we are
      using emulated links, a plink could satisfy, say, an 'ethernet' link
      and an 'fxp' link at the same time. This seems to more naturally match
      the way we'll use link types.  Second, there are no counts assoicated
      with link types, as there are for node types. ie. a link is not an
      'ethernet:1' link, it's an 'ethernet' link. Presumably, when
      multiplexing virtual links onto a physical one, it's bandwidth that's
      the factor that limits the multiplexing.
      
      The link type is now taken into account when constructing pclasses,
      and in the mapping precheck.
      
      As a side-effect of these changes, the silly 'count' argument on the
      end of link lines in the ptop file, which was used for the fake LAN
      nodes, is no longer supported.
      
      The implementation could be a bit more efficient, but that would mean
      tossing more of the stuff we do with boost's graph library. I think
      this should happen, but today is not the day.
      
      Modify assign_wrapper and ptopgen to spit out top and ptop files in
      the new format.
      
      Changed the constant LINK_UKNOWN to LINK_UNMAPPED - the new name more
      accurately reflects the way this constant is used.
      
      Add a new '-n' flag that tells assign not to do annealing, just exit
      after the type precheck.
      
      Clarify the usage message for the -c flag.
      
      Removed some dead code for dealing with LAN nodes.
      238dce73
  8. 17 Dec, 2003 1 commit
    • Robert Ricci's avatar
      Add the ability to have vritual nodes that consume more than one · 13c6d59f
      Robert Ricci authored
      'slot'. In the top file, you can how give' the virtual node's type as
      type:count - sim:5, for example. If you give no count, it defaults to
      one.
      
      The idea here is to allow a pre-pass to assign to 'coarsen' the
      virtual graph. This pre-pass could, for example, combine several
      virtual or simulated nodes into one so that assign has a simpler
      virtual graph to work with.
      13c6d59f
  9. 08 Sep, 2003 1 commit
  10. 04 Sep, 2003 2 commits
  11. 20 Jun, 2003 1 commit
  12. 17 Apr, 2003 1 commit
    • Robert Ricci's avatar
      Several changes to assign: · 1003657e
      Robert Ricci authored
      Add features and desires to the PER_VNODE_TT restrictions. For
      desires, we can tell the user which ones can't be satisfied, but for
      features, we don't even try to figure out which one(s) keep us from
      mapping. From the assign_todo file, this is:
      9.   add features/desires to PER_VNODE_TT restrictions
      
      Add a new -P switch, when PER_VNODE_TT is in use. This casues it to
      prune out pclasses that no vnode can map to - this can lead to _huge_
      time savings, particularly since we put things like wide-area nodes
      into the ptop file. I've seen a 98% reduction in time when using both
      -p and -P! But, it's not the default yet, because I need to do more
      testing to make sure that this isn't hurting solution quality
      significantly.  todo item:
      8.   prune pclasses when using PER_VNODE_TT
      
      Standardize the exit values from assign:
      On success, returns 0
      On failures that are not retryable (ie. this top can never be mapped
          to this ptop), returns 2
      If SA fails to find a solution (ie., we might consider retrying),
          returns 1
      
      Fix a bug that has annoyed me for a very, very long time - if the
      input files don't exist, exit instead of hanging forever!
      
      Make the weight at which a feature/desire is considered 'hard' (ie. it
      generates a violation if unsatisifed or undesired) a variable, so that
      we'll be able to change it from 1.0 if we want.
      
      Put some more messages that should appear inline in the mail to stderr
      instead of stdout.
      1003657e
  13. 16 Apr, 2003 1 commit
    • Robert Ricci's avatar
      Fix PER_VNODE_TT to work with vclasses and emulated links. Now, we can turn it · 690ec56d
      Robert Ricci authored
      on in production!
      
      PER_VNODE_TT handles emulated links by simply adding up the total bandwidth
      consumed by a vnode, and the total bandwidth available on each pnode. Of
      course, this can lead to false positives (knapsack problem), but that's okay,
      because it just means we won't bail up front - we'll have to do the full
      annealing pass before we decide it's unmappable.
      
      PER_VNODE_TT now also tries to figure out why a vnode is not mappable - if
      there are _no_ pclasses that match one of the restrictions, it will print out
      something like:
        *** No possible mapping for nodeA
            Too many links!
        *** No possible mapping for nodeB
            Too much bandwidth on emulated links!
      
      This completes the following two items from assign_todo.txt:
      
      6.   fix PER_VNODE_TT and vclasses
      7.   fix PER_VNODE_TT and emulated vlinks
      690ec56d
  14. 10 Mar, 2003 1 commit
  15. 06 Mar, 2003 1 commit
    • Robert Ricci's avatar
      Change to the way we handle trivial links - add a new flag that can · d564f690
      Robert Ricci authored
      go on the end of a link line in the top file, trivial_ok . This means
      that it's okay to map the virtual link to a trivial link. By default,
      it will not be permissible to use trivial links.
      
      Right now, however, trivial links are OK by default, but that will
      change once assign_wrapper flags all simulated links as trivial_ok .
      d564f690
  16. 05 Mar, 2003 1 commit
  17. 10 Feb, 2003 1 commit
  18. 04 Feb, 2003 1 commit
  19. 03 Jul, 2002 1 commit
  20. 29 May, 2002 1 commit
  21. 08 Jan, 2002 1 commit
    • Christopher Alfeld's avatar
      All the vclass stuff. Can now do: · 09737efc
      Christopher Alfeld authored
      make-vclass A 0.5 pc600 pc850
      
      in the top file.  And then have nodes of type A.  Assign will try to put
      them all as either pc600 or pc850.
      
      Still need to write all the pre-assign stuff.
      09737efc
  22. 03 Jan, 2002 1 commit
  23. 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
  24. 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
  25. 14 Mar, 2001 1 commit
  26. 25 Aug, 2000 1 commit