Code for experiments with Dragonfly global link arrangements

This is the code used to test the bisection bandwidth of different Dragonfly global link arrangements. Here is the code: arrangements.tar.gz.

It was used for the following publications:

Cabling generator: The first file generates a representation of the global edges for a Dragonfly system with given parameters. Compile and run it with

     javac cabler/DragonflyCabler.java
     java cabler/DragonflyCabler a g type
where a is the number of switches per group, g is the number of groups, and type is the type of global link arrangement to use (selected from relative, absolute, circulant, nautilus, nautilusA (alternating), helix, and helix2). This generates a file edgeList.txt the lists the global edges, one per line. Each line lists the two endpoints by their group and switch number within that group.

The next file determines the bisection bandwidth for a specific arrangement at a given value of alpha. To compile and run it:

     javac cabler/FindBisection.java
     java cabler/FindBisection alpha file
where alpha is a (floating-point) value for alpha and file is the name of the file generated by the DragonflyCabler code above.

findBisectionBW.pl is a Perl script to automate this. It assumes there are directories runs, results, and done. It also puts its messages and errors into a file "messages". (This was all done to allow multiple copies to run in batch mode over long periods of time.) It takes the name of a file generated by the DragonflyCabler and finds all the values of alpha at which the slope of its bisection bandwidth curve changes.