AMBER Archive (2007)

Subject: Re: AMBER: Fwd: Amber9 parallel compilation openmpi issues

From: Mark Williamson (Mark.Williamson_at_imperial.ac.uk)
Date: Wed Jul 25 2007 - 14:19:29 CDT


David A. Case wrote:
> In my view(!), the key thing is to follow the instructions of Benjamin Juhl:
> you have to edit the config.h file (to replace "ifort" with "mpif90"). After
> that, things should(!?!) be OK. Since mpif90 is in your PATH, just
> substituting "mpif90" for "ifort" in config.h should get you most of the way
> home....

I'm desperately trying not cloud the waters here, but here's my take on
it :)

When AMBER's configure script is run with the openmpi flag, the
following section of code within this script is visited:

...blah....

openmpi)
     if [ -z "$MPI_HOME" ]; then
         PAR="OPENMPI"
         FILES="mpif.h and libmpi.a, liblam.a or liblamf77mpi.a"
         EXAMPLE="/usr/local/openmpi-1.0"
         par_error
     fi
     echo "MPI_HOME is set to $MPI_HOME"
     loadlib=`$MPI_HOME/bin/mpif90 -showme | perl -p -e
's/(-[lLW]\S+\s)|\S+\s/$1/g'`
     fppflags="-I$MPI_HOME/include $fppflags -DMPI"
     ;;

...blah....

If MPI_HOME set, then configure will attempt to execute
$MPI_HOME/bin/mpif90 -showme to ascertain which libs it will need for
linking to. It will then pipe this via perl to do some clean ups and
then set the result of this to loadlib. Ultimately, this manifests
itself as LOADLIB=<parsed output of $MPI_HOME/bin/mpif90 -showme> in the
resulting config.h file.

You have already stated in an email that your MPI_HOME is set to
"/usr/local/openmpi-1.2.3". The fact that in the config.h that you
attached to a previous email, the LOADLIB= variable is empty, suggests
that $MPI_HOME/bin/mpif90 -showme returned nothing because it was not
actually executed. This suggests that your $MPI_HOME path is wrong. From
the output of the find command I asked you to run, the mpif90 --showme
command output and Benjamin's comments, I conclude that the MPI_HOME dir
should be "/usr/local".

Hence, I suggest trying:

  cd $AMBERHOME/src
  make clean

  export MPI_HOME=/usr/local
  ./configure -openmpi ifort_x86_64

  make parallel

I believe David's and Benjamin's advice is correct, but I think this
route should achieve the same goal, but avoiding any possible side
effects associated with hand hacking the config.h file. You can always
try this first since it's the easiest and if it does not work, move
other to the other excellent suggestions from the list.

regards,

Mark Williamson
-----------------------------------------------------------------------
The AMBER Mail Reflector
To post, send mail to amber_at_scripps.edu
To unsubscribe, send "unsubscribe amber" to majordomo_at_scripps.edu