LogGOPSim - A LogGOPS (LogP, LogGP, LogGPS)
Simulator and Simulation Framework
LogGOPSim [1] is a simulator for parallel applications and algorithms that uses the LogGOPS (or LogP, LogGP, or LogGPS) network model to simulate the execution of parallel algorithms and full applications. The simulator is intended to work at large scale and can simulate a single collective operation with up to 10 million processes on a single CPU. The simulator input format is a dialect of the Group Operation Assembly Language (GOAL [2]) which can easily be generated. We also supply a tool-chain that can convert MPI traces into simulator input.
LogGOPSim comes with an MPI (Message Passing Interface) tracing module and can be seen as a fully-functional MPI simulator. Its main advantage is its flexibility, modularity and very simple adaptability. Its main simulation loop is in a single C++ file with less than 500 lines of code.
Download LogGPSim and Tools
The simulator itself and optional helper tools can be downloaded below:- LogGOPSim-2.0.tgz - (614 kb) LogGOPSim 2.0
- LogGOPSim-1.1.tgz - (45.54 kb) LogGOPSim 1.1 (ported agraph to cgraph)
- LogGOPSim-1.0.tgz - (42.21 kb) LogGOPSim 1.0
- DrawViz-1.0.tgz - (23.74 kb) DrawViz 1.0
- Schedgen-1.1.tgz - (155.78 kb) Schedule Generator 1.1 (with example profiles)
- liballprof-0.9.tar.gz - (336.61 kb) MPI profiling library 0.9
- liballprof-1.0.tgz - (358.37 kb) MPI profiling library 1.0 (supports profiling MPI 3)
Building the Simulator and Tools
See README in distribution for details!- tar xzf LogGOPSim-1.0.tgz && cd LogGOPSim-1.0 && make
- tar xzf Schedgen-1.0.tgz && cd Schedgen-1.0 && make
Using the Simulator (Mini Tutorial)
- generate GOAL schedule for dissemination algorithm among 1024 hosts with 15 bytes:
Schedgen-1.0/schedgen -p dissemination -s 1024 -d 15 -o schedule.goal - transform GOAL schedule into binary representation:
LogGOPSim-1.0/txt2bin -i schedule.goal -o schedule.bin - execute simulation:
LogGOPSim-1.0/LogGOPSim -f schedule.bin
Using the MPI Schedule Generator (Mini Tutorial)
- link liballprof to an MPI application, execute the application and collect the traces from /tmp in a single directory
- we use the included Sweep3D example trace:
Schedgen-1.0/schedgen -p trace --traces Schedgen-1.0/liballprof-samples/sweep3d-2x2/pmpi-trace-rank-0.txt -o sweep-sched.goal - transform schedule into binary representation:
LogGOPSim-1.0/txt2bin -i ./sweep-sched.goal -o ./sweep-sched.bin -p - execute simulation:
LogGOPSim-1.0/LogGOPSim -f sweep-sched.bin --progress
Simulations with OS Noise Injection
The simulator is also able to simulate the execution under the influence of OS noise measured on real machines [3]. It can read noise-traces created with the Netgauge selfish detour and inject them in the execution (parameter: --noise-trace). By default, the noise is scheduled randomly. The option --noise-cosched enables co-scheduling of the noise traces.
Citation
All published work using the simulator should cite [1] (T. Hoefler, T. Schneider and A. Lumsdaine:
"LogGOPSim - Simulating Large-Scale Applications in the LogGOPS Model").
References
[1] T. Hoefler, T. Schneider, A. Lumsdaine: | ||
LogGOPSim - Simulating Large-Scale Applications in the LogGOPS Model
In Proceedings of the 19th ACM International Symposium on High Performance Distributed Computing, presented in Chicago, Illinois, pages 597--604, ACM, ISBN: 978-1-60558-942-8, Jun. 2010, LSAP'10 Best Paper Award |
[2] T. Hoefler, C. Siebert, A. Lumsdaine: | ||
Group Operation Assembly Language - A Flexible Way to Express Collective Communication
In ICPP-2009 - The 38th International Conference on Parallel Processing, presented in Vienna, Austria, IEEE, ISBN: 978-0-7695-3802-0, Sep. 2009, (acceptance rate 32%, 71/220) |
[3] T. Hoefler, T. Schneider, A. Lumsdaine: | ||
Characterizing the Influence of System Noise on Large-Scale Applications by Simulation
In International Conference for High Performance Computing, Networking, Storage and Analysis (SC'10), Nov. 2010, (acceptance rate 19.8%, 50/253) SC10 Best Paper Award |