DwarfCode is a performance prediction tool for MPI applications on diverse computing platforms. The goal is to accurately predict the running time of applications for task scheduling and job migration. First, DwarfCode collects the execution traces to record the computing and communication events. Then, it merges the traces from different processes into a single trace. After that, DwarfCode identifies and compresses the repeating patterns in the final trace to shrink the size of the events. Finally, a dwarf code is generated to mimic the original program behavior. This smaller running benchmark is replayed in the target platform to predict the performance of the original application.
-
wzzhang-HIT: wzzhang@hit.edu.cn
-
yuanjing zhang: zhangyuanjing@nis.hit.edu.cn
-
xiehuc: xiehuc@gmail.com
License: GPLv3
- run git submodule init; git submodule update # it would download source from web,
- mkdir build; cd build
- cmake .. # it would patch them
- open mpip-code and run ./configure;make
- open npb/NPB3.3-MPI and compile according its' readme
- trace2symbol.cpp and order.cpp: record and symbolize the communication and computation events
- combine.cpp: merge the traces from different processes into a single trace
- circle.cpp: identify and compress the repeating patterns in the trace to shrink the events size
- reconstruct.cpp: convert the merged and compressed trace into an executable program