-
mpiPi.h: Some important global information is located in the mpiPi_t structure.
-
mpiPi.c: The main operating logic of mpiP.
-
make-wrappers.py: Add customized operations after intercepting MPI.
-
mpiP-wrappers.c: Wrapped MPI generated by make-wrappers.py. Do not modify it directly.
-
trace2symbol: Remove some redundant information.
-
order: Reorder events.
Train.py: Data preprocessing (processing each categorical feature field into global index for embedding table, numerical feature discretization), model training.
Replay.py: Predict and simulate MPI event sequence.
Combine.py: Organize and concatenate multiple .order files.
MPI_define.py: Define MPI-related information.
Model_LSTM.py: LSTM model.
Trace_Dataset.py: Dataset class for processing trace data.
TraceStat.py: Record the statistical information in the trace, including the amount of data sent and received between processes, computation time and communication time, etc.
-
Compile mpiP and dependent libraries to generate libmpiP.so.
-
Compile the target application, add -lmpiP after -lmpi. An alternative way is runtime instrument via export LD_PRELOAD=[path to mpiP]/libmpiP.so
-
Compile trace2symbol and order programs in dwarfcode.
-
Run the target application, generate np trace files [0:np].trace, and put them into the trace_data folder.
-
Run trace2symbol 0.trace 0.symbol np, generate [0:np].symbol
-
Run order 0.symbol 0.order np, generate [0:np].order
-
Run Combine.py, generate train_dataset.csv
-
Run Train.py
-
Run Replay.py