Notes on Trace-Driven Scientific I/O Benchmarks
These notes are also in the README file of the released package.
Installation:
- If you plan on using parallel synchronized mode, you must have some version of MPI
installed on the machine where you will be running. tracecontrol expects to find mpiexec
in /usr/local/bin. If MPI is installed in a different directory, the path in tracecontrol.c
must be changed in line 476. MPI is not needed in other modes.
- Included is a makefile. To produce all executables:
make all
To produce an MPI synchronized version:
make mpi
To produce an unsynchronized version (no MPI needed):
make seq
- There are several compiler flags that can be used to turn on various debugging messages.
These are:
- -DDEBUG: turns on a lot of low-level debugging messages that describe where in the
reconstruction and execution of a trace that traceplay is in. Extremely verbose.
- -DMPI_DEBUG: turns on some debugging messages related to replay execution of MPI calls.
- -DRECON_DEBUG: turns on debugging messages during file system reconstruction.
- -DCREATION_DEBUG: turns on details of the file creation process.
- -DMPI_RUN: (applies only to traceplay.c) produces an MPI-version of the executable.
- -DLINES: (applies only to traceplay.c) periodically outputs line numbers as a trace is
replayed to show progress.
- traceplay.c must be compiled with mpicxx if using MPI.
Usage:
- To run 1 or more traces in sequential mode:
./traceplay target_mount_point trace_1 trace_2 ... trace_n
- To run 2 or more traces in parallel unsynchronized mode:
./tracecontrol target_mount_point trace_1 trace_2 ... trace_n
In this mode, multiple traceplay processes are forked
to run in parallel without synchronization between them.
- To run 2 or more traces in parallel synchronized mode:
./tracecontrol -mpi target_mount_point trace_1 trace_2 ... trace_n
In this mode, mpiexec is employed to run the processes in parallel.
MPI synchronization only applies to the LANL traces.
While the Sandia traces can run successfully with the -mpi flag,
they will essentially be running unsynchronized since those traces
do not contain any MPI calls.
All the above benchmark runs may take an optional -nofs and -drop flags.
If -nofs is set, the benchmark run will not try to reconstruct the filesystem in
the trace. Because file system reconstruction is time-consuming, it can be
helpful to utilize the -nofs flag on subsequent runs. If -drop is set, the file
cache will be sync'd and dropped before each replay. This feature is available
in Linux kernels 2.6.16 and newer. You must have root privileges to utilize the
-drop flag.