https://github.com/spcl/loggopsim2
https://github.com/spcl/loggopsim2
Last synced: 9 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/spcl/loggopsim2
- Owner: spcl
- License: gpl-3.0
- Created: 2017-11-14T00:04:36.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-07-08T10:09:28.000Z (over 7 years ago)
- Last Synced: 2025-02-10T00:57:55.582Z (11 months ago)
- Language: C++
- Size: 3.02 MB
- Stars: 2
- Watchers: 5
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README
- Changelog: ChangeLog
- License: COPYING
- Authors: AUTHORS
Awesome Lists containing this project
README
LogGOPSim
Changelog
---------
v2.0: new structure, packet-switched network module, gem5 integration - Salvatore Di Girolamo, Konstantin Taranov, Timo Schneider, Torsten Hoefler
v1.1: ported agraph to cgraph, Torsten Hoefler, Timo Schneider
v1.0: Initial version - Torsten Hoefler, Timo Schneider
Installing
----------
* prerequisites to for LogGOPSim:
- C++ compiler (e.g., g++)
- re2c - http://re2c.org/
- gengetopt - http://www.gnu.org/software/gengetopt/gengetopt.html
- libagraph - http://www.graphviz.org/
* optional prerequisites to enable gem5 support (assuming modern Ubuntu/Debian system -- tested with Ubuntu 16 LTS):
- install and test gem5:
1) sudo apt-get install mercurial scons swig gcc m4 python python-dev libgoogle-perftools-dev g++ zlib1g-dev
2) hg clone -r 11794 http://repo.gem5.org/gem5
3) cd gem5
4) (optional) build binaries with: scons build/ARM/gem5.opt -j 4
5) (optional) test with: build/ARM/gem5.opt configs/example/se.py -c tests/test-progs/hello/bin/arm/linux/hello
- install cross-compilation tools for ARM
7) sudo apt-get install gcc-arm-linux-gnueabi
8) optional: sudo apt-get install libc6-dev-armel-armhf-cross
* build:
- without gem5: ./configure
- with gem5:
- install lgs-gem5 module: ./install_gem5mod.sh
- build gem5 as library: (in gem-5 directory) scons --without-python --with-cxx-config --without-tcmalloc -j 4 build/ARM/libgem5_opt.so
- ./configure --with-gem5=
- make
- make install
Running a LogP simulation without gem5
--------------------------------------
* write or generate a GOAL schedule or use one of the example
schedules (e.g., dissemination_16.goal or binary_tree_16.goal)
* convert schedule to binary format using txt2bin:
- e.g., txt2bin -i dissemination_16.goal -o dissemination_16.bin
* execute simulation with default parameters (see LogGOPSim --help for
more options):
- e.g., LogGOPSim -f dissemination_16.bin
* interpret output:
- for small simulations, each host end time is printed (22000ns for
our example with default parameters)
- for larger runs, only the maximum time is printed
Running a LogP+packet simulation with gem5
------------------------------------------
* generate network topology file or use one of the examples (e.g., use
simplenet.dot)
* write or generate a GOAL schedule (see README_GOAL) or use one of the example
schedules (e.g. create_goal.sh in benchmarks)
* To run a simple simulation with gem5 support: ./run.sh
- run with visualization: ./run.sh -V
-> see run.sh for details
Visualization
-------------
* run LogGOPSim with -V option:
- e.g., LogGOPSim -f dissemination_16.bin -V viz.out
* compile DrawViz (simple "make")
* run DrawViz (only for smaller simulations):
- e.g., drawviz -i viz.out -o viz.eps
* view postscript output:
- e.g., gv viz.eps
P4Schedgen - automatic GOAL schedule generator for Portals 4
------------------------------------------------------------
* compile P4Schedgen (sime "make")
* run schedgen to produce GOAL files for Portals 4 collective operations.
e.g.: ./p4schedgen allreduce 16 4
(generates an allreduce schedule for 16 processors with a 4byte message size)
* see ./p4schedgen --help for the complete usage
Schedgen - automatic GOAL schedule generator
--------------------------------------------
* compile SchedGen (simple "make")
* run schedgen to generate schedules for collective operations:
- e.g., schedgen -p binomialtreebcast -s 32 -o binary_tree_32.goal
(generates a binomial tree brodacast pattern with 32 processes,
the GOAL schedule can be converted to the binary simulator input
with txt2bin)
* run schedgen to generate schedules for application traces collected
with liballprof-0.9:
- traces need to be collected by linking liballprof as PMPI layer
with an MPI application. Sample traces are included in the
distribution in liballprof-samples
- e.g., schedgen -p trace --traces liballprof-samples/sweep3d-2x2/pmpi-trace-rank-0.txt -o sweep-4.goal
- convert and simulate:
- e.g., txt2bin -i sweep-4.goal -o sweep-4.bin
LogGOPSim -f sweep-4.bin
Benchmarks
----------
* To build all required binaries for benchmarks execute ./init.sh {PATH TO GEM5}
- Note: gem5 should be already patched (see the Installing section in README)
* To run all benchmarks from the paper, use ./run_all_tests.sh
* To create visualizations for all test from the paper, use ./create_all_visualizations.sh
- The resulting figure will be in DrawViz folder
* To run a particular test, use ./run_benchmark.sh
* To create a particular figure, use ./run_create_vis.sh
- The resulting figure will be in DrawViz folder
Citation
--------
Any published work which uses this software should include the following
citation:
----------------------------------------------------------------------
T. Hoefler, T. Schneider, A. Lumsdaine: LogGOPSim Simulating
Large-Scale Applications in the LogGOPS Model
----------------------------------------------------------------------