yambo does not run in parallel

Having trouble compiling the Yambo source? Using an unusual architecture? Problems with the "configure" script? Problems in GPU architectures? This is the place to look.

Moderators: Davide Sangalli, andrea.ferretti, myrta gruning, andrea marini, Daniele Varsano, Conor Hogan, Nicola Spallanzani

Forum rules
If you have trouble compiling Yambo, please make sure to list:
(1) the compiler (vendor and release: e.g. intel 10.1)
(2) the architecture (e.g. 64-bit IBM SP5)
(3) if the problems occur compiling in serial/in parallel
(4) the version of Yambo (revision number/major release version)
(5) the relevant compiler error message
Post Reply
narzate
Posts: 3
Joined: Wed Oct 07, 2009 5:06 pm

yambo does not run in parallel

Post by narzate » Thu Nov 05, 2009 12:31 am

Dear all

I have compiled yambo in an itanium2 architecture. There are no errors neither in the configure nor the
compilation steps. Actually it runs perfectly in "serial" and I have got through the tutorial succesfully.
However if I want to run yambo in parallel it fails to run. According to the configuration options, It is pressumably
compiled in parallel. But in the end It seems that it was not.
Any idea of the problem?

The details of the configure and compilation are below.

Thanks
Norberto

####
Norberto Arzate
Optical Research Centre, Mexico.
####


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1. Compiler: Intel Fortran Compiler 9.1
mpicc 9.1
gcc version 3.4.4
2. Architecture: Itanium 2, ia64
3. Compilation in parallel
4. Yambo: yambo-3.2.1-r.448

5. Configure options: (in attach you will find the config.log file)

$ ./configure --prefix=/home/prog/yambo-3.2.1-r.448_itanium2
FC=ifort CC=gcc --with-p2y=4.0
--with-blacs=no
--with-blas=/home/prog/yambo-3.2.1-r.448_itanium2/lib/blas/libblas.a
--with-lapack=/home/prog/yambo-3.2.1-r.448_itanium2/lib/liblapack.a
--with-mpi=/home/mpich_itanium/lib/libmpichf90.a
--with-iotk=/home/prog/espresso-4.1_itanium/iotk
--with-etsf=/home/prog/etsf-libs/libxc-1.0-alpha_itanium/lib/libxc.a
FCFLAGS="-O2 -parallel -tpp2 -L/home/mpich_itanium/lib -I/home/mpich_itanium/include
-L/home/prog/etsf-libs/ libxc-1.0-alpha_itanium/lib -L/home/prog/espresso-4.1_itanium/iotk/src"
CFLAGS=-L/home/mpich_itanium/lib -I/home/mpich_itanium/include
-L/home/prog/etsf-libs/libxc-1.0-alpha_itanium/lib -L/home/prog/espresso-4.1_itanium/iotk/src"

7. The message that appeared in the end of the configure step is:

###>>>
# [VER] 3.2.1 r.448
#
# [SYS] linux@ia64
# [SRC] /home/prog/yambo-3.2.1-r.448_itanium2
# [BIN] /home/prog/yambo-3.2.1-r.448_itanium2/bin
# [FFT] Goedecker Fast Fourier transform with 0 cache
#
# [ ] Double precision
# [X] Redundant compilation
# [X] MPI
# [X] PW (4.0) support
# [ ] ETSF I/O support
# [ ] SCALAPACK
# [ ] NETCDF/Large Files
# [XX ] Built-in BLAS/LAPACK/LOCAL
#
# [ CPP ] gcc -E -P
# [ C ] gcc -L/home/mpich_itanium/lib -I/home/mpich_itanium/include -L/home/prog/etsf-libs/libxc-1.0-alpha_itanium/lib -L/home/prog/espresso-4.1_itanium/iotk/src -D_C_US -D_FORTRAN_US
# [MPICC] mpicc -L/home/mpich_itanium/lib -I/home/mpich_itanium/include -L/home/prog/etsf-libs/libxc-1.0-alpha_itanium/lib -L/home/prog/espresso-4.1_itanium/iotk/src -D_C_US -D_FORTRAN_US
# [ F90 ] ifort -O2 -parallel -tpp2 -L/home/mpich_itanium/lib -I/home/mpich_itanium/include -L/home/prog/etsf-libs/libxc-1.0-alpha_itanium/lib -L/home/prog/espresso-4.1_itanium/iotk/src
# [MPIF ] mpif90 -O2 -parallel -tpp2 -L/home/mpich_itanium/lib -I/home/mpich_itanium/include -L/home/prog/etsf-libs/libxc-1.0-alpha_itanium/lib -L/home/prog/espresso-4.1_itanium/iotk/src
# [ F77 ] ifort -O2 -parallel -tpp2 -L/home/mpich_itanium/lib -I/home/mpich_itanium/include -L/home/prog/etsf-libs/libxc-1.0-alpha_itanium/lib -L/home/prog/espresso-4.1_itanium/iotk/src
# [Cmain] -nofor_main
# [NoOpt]
#
# [ MAKE ] make
# [EDITOR] vi

###<<<

8. In order to run yambo in serial I have to skip MPI initialization, that is, I type

$ yambo -N

and it runs succesfully.

8. In order to run yambo in parallel I type

$ mpirun -machinefile node_file -np 2 yambo

and the message is:

###>>>
yambo : invalid option -- p

This is yambo 3.2.1 rev.448
Usage: yambo -h -H -J <opt> -V <int> -F <opt> -I <opt> -O <opt> -C <opt> -N -D -S -i -o <opt> -t <opt> -c -x -b -p <opt> -g <opt> -y <opt>
Try `yambo -H' for more information
###<<<
You do not have the required permissions to view the files attached to this post.

User avatar
andrea marini
Posts: 325
Joined: Mon Mar 16, 2009 4:27 pm
Contact:

Re: yambo does not run in parallel

Post by andrea marini » Thu Nov 05, 2009 10:59 am

narzate wrote: $ mpirun -machinefile node_file -np 2 yambo

and the message is:

###>>>
yambo : invalid option -- p

This is yambo 3.2.1 rev.448
Usage: yambo -h -H -J <opt> -V <int> -F <opt> -I <opt> -O <opt> -C <opt> -N -D -S -i -o <opt> -t <opt> -c -x -b -p <opt> -g <opt> -y <opt>
Try `yambo -H' for more information
###<<<
Dear Norberto, unfortunately this is a well known problem that Yambo has with some specific mpirun. The problem is that yambo tries to interpret any option that follows tha command. So if mpirun puts any option after yambo, yambo will try to interpret it. In your case what mpirun is presumibly launching

> (whatever) yambo -np 2

and yambo is complaing about the -p option that does not follow the yambo synopsys. Before hacking the code, please try (one by one and joint) the following two options
  1. re-compile the code with the --enable-options-check=no option. This would prevent yambo to complain but it could also remove the -np 2 option from the command line making the paraller run impossible.
  2. try launching yambo in a separate shell. Create a launc_yambo.sh with the actual yambo command line and replace yambo with this script in the mpirun command line.
Let me know.

Cheers
Andrea MARINI
Istituto di Struttura della Materia, CNR, (Italy)

User avatar
myrta gruning
Posts: 240
Joined: Tue Mar 17, 2009 11:38 am
Contact:

Re: yambo does not run in parallel

Post by myrta gruning » Thu Nov 05, 2009 11:18 am

Dear Norberto

Check as well if there is another mpi installed on your machine. I met this annoying problem with mpich but e.g. not with openmpi (and I believe neither with mpich2).

Regards,

Myrta
Dr Myrta Grüning
School of Mathematics and Physics
Queen's University Belfast - Northern Ireland

http://www.researcherid.com/rid/B-1515-2009

narzate
Posts: 3
Joined: Wed Oct 07, 2009 5:06 pm

Re: yambo does not run in parallel

Post by narzate » Fri Nov 06, 2009 7:01 pm

Dear Andrea and Myrta

I have followed your suggestions:

1. Recompiling the code with the -enable-options-check=no option and
trying launching the code in a separate shell didn't work.

2. I downloaded and compile mpich2-1.2. Then I compile yambo using mpich2.
Now It works in parallel! :)

I wonder which code produces this kind of problem, either yambo or mpich. It is not clear to me.
Well upgrading mpich was the solution.

Thanks
Norberto

User avatar
myrta gruning
Posts: 240
Joined: Tue Mar 17, 2009 11:38 am
Contact:

Re: yambo does not run in parallel

Post by myrta gruning » Fri Nov 06, 2009 7:32 pm

Dear Norberto,

Nice that you manage to solve the problem. (In case there was a "dirty" workaround that would work, but at the price of disabling some features of yambo and working with a specific executable for parallel jobs.)
I wonder which code produces this kind of problem, either yambo or mpich. It is not clear to me.
Well upgrading mpich was the solution.
Of course mpich... ;)
More seriously as in every relationship it is more a question of "incompatibility". Differently from most other codes the yambo executable accepts options, and differently from other mpirun the mpich script put mpi options behind the executable. The combination of the things just does not work. But luckily others mpi are working.
Dr Myrta Grüning
School of Mathematics and Physics
Queen's University Belfast - Northern Ireland

http://www.researcherid.com/rid/B-1515-2009

Post Reply