1. 19 Jul, 2011 1 commit
    • Robert Ricci's avatar
      Handle new property_list.hpp location in boost · 2403b264
      Robert Ricci authored
      Have I mentioned that I hate it when library developers move their
      headers around? Change the location of the property_list.hpp header
      to a macro and add a new -DNEWER_BOOT define that swtiches this to
      the newer location.
      
      Not automatically detected yet; should be checked in configure.
      2403b264
  2. 10 Nov, 2010 2 commits
    • Robert Ricci's avatar
      Fix up copyright dates · bd6f3dbc
      Robert Ricci authored
      bd6f3dbc
    • Robert Ricci's avatar
      Re-think no_connect violations · 26e0a6c6
      Robert Ricci authored
      Re-think a very old idea in assign - that no_connect violations for
      unmapped links should not be assessed against links whose endpoints are
      not mapped. The problem with this is that assign is too hesitant to map
      nodes - if there is more than one link that can't be mapped or whose
      other end isn't mapped yet, then assign thinks it's better to leave the
      node unmapped. This leads to confusing solutions (in which nodes remain
      unmapped when really it's the links that are the problem), and I beleive
      it keeps assign from exploring valuable parts of the solution space.
      
      This patch chanes the behavior, so that no_connect violations get scored
      even when the endpoints of the link are not mapped.
      
      Not well enough tested to run in production.
      26e0a6c6
  3. 05 Feb, 2010 1 commit
    • Robert Ricci's avatar
      Handle the case of links between a switch and a node - I thought · f0cc1b90
      Robert Ricci authored
      I had disallowed this in the parser, but I hadn't thought about
      LAN nodes, which typically get assigned to switches. So, handle
      this case correctly.
      
      We still do *not* handle links between two switches (eg. directly
      between two LANs). However, what the semantics of this should be
      is totally unclear - do we use the *whole* interswtich bandwidth?
      Since we are not likely to hit this in our regular usage, we punt
      for now with an error if it happens.
      
      Also, remove the parser check, since we now handle correctly the
      case it was trying to disallow.
      f0cc1b90
  4. 01 Feb, 2010 1 commit
    • Robert Ricci's avatar
      Working version of auto speed selection for vlinks · eac6b811
      Robert Ricci authored
      Use '*' as the bandwidth on the link line in the .top file to have
      assign auto-select the speed for the link - it uses the slower of the
      two interfaces selected as endpoints for the link.
      
      Tested, but not heavily.
      
      Known limitations:
      
      * Doesn't work with trivial or emulated links, it's not clear what the
      semantics would be.
      
      * Doesn't work on links that go directly to switches, for complicated
      reasons of code strcutre. We never use these in practice anyway.
      
      * Not yet supported in XML parser; it should be a special tag or
      attribute in that format.
      
      * Might not find valid solutions in a very unlikely case: if a single
      node has interfaces of different speeds on the same physical switch,
      this code will always select the faster interface that's not already in
      use. If the faster interface is faster than the inter-switch bandwidth,
      and the slower interface is slower than it, assign *could* find a
      feasible solution by using the slower interface.  However, it will never
      try this solution.
      
      * Assign doesn't print the speed it picks; its up to the wrapper to know
      how fast the interface is. However, this shouldn't be an undue burden,
      as assign *never* prints out link speeds.
      eac6b811
  5. 22 Jan, 2010 1 commit
    • Robert Ricci's avatar
      First phase of adding a special '*' bandwidth to the top file · 0552a7db
      Robert Ricci authored
      This value can be specified in place of an integer bandwidth. When
      this is done, assign will map the virtual link to *any* physical
      link of the right type, regardless of bandwidth. However, it will
      adjust the bandwidth used for trunk calculations, etc, based on the
      bandwidth of the interfaces selected, so that this doesn't cause us
      to overuse interswitch links.
      
      For the time being, it is not legal to use this option with trivial
      links or emulated (multiplexed) links, since it's not at all clear
      what this would mean.
      
      This commit contains only the data structure and parser changes; the
      actual implementation will come soon.
      0552a7db
  6. 20 May, 2009 1 commit
  7. 31 Mar, 2008 1 commit
  8. 01 Dec, 2006 1 commit
  9. 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
  10. 29 Sep, 2005 1 commit
  11. 11 Aug, 2004 1 commit
  12. 03 Jun, 2004 2 commits
  13. 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 tak...
      238dce73
  14. 15 Apr, 2004 1 commit
  15. 18 Dec, 2003 1 commit
    • Robert Ricci's avatar
      Add two new features to assign: · 40ada0ba
      Robert Ricci authored
      In the top file, you can provide a 'node-hint', which is similar to a
      'fix-node' in that it specifies a starting mapping for the virtual
      node. Unlike a fixed node, however, assign is allowed to move hinted
      nodes around all it wants.
      
      Add a '-t' option to assign that allows you to give a starting
      temperature, instead of going through the usual melting process.
      
      Together, these may be helpful with the pre-pass we're planning on
      incorporating into assign. During that pass, assign will be working
      on a coarsened version of the virtual graph, so there may be some
      places where decisions are made poorly due to the reduced information.
      After one run has been done with the coarsened version, we can run
      assign again with the full version of the graph, but with 'node-hints'
      that start virtual nodes where the first run decided. This will allow
      assign to fine-tune the results of the first mapping.
      
      Of course, we don't want this second run to take too long, so we'll
      want to start it with a low initial temperature (so that it basically
      just does hill-climbing), and probably use a fractional '-H' argument
      to prevent it from spending too long on large topologies.
      40ada0ba
  16. 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
  17. 10 Oct, 2003 1 commit
  18. 29 Sep, 2003 1 commit
  19. 08 Sep, 2003 1 commit
  20. 04 Sep, 2003 2 commits
  21. 02 Sep, 2003 1 commit
  22. 10 Jul, 2003 1 commit
  23. 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
  24. 18 Apr, 2003 1 commit
  25. 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
  26. 15 Apr, 2003 1 commit
  27. 10 Mar, 2003 1 commit
  28. 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
  29. 05 Mar, 2003 1 commit
  30. 10 Feb, 2003 1 commit
  31. 04 Feb, 2003 1 commit
  32. 03 Jul, 2002 1 commit
  33. 29 May, 2002 1 commit
  34. 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
  35. 03 Jan, 2002 1 commit
  36. 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
  37. 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