Life would be so much easier if only we had the source code...
Home -> Research -> LogGOPSim
NB Collectives
    MPI Topologies
    MPI Datatypes
    Network Topologies
    Ethernet BTL eth
    Older Projects
  Full CV [pdf]


  Past Events

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.

Download LogGPSim and Tools

The simulator itself and optional helper tools can be downloaded below:

Building the Simulator and Tools

See README in distribution for details!
  1. tar xzf LogGOPSim-1.0.tgz && cd LogGOPSim-1.0 && make
  2. tar xzf Schedgen-1.0.tgz && cd Schedgen-1.0 && make

Using the Simulator (Mini Tutorial)

  1. 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
  2. transform GOAL schedule into binary representation:
    LogGOPSim-1.0/txt2bin -i schedule.goal -o schedule.bin
  3. execute simulation:
    LogGOPSim-1.0/LogGOPSim -f schedule.bin

Using the MPI Schedule Generator (Mini Tutorial)

  1. link liballprof to an MPI application, execute the application and collect the traces from /tmp in a single directory
  2. 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
  3. transform schedule into binary representation:
    LogGOPSim-1.0/txt2bin -i ./sweep-sched.goal -o ./sweep-sched.bin -p
  4. 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.


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").

[1] Torsten Hoefler, Timo Schneider and Andrew 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
[1] Torsten Hoefler, Christian Siebert and Andrew 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)
[1] Torsten Hoefler, Timo Schneider and Andrew 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

serving:© Torsten Hoefler