1. 01 Dec, 2006 1 commit
  2. 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
  3. 19 Jan, 2005 1 commit
    • Robert Ricci's avatar
      Add support for the set-type-limit command in the ptop file. · 8eaec842
      Robert Ricci authored
      It looks like this:
      set-type-limit <type> <count>
      
      This can be placed anywhere in the ptop file.  It limits the number of
      physical nodes of a given type that an experimenter is allowed to use.
      
      For example, we may limit a user to 10 PCs, or 5 pc850s. In the latter
      case, if the experimenter had simply asked for 10 generic PCs, then we
      will try to find them some mapping of nodes that uses types of PCs
      other than pc850s.
      
      Added a precheck to tell the user up-front if they asked for more
      nodes than they are allowed to use of a given type.
      8eaec842
  4. 22 Oct, 2003 1 commit
    • Robert Ricci's avatar
      A few improvements: · b058ef64
      Robert Ricci authored
      Fix a bug with limited trivial link bandwidth. It used to be the case
      that we penalized solutions that over-used the trivial bandwidth based
      on the number of links that were over it. Turns out this was a
      problem, if you had links of differing bandwidths, and were near the
      limit. Certain orderings were possible where you would remove two
      trivial links in a different order than you added them, which might
      result in more (or fewer) violations being scored then when you did
      them originally. The fix for this is to penalize these based on
      bandwidth, which is what assign now does.
      
      Added a '-g' flag, which does greedy link selection - assign normally
      does random link selection until the very end, when it does one pass
      with greedy selection. This flag makes it do this all the time. This
      is useful for debugging, because it cuts out a call to random(). Turns
      out, it doesn't seem to make assign much slower. I might consider
      making it the default.
      
      Better output when the selftest (-T) fails.
      b058ef64
  5. 19 Sep, 2003 1 commit
  6. 18 Sep, 2003 1 commit
    • Robert Ricci's avatar
      Add some new ways to treat features. · 46a52a04
      Robert Ricci authored
      Features that begin with a '*' have some kind of global scope. Since
      that, by itself, doesn't mean much, the second character of the
      feature name must tell us what type of global feature it is. The two
      currently supported are:
      
      '&' - 'one is okay' - don't penalize the first pnode that has this
          feature, but penalize subsequent ones. Will be used to prefer
          not to give people multiple nodes at the sime widearea site.
      '!' - 'more than one is okay' - penalize the first pnode that has
          this feature, but not subsequent ones. This could be used to let
          assign pick experiments to swap out in order to let the current
          experiment map. The idea being that once you've decided that one
          of the experiment's nodes is getting stolen, you might as well
          swap the whole thing.
      
      For now, these global features should not have corresponding desires,
      because it's not clear what the right thing to do would be. But, we may
      decide to add these semantics someday.
      46a52a04
  7. 04 Sep, 2003 2 commits
  8. 20 Jun, 2003 1 commit
  9. 28 May, 2003 1 commit
    • Robert Ricci's avatar
      Added the TRIVIAL_LINK_BW option, which allows, in the ptop file, · 5c67bf1f
      Robert Ricci authored
      specification of how much bandwidth can be used on the node for
      trivial links. Clearly, there will be some limit to loopback
      transfers, and this makes assign aware of it.
      
      While I was in there, cleaned up and commented some of the code I was
      working on.
      
      Also fixed a bug with the type pre-check and emulated links that are
      trivial_ok - we can't add these into the total for a vnode, because
      they could end up being satisified with trivial links.
      5c67bf1f
  10. 10 Mar, 2003 1 commit
  11. 05 Mar, 2003 1 commit
  12. 10 Feb, 2003 1 commit
  13. 05 Feb, 2003 1 commit
  14. 04 Feb, 2003 1 commit
  15. 29 Jan, 2003 1 commit
  16. 03 Jul, 2002 1 commit
  17. 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
  18. 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
  19. 24 Apr, 2001 1 commit
  20. 14 Mar, 2001 1 commit
  21. 25 Aug, 2000 1 commit
  22. 26 May, 2000 1 commit
  23. 23 May, 2000 1 commit
  24. 22 May, 2000 1 commit
  25. 18 May, 2000 2 commits