NM7.2 with MPI on 64bit linux and ifort 12
Hi,
there's been some discussion on how to work with the new parallel computing functions in NM7.2. My apologies, if the scenario below has already been discussed.
When trying to run NM7.2 on a 64bit 8-core linux server using ifort 12 as the compiler, it seems that it is necessary to do some mad hacking in order to make MPI work.
Ifort 12 comes with it's own MPI implementation, which, however, seems not to play nicely with NM7.2 (mpif90 is missing). Therfore, it is necessary to install mpich2 from the NM7.2 installation, which, however, results in conflicts when linking some 32bit and 64bit components.
Here are the steps I had to take in order to make NM7.2, ifort 12, and MPI play nicely together:
### bash start ###
# Install mpich2 in /usr/local:
cd mpich2-1.2.1p1
./configure --prefix=/usr/local --with-pm=gforker
make
make install
# libmpich.a from NM7.2 seems to be causing the 32 vs 64 bit confusion.
# Overwrite it with the properly compiled version from the mpich2
# installation:
cd /opt/nm72/mpi/mpi_lini
mv libmpich.a libmpich.a_
cp /usr/local/lib/libmpich.a .
# When using the gforker process manager, mpirun is not created...
# Manually create a soft link:
cd /usr/local/bin
ln -s mpiexec mpirun
# Run a test in the run directory of the NM7.2 installation:
# (Remember to copy the dataset from examples!)
./nmfe72 foce_parallel.ctl foce_parallel.lst -parafile=mpilinux8.pnm "[nodes]=4" 2>&1
### bash end ###
Note, that I am only going to distribute threads on the local machine. Hence the gforker manager that doesn't need to be started up and configured explicitly.
If there's a better/less messy way to make this configuration work, I'd be more than happy to learn!
Kind regards,
--
Paul Matthias Diderichsen, PhD
Quantitative Solutions B.V.
+31 624 330 706