[Solved] Compiling Abinit 6.4.3 on SGI Altix (Jade)

option, parallelism,...

Moderators: fgoudreault, mcote

Forum rules
Please have a look at ~abinit/doc/config/build-config.ac in the source package for detailed and up-to-date information about the configuration of Abinit 8 builds.
For a video explanation on how to build Abinit 7.x for Linux, please go to: http://www.youtube.com/watch?v=DppLQ-KQA68.
IMPORTANT: when an answer solves your problem, please check the little green V-like button on its upper-right corner to accept it.
Locked
Boris
Posts: 128
Joined: Tue Feb 16, 2010 10:13 am
Location: France

[Solved] Compiling Abinit 6.4.3 on SGI Altix (Jade)

Post by Boris » Fri Feb 25, 2011 6:10 pm

Hi everyone,

I am trying to compile Abinit 6.4.3 on a SGI Altix platform. The command line I used is as follows:

Code: Select all

../configure --enable-mpi -enable-scalapack FC=ifort


I took care of specifying the fortran compiler because without that, it uses gfortran, which is not the best thing to do, I think.

The configure script went fine, except one warning:
configure: WARNING: MPI support is broken!

and the compilation actually failed with lots of errors complaining about MPI...

Without specifying the fortran compiler, it uses gfortran with the same warning. Plus, there are additional warnings during the compilation and the compilation also fails. For instance:
drotmg.f:138.15:

GO TO IGO(120,150,180,210)
1
Warning: Deleted feature: Assigned GOTO statement at (1)
drotmg.f:144.72:

ASSIGN 120 TO IGO
1
Warning: Deleted feature: ASSIGN statement at (1)


Finally I changed a bit my command line according to what I've read on the forum. I explicitely put the path to the MPI library:

Code: Select all

../configure  --enable-mpi="yes" --with-mpi-prefix="/opt/sgi/mpt/mpt-2.02/" --enable-scalapack --disable-all-plugins


But now I got the following error message:
configure: error: use --with-mpi-prefix or set FC, not both

Which is strange since I did not set FC.

Could you please help me with that?

Thank you

Boris
Last edited by Boris on Fri Feb 25, 2011 11:29 pm, edited 2 times in total.
----------------------------------------------------------
Boris Dorado
Atomic Energy Commission
France
----------------------------------------------------------

User avatar
Alain_Jacques
Posts: 279
Joined: Sat Aug 15, 2009 9:34 pm
Location: Université catholique de Louvain - Belgium

Re: Compiling Abinit 6.4.3 on SGI Altix

Post by Alain_Jacques » Fri Feb 25, 2011 7:00 pm

Hello Boris,

Abinit is not tested (anymore?) on this kind of platform so I have no success story for you but there is no prior reason why it should not work.

Anyway don't mix mpi options with FC. When MPI compilers are invoked - mpif90, mpicc - they call the compiler backend that has been defined when building the MPI libraries i.e. you cannot change "on the fly so those options are exclusive". To reveal the backend compiler, use "mpif90 -show" (-show works with MPICH2, your own implementation should have a similar option). Furthermore scalapack also rely on MPI so you have to be consistent.

So prepare your environment - it means that a plain "mpif90 test.F90" should produce a working MPI binary and configure Abinit with
../configure --enable-mpi --with-mpi-prefix=/XXX --enable scalapack
with /XXX is the path to MPI installation i.e. /XXX/bin/mpif90, /XXX/bin/include/mpi.h, ... exist. And maybe try first without the scalapack option - do you have such large systems that you want to distribute linear algebra routines on your cluster?
Check config.dump and src/98_main/Makefile to see if the suitable libraries have been detected.

... your post seems to change while I edit mine. Did you clean the prior attempts with a make clean (or rm -rf your build directory). Could you please copy the part of config.log corresponding to the "MPI support is broken" error message (this one is really toxic)? What are the versions of MPI and backend fortran compiler?

Kind regards,

Alain

Boris
Posts: 128
Joined: Tue Feb 16, 2010 10:13 am
Location: France

Re: Compiling Abinit 6.4.3 on SGI Altix

Post by Boris » Fri Feb 25, 2011 7:07 pm

Hi Alain,

Thank you for your answer. The platform I am compiling on is the french supercalculator Jade, which is a SGI Altix. How come Abinit is not tested anymore on such a big machine?

The problem I encountered is that there is no such compilers as mpif90 (that surprised me). In the bin directory of the MPI library (where the compilers should be right?), I can find:
mpiexec_mpt mpirun mpt_checkpoint mpt_forward mpt_restart omplace rail-config

Can I use one of those?

Thank you again

Boris

Edit: Yes sorry I edited my post many times depending on my attempts. I always clear everything or delete the whole build folder.
----------------------------------------------------------
Boris Dorado
Atomic Energy Commission
France
----------------------------------------------------------

User avatar
Alain_Jacques
Posts: 279
Joined: Sat Aug 15, 2009 9:34 pm
Location: Université catholique de Louvain - Belgium

Re: Compiling Abinit 6.4.3 on SGI Altix

Post by Alain_Jacques » Fri Feb 25, 2011 7:55 pm

How come Abinit is not tested anymore on such a big machine?


Abinit tesfarm is quite impressive but no SGI anymore ... I need an account on Jade :-) 27th on Top500 - should be a nice system. Good news is that you have Intel ifort compiler - this one is heavily tested and Altix or not shouldn't change that Abinit works fine with this one. More disturbing to me is the parallel environment. I've never played with MPT but SGI says it's MPI 2.2 compliant so it should be fine. The binaries you listed seem to be the runtime environment i.e. launchers for MPI applications. Again I have no experience with Jade particularities bit it seems that you don't have the development environment for MPT - with the mpif90 wrapper, include files, etc ... Now having a quick look on MPT docs on http://www.ncsa.illinois.edu/UserInfo/Resources/Hardware/SGIAltix/Doc/Compile.html it seems that MPT has no equivalent mpif90, mpicc wrappers (so goodbye for the compliance) and that you have to call ifort -lmpi directly. Before even thinking about (severe) configuration hacking to take this into account, are you sure that there is no other MPI "solutions" on Jade like accelerated MPICH2 or openMPI? Nothing unusual to have several coexisting MPI environments.

Alain

Boris
Posts: 128
Joined: Tue Feb 16, 2010 10:13 am
Location: France

Re: Compiling Abinit 6.4.3 on SGI Altix

Post by Boris » Fri Feb 25, 2011 9:16 pm

Alain,

Jade is indeed a nice system. I looked at the documentation, and there are actually several possibilities. I can use SGI MPI library (MPT), but if I do that, as you said, I have to call ifort -lmpi, which sounds a bit complicated. Fortunately, I can use IntelMPI with mpi wrappers mpiifort. I will try with this one.

I will let you know about this.

Edit:
Well, IntelMPI didn't work. There was a problem with the c compiler not working. So I tried with OpenMPI and the configure step went very fine with the following command line:

Code: Select all

../configure --enable-mpi --with-mpi-prefix="/opt/software/SGI/opensource/MPI/openmpi/1.4.1/intel/11.1.059/" --disable-all-plugins


The compilation went fine and abinit is up and running!

Thanks a lot for your help!
----------------------------------------------------------
Boris Dorado
Atomic Energy Commission
France
----------------------------------------------------------

Boris
Posts: 128
Joined: Tue Feb 16, 2010 10:13 am
Location: France

Re: [Solved] Compiling Abinit 6.4.3 on SGI Altix (Jade)

Post by Boris » Tue May 10, 2011 12:08 am

Hi all,

I'm bumping the topic because I still can't figure out this error message from abinit:

Code: Select all

configure: error: use --with-mpi-prefix or set CC, not both


My command line is very simple:

Code: Select all

../configure --enable-mpi --with-mpi-prefix=/opt/OpenMPI/openmpi-1.4.3-intel


Each time I use the above configure, abinit stops and displays the error message. If I want the configure script to work, I have to define explicitly the path to the compilers, for instance:

Code: Select all

../configure --enable-mpi FC=/opt/OpenMPI/openmpi-1.4.3-intel/bin/mpif90 CC=/opt/OpenMPI/openmpi-1.4.3-intel/bin/mpicc CXX=/opt/OpenMPI/openmpi-1.4.3-intel/bin/mpic++


In the end, the above command line is exactly the same as if I used "with-mpi-prefix=/opt/OpenMPI/openmpi-1.4.3-intel/", right? How come the latter doesn't work? Am I missing something?

Thank you for your answers

Boris
----------------------------------------------------------
Boris Dorado
Atomic Energy Commission
France
----------------------------------------------------------

User avatar
pouillon
Posts: 651
Joined: Wed Aug 19, 2009 10:08 am
Location: Spain
Contact:

Re: [Solved] Compiling Abinit 6.4.3 on SGI Altix (Jade)

Post by pouillon » Tue May 10, 2011 5:48 pm

Having a proper MPI support in any build system is not a trivial thing. In the case of Abinit, you are not allowed to manually set the compilers while using the --with-mpi-prefix option. The build system considers the latter as a "please detect and set all relevant MPI parameters for me within the subtree of the specified directory". This process involves setting the values of CC, CXX, and FC, which in practice has caused some confusion in various cases when these environment variables were already set.

If you get an error when using the --with-mpi-prefix option only, this means that CC, CXX, and FC, have been set by your system administrator. If you want to be able to use it again, you have to do the following before running configure (or put it at the beginning of your config file):

Code: Select all

unset CC; unset CXX; unset FC
Yann Pouillon
Simune Atomistics
Donostia-San Sebastián, Spain

Boris
Posts: 128
Joined: Tue Feb 16, 2010 10:13 am
Location: France

Re: [Solved] Compiling Abinit 6.4.3 on SGI Altix (Jade)

Post by Boris » Tue May 10, 2011 6:03 pm

Ok I now understand

Thank you for the information

Boris
----------------------------------------------------------
Boris Dorado
Atomic Energy Commission
France
----------------------------------------------------------

Locked