Welcome, Guest
Username: Password: Remember me

TOPIC: Compiling TELEMAC with OpenMPI and ifort

Compiling TELEMAC with OpenMPI and ifort 11 years 2 months ago #10164

  • pprodano
  • pprodano's Avatar
  • OFFLINE
  • Senior Boarder
  • Posts: 96
  • Thank you received: 55
Hello,

I have previously successfully compiled v6p3r1 using openmpi and gfortran. Everything worked great. To get some extra speed, I tried to compile it using ifort instead of gfortran.

If I understood the instructions correctly, all I have to do is alter the cmd_obj, cmd_lib and cmd_exe in the *.cfg file. With the *.cfg file below, the system seems to create objects and libraries, but not the executables. I've tried a few different cmd_exe options, but no luck. It could be that OpenMPI is still referencing to gfortran and not to ifort, but I am not sure. Does anyone know how to link OpenMPI to ifort in the cmd_exe option?

I am using Debian Wheezy with intel's composer_xe_2013.5.192.

Any recommendations are welcome.

Thank you,

Pat
# _____                              _______________________________
# ____/ TELEMAC Project Definitions /______________________________/
#
[Configurations]
configs: ifortdebianmpi2
#
[general]
root:       /home/user/opentelemac/v6p3r1
version:    v6p3
language:   2
modules:    system -dredgesim
options:
#
mods_all:   -I <config>
#
sfx_zip:    .gztar
sfx_lib:    .a
sfx_obj:    .o
sfx_mod:    .mod
sfx_exe:
#
val_root:   <root>/examples
val_rank:   all
# also possible val_rank:   <3 >7 6
#

# ____/ Debian ifort openMPI /__________________________________/
[ifortdebianmpi2]
#
options:    parallel mpi
#
par_cmdexec:   <config>/bin/partel < PARTEL.PAR >> <partel.log>
#
mpi_cmdexec:   /usr/bin/mpiexec -wdir <wdir> -n <ncsize> <exename>
mpi_hosts:
#
cmd_obj:    ifort  -c -O3 -convert big_endian -no-prec-div -O3 -sox -vec-report1 -xsse4.2 -g -DHAVE_VTK -DHAVE_MPI -DHAVE_TECPLOT <mods> <incs> <f95name>
cmd_lib:    ar cru <libname> <objs>
cmd_exe:    ?????????
#
mods_all:   -I <config>
#
incs_parallel:      -I /usr/include/mpi/
libs_partel:      /home/user/opentelemac/v6p3r1/optionals/metis-5.1.0/build/Linux-i686/libmetis/libmetis.a
libs_all       :    /usr/lib/libmpi.so.0.0.4
#
#
The administrator has disabled public write access.

Compiling TELEMAC with OpenMPI and ifort 11 years 2 months ago #10165

  • sebourban
  • sebourban's Avatar
  • OFFLINE
  • Administrator
  • Principal Scientist
  • Posts: 814
  • Thank you received: 219
Hello,

If you look under the configs, there are example of configurations. [C7.ifort10HPC] within systel.edf.cfg seems to be the closest to you configuration, although it is v6p2. Note that you need both METIS and MPI to be Intel friendly.

Maybe it will help.

Sebastien.
The administrator has disabled public write access.

Compiling TELEMAC with OpenMPI and ifort 11 years 2 months ago #10168

  • pprodano
  • pprodano's Avatar
  • OFFLINE
  • Senior Boarder
  • Posts: 96
  • Thank you received: 55
Hi Sebastien,

Thank you for your reply. I looked at the systel.edf.cfg file before making my first post, and tried a number of options derived from that file. In every instance objects are compiled, packages are created, but the executables are not.

Do you know how to set the cmd_obj, cmd_lib and cmd_exe options given that ifort is already installed? Is there anything special that must be done with the OpenMPI libraries?

Another way of asking the same question is this: how does one go about and make a new *.cfg file given that the compiler (ifort), METIS, and OpenMPI are already installed? Do you know of a place where I could find out more about this?

Thanks in advance,

Pat
The administrator has disabled public write access.

Compiling TELEMAC with OpenMPI and ifort 11 years 2 months ago #10298

  • cmitsis
  • cmitsis's Avatar
Hi Pat,

Have you already found a solution to your problem?

If not I have compiled v6p3r1 on HPC with the intel compilers and it seems to be working quite efficiently in parallel mode.

Let me know.

Regards,
Christos
The administrator has disabled public write access.

Compiling TELEMAC with OpenMPI and ifort 11 years 2 months ago #10313

  • pprodano
  • pprodano's Avatar
  • OFFLINE
  • Senior Boarder
  • Posts: 96
  • Thank you received: 55
Hello Christos,

Thank you for your post. I did manage to get it working in parallel eventually. I had to switch from OpenMPI to MPICH2 to get it to work (I don't have Intel's MPI -I am doing this on a simple desktop). Just out of curiosity, which are you using? Does it make a difference in performance which variant of MPI is used?

Pat

P.S. For completeness, I am including my configuration file that works.
# _____                              _______________________________
# ____/ TELEMAC Project Definitions /______________________________/
#
[Configurations]
configs: ifortdebianmpi
#
[general]
root:       /home/user/opentelemac/v6p3r1
version:    v6p3
language:   2
modules:    system -dredgesim
options:
#
mods_all:   -I <config>
#
sfx_zip:    .gztar
sfx_lib:    .a
sfx_obj:    .o
sfx_mod:    .mod
sfx_exe:
#
val_root:   <root>/examples
val_rank:   all
# also possible val_rank:   <3 >7 6
#

# _____                          ___________________________________
# ____/ Debian ifort /__________________________________/
[ifortdebianmpi]
#
options:    parallel mpi
par_cmdexec:   <config>/partel < PARTEL.PAR >> <partel.log>
mpi_cmdexec: mpirun.mpich2 -machinefile MPI_HOSTFILE -np <ncsize> <exename>
#
cmd_obj:    ifort -c -O3 -convert big_endian -DHAVE_MPI <mods> <incs> <f95name>
cmd_lib:    ar cru <libname> <objs>
cmd_exe:    ifort -convert big_endian -o <exename> <objs> <libs>
#
mods_all:   -I <config>
#
#
incs_parallel:      -I /usr/include/mpich2/
libs_partel:      /home/user/opentelemac/v6p3r1/optionals/metis-5.1.0/build/Linux-i686/libmetis/libmetis.a
libs_all:           /usr/lib/mpich2/lib/libfmpich.so -lmpichf90 -lmpich -lopa -lpthread -lpthread -lrt
#
The administrator has disabled public write access.

Compiling TELEMAC with OpenMPI and ifort 11 years 2 months ago #10314

  • cmitsis
  • cmitsis's Avatar
Hi Pat,

I am using openmpi 1.3.3 compiled though with the intel ifort and mpicc compiler (the metis library also needs to be compiled with mpicc).

As far as it concerns performance it seems be faster than gfortran but for a significant amount of load (i.e. 32 and up to 96 processors). For parallelization up to 4 processors I could see no difference. However, no extensive benchmarks tests have been performed and I am not able to comment regarding differences between openmpi and mpich2 as we are only using openmpi on linux architecture.

Christos
The administrator has disabled public write access.

Compiling TELEMAC with OpenMPI and ifort 11 years 2 months ago #10170

  • sebourban
  • sebourban's Avatar
  • OFFLINE
  • Administrator
  • Principal Scientist
  • Posts: 814
  • Thank you received: 219
Hello,

You seem to have done it right, and you can just use ifort for the cmd_exe. However, I wonder whether you problem comes from somewhere else: in parallel, you have to have -DHAVE_MPI but do you also need -DHAVE_VTK -DHAVE_TECPLOT ? You may need external libraries that you also need to compile with ifort.

Also, on windows (I have used yet ifort on Linux) the command for cmd_lib and cmd_exe are:
cmd_lib:    xilib.exe /nologo /out:<libname> <objs>
cmd_exe:    xilink.exe /nologo /out:<exename> <objs> <libs>

Replacing "/" by "-" you should check if you have xilink and xilib available on your system. You can also use xilink in lieu of xilib.

Hope this helps,
Sébastien.
The administrator has disabled public write access.
Moderators: borisb

The open TELEMAC-MASCARET template for Joomla!2.5, the HTML 4 version.