Wtrlt: RE: [EXTERNAL] Re: gcmc for water

Hi Axel,

If I got you right, I should compile the lammps code as single core version and include OpenMPI for the routines which are in parallel. At the end for example fix nvt is running in parallel while fix-gcmc is executed serially? Have I got it right? If yes, I am satisfied that at least all the other parts of lammps are running in parallel and I can submit the sim as multi-core job.

How I can get OpenMP support by compiling the serial version, have I to add a setting in the serial Makefile?
Sorry for this possibly obvious questions but I am really not an expert on this topic.

Thank you Axel.

Regards Sabine

By the way, are you in the states? It must be very early in the morning now. I just wonder that I got an answer at this time.

Axel Kohlmeyer [email protected] 06/16/12 1:51 PM >>>
sabine,

[…]

of water in a cavities etc. Unfortunately, for this systems one needs big
system sizes, since the water vapor density is very low making it necessary
to run the sims on more than one core.

you do not necessarily need an MPI parallel version for that.
you can compile a serial version and include GPU acceleration
and/or OpenMP support through the respective packages.
this way the time consuming force calculation can run faster, too.

I do not need the code completely in parallel, but at least like your
version, such that one can start it together with fix nvt on several cores.

if you want an MPI-parallel version it is all-or-nothing.
with the domain decomposition based parallelization,
the issues are not directly in your code, but the changes
it causes to the management of particles, which require
communication and extra bookkeeping.

axel.

Hi Axel,

If I got you right, I should compile the lammps code as single core version
and include OpenMPI for the routines which are in parallel. At the end for
example fix nvt is running in parallel while fix-gcmc is executed serially?
Have I got it right? If yes, I am satisfied that at least all the other

no. OpenMP (not OpenMPI !) is a different parallelization from
MPI parallelization (multi-threading+shared memory vs. message passing).
OpenMP is only supported by parts of LAMMPS that have been
changed accordingly. while adding OpenMP by itself is simple,
having OpenMP work *efficiently* with classical MD is not.
for details on how to use OpenMP with LAMMPS please see:

http://lammps.sandia.gov/doc/Section_accelerate.html#acc_2

parts of lammps are running in parallel and I can submit the sim as
multi-core job.

How I can get OpenMP support by compiling the serial version, have I to add
a setting in the serial Makefile?

you have to have the USER-OMP package installed
and use the corresponding /omp styles. For GCC as
a compiler, you can use this makefile from LAMMPS-ICMS.

http://git.icms.temple.edu/git/?p=lammps-icms.git;a=blob_plain;f=src/MAKE/Makefile.serial-omp;hb=HEAD

the major point is to add the -fopenmp flag, which turns on
the "OpenMP mode" in the compiler. this flag is compiler
specific, so you'll have to check out your compiler documentation,
if you want to use a different compiler.

Sorry for this possibly obvious questions but I am really not an expert on
this topic.

no comment.

axel.