1. 01 Jul, 2003 1 commit
    • Robert Ricci's avatar
      Give assign the ability to make dynamic pclasses. Here's how it works: · fbcd6752
      Robert Ricci authored
      After building the set of pclasses normally, we make another pass
      through the vnodes. The goal to create a pclass for each individual
      node. We disable the node's 'own' pclass to begin with. Then, the
      _first_ time it gets a vnode mapped to it, we remove it from the
      'regular' pclass it belongs to, and enable it's own pclass. Then, if
      it goes empty, we put it back in its regular pclass and disable it's
      own.
      
      The point of this is to replace -p for use with multiplexed nodes.
      Instead of disabling pclasses altogheter, which has serious
      performance implications, we can instead be smart about which pnodes
      remain equivalent (because nothing's been mapped to them), and which
      are now different. The result is that on my test topoloy, the time to
      get a good mapping has gone from over 3 minutes to about 6 seconds.
      
      This feature is enabled with the -d option, and the -P option is
      pretty much mandatory when using it, since it greatly exacerbates the
      problem of cruft in the ptop file.
      
      This satisfies #14 from the todo file:
      14.  do dynamic pclasses
      
      Also bumped up the minimum neighborhood size from 500 to 1000. In some
      tests I was doing, this resulted in better solutions.
      fbcd6752
  2. 30 Jun, 2003 5 commits
  3. 27 Jun, 2003 1 commit
  4. 26 Jun, 2003 7 commits
    • Robert Ricci's avatar
      Change around some data structures to make certain functions faster - · 55566879
      Robert Ricci authored
      turns out that getting iterators to the STL hash_* data structures is
      really slow, so for some that won't be very big, use the non-hash
      version.
      
      Buys something like a 30% speedup for large topologies.
      55566879
    • Leigh B. Stoller's avatar
      New script. Convert experiment to a "well formed" XML, and back again. · f7fc7ff3
      Leigh B. Stoller authored
      The conversion from XML to an experiment representation updates the
      DB, although the experiment has to exist, and only certain fields can
      be updated. For the rest of the virtual toplogy, the old toplogy is
      deleted, and the new one installed. Use with caution. This is intended
      to be hooked to the parser, and later to the vis tool.
      f7fc7ff3
    • Leigh B. Stoller's avatar
      Turn on lans for virtual nodes in assign_wrapper, now that Rob has · af86b3ba
      Leigh B. Stoller authored
      fixed the trivial_link problem for Lans.
      Add an option to ptopgen that says to include the various virtnode
      related things, so as not to slow down assign in the general case
      that virtnodes are not being used.
      af86b3ba
    • Mac Newbold's avatar
    • Mac Newbold's avatar
      Add three characters I left out last time... · 03ee2f54
      Mac Newbold authored
      03ee2f54
    • Mac Newbold's avatar
    • Robert Ricci's avatar
      Major changes to the way assign handles LAN nodes. · 83cfa8ec
      Robert Ricci authored
      LAN nodes are no longer treated specially. Instead, I've introduced
      the idea of 'static' types (old-style types retroactively become
      'dynamic' types). While a pnode can only satisfy one dynamic type at a
      time, it can always satisfy its static types (assuming it has enough
      capacity left.) Static types are flagged by prepending them with a '*'
      in the ptop file. So, for example, you may give switches the
      '*lan:10000' type so that they can satisfy virtual LAN nodes. Of
      course, other pnodes can have this type too, so that we can get
      'trivial LANs'.
      
      Actually, removing special treatment for LANs cleans up a lot of code.
      However, it may have some negative impacts on solutions, since we're
      not as smart about where to place LAN nodes as we used to be (they get
      annealed along with everything else, and not migrated.) I haven't seen
      any evidence of this yet, however.
      
      This leaves us with a single type of special pnode, a switch.
      
      Also added a new bit of syntax in ptop files - when '*' is given as a
      the maxiumum load for a type, the node is allowed to take on an
      infinite (well, actually, just a really big number of) vnodes of that
      type.
      
      ptopgen was modified to always report switches as being capable of
      hosting LANs, and assign_wrapper now understands direct links to LANs,
      which is what we get when the LAN is hosted directly on a switch.
      
      Fixed a bug in scoring direct links, in which the penatly was being
      added once when a direct link was mapped, but subtracted only once
      when it was freed.
      
      Added a '-T' option for doing simple self-testing. When adding a node
      to the solution, assign records the score, adds the node, removes it
      again, and checks to make sure that the resulting score is the same as
      the original score. The usefulness of this feature in debugging
      scoring problems cannot be understated...
      83cfa8ec
  5. 25 Jun, 2003 9 commits
  6. 24 Jun, 2003 4 commits
  7. 23 Jun, 2003 9 commits
  8. 20 Jun, 2003 4 commits