This is a parallel MPI implementation of the iterative Jacobi method for solving linear systems of equations.
To compile this application you'll need an MPI distribution with ULFM support enabled.
make jacobi_noft
make jacobi_ulfm
make jacobi_scr
make all
To use flags with the application, you can use the flags.conf
file and pass it as an argument when running the application. A basic set of flags is already in the file, but you can change them as you wish.
Use the execute.sh
script to run the application with a flag file.
After compile with make
, Examples of how to run the different versions are below.
There is a script to run the application that enables the use of a flag file and other options. The script is execute.sh
and it is located in the root directory of the project. To run the application with the script, use the following command:
./execute.sh <binary> < -f <flag_file> | -np <NP> -p <NR> -q <NC> -NB <QC> [-MB <QR>] [--hostfile=<hostfile>] [--debug] [--use-scr-need-checkpoint] [--run-until-success] [--retry-delay <delay_time>] >
mpirun -np <NP> jacobi_noft -p <NR> -q <NC> -NB <QC> [-MB <QR>]
mpirun --with-ft=ulfm --oversubscribe -np <NP> jacobi_ulfm -p <NR> -q <NC> -NB <QC> [-MB <QR>]
mpirun -np <NP> jacobi_scr -p <NR> -q <NC> -NB <QC> [-MB <QR>] [--debug] [--use-scr-need-checkpoint]
Flags:
- --debug: Print debug information (not only SCR debug default messages)
- --use-scr-need-checkpoint: Use SCR_Need_checkpoint to checkpoint the application
- --run-until-success (only for jacobi_scr) If specified, run the command until it returns 0 (caution: this may cause an infinite loop)
- --retry-delay <delay_time> (only if --run-until-success is specified) Delay time in seconds between retries. Default: 1 second.
- binary: Binary to be executed (jacobi_noft, jacobi_ulfm or jacobi_scr if compiled with
make
) - flag_file: File with the flags to be used by the application
- NP: Number of processes used by the application
- NR: Number of processes per row
- NC: Number of processes per column
- QC: Number of columns
- QR: Number of rows
- hostfile: Hostfile for mpirun
To remove all files generated by the compilation process, run:
make clean
If make jacobi_scr
isn't working, make sure you have the SCR_ROOT
environment variables set to the SCR installation directory.