Compiling potfit with MPI parallelization
potfit does support all common MPI implementations for parallel execution. While the build process for an MPI-enabled build is almost the same as a regular build, there are some minor differences you should be aware of.
Basics
In order to enable MPI support in potfit the –enable-mpi
command line option needs to be specified. It will always be assumed that there is an mpicc
command which knows how to handle the current environment properly.
When using –enable-mpi
you cannot specify a compiler with the –check-c-compiler
flag!
A command to compile potfit with MPI support might look like this:
./waf configure -i pair -m apot --enable-mpi
Usually you should see output similar to this:
Checking for 'icc' (C compiler) : not found Checking for 'clang' (C compiler) : not found Checking for 'gcc' (C compiler) : mpicc
All enabled options will also be listed on the summary of the configuration stage:
potfit has been configured with the following options: potential model = apot interaction = pair math library = mkl options = mpi
Selecting the MPI compiler
The selection of the MPI compiler depends on your MPI implementation. For Open MPI this behavior is controlled through environment variables, like OMPI_CC
, OMPI_CFLAGS
and OMPI_LDFLAGS
.
To switch the compiler you can use this command (OpenMPI):
OMPI_CC="clang" ./waf configure -i pair -m apot --enable-mpi
Checking the output, you should see that the mpicc
command has now been identified as a clang compiler:
Checking for 'icc' (C compiler) : not found Checking for 'clang' (C compiler) : mpicc
To make sure the same value of the environment variables are used for all steps of the potfit compilation process please export the variable using you shell.