- 10 Sep, 2003 1 commit
-
-
Robert Ricci authored
footprint as it runs. All the credit for this one goes to Tim!
-
- 09 Sep, 2003 1 commit
-
-
Robert Ricci authored
pnode's types were a subset of another's.
-
- 04 Sep, 2003 1 commit
-
-
Robert Ricci authored
top and ptop files, you can put subnode_of:nodename Any vnode that is a subnode must be mapped to a pnode that is a a subnode of the pnode the vnode's parent is mapped to. Read that a few times slowly, I swear it makes sense.
-
- 20 Aug, 2003 1 commit
-
-
Robert Ricci authored
really working this time. I will not check things in without running the testsuite I will not check things in without running the testsuite I will not check things in without running the testsuite I will not check things in without running the testsuite I will not check things in without running the testsuite I will not check things in without running the testsuite I will not check things in without running the testsuite I will not check things in without running the testsuite I will not check things in without running the testsuite I will not check things in without running the testsuite
-
- 08 Aug, 2003 1 commit
-
-
Robert Ricci authored
-
- 07 Aug, 2003 1 commit
-
-
Robert Ricci authored
Split the function that determines if a vnode can be mapped to a given pnode out of find_pnode, so that I can spread it out and make it more comprehensible. In doing so, fixed a bug in which static types were not getting handled correctly - a static type would only be found if no vnodes with dynamic types were allocated to the pnode. Fixed a bug in which, on allocation of a dynamic ptype, nodes where being removed from their static type lists in the type_table. Fixed a bug when there is a combination of fixed and un-fixed vnodes in the top file. I have more on the way, but this seemed like a good checkpoint.
-
- 10 Jul, 2003 1 commit
-
-
Robert Ricci authored
was sooo wrong you wonder how it worked in the first place... Took me days to find this one! Also added a new switch, '-o', that lets assign try out solutions that over-load a pnode. This helps a lot with topologies where the optimal solution is a best-fit onto multiplexed pnodes. The end result is that Mike's snake maps much better - it used to get an essentially random mapping, but now it gets something acceptible.
-
- 01 Jul, 2003 1 commit
-
-
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.
-
- 26 Jun, 2003 1 commit
-
-
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...
-
- 20 Jun, 2003 1 commit
-
-
Robert Ricci authored
some independant functionality off into new files, and reduce its use of globals, which can be very confusing to follow. I didn't get as far as I had hoped, but it's a good start.
-
- 10 Mar, 2003 1 commit
-
-
Robert Ricci authored
-
- 05 Mar, 2003 1 commit
-
-
Robert Ricci authored
using the new assign, and captures Leigh's linkdelays work.
-
- 10 Feb, 2003 1 commit
-
-
Robert Ricci authored
time to debug a delayed LAN problem.
-
- 05 Feb, 2003 1 commit
-
-
Robert Ricci authored
-
- 04 Feb, 2003 1 commit
-
-
Robert Ricci authored
In addition to assign, assign_wrapper and ptopgen have been modified to output the new formats used by assign.
-
- 03 Jul, 2002 1 commit
-
-
Leigh B. Stoller authored
-
- 08 Jan, 2002 1 commit
-
-
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.
-
- 07 Jan, 2002 1 commit
-
-
Christopher Alfeld authored
pclasses. This involved removing the heuristics, which, for the most part, were not worth the cycles they consumed, and scaled badly.
-
- 02 Jan, 2002 1 commit
-
-
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.
-