espressomd-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Parallelization


From: Jean-Noël Grad
Subject: Re: Parallelization
Date: Thu, 30 Dec 2021 13:11:19 +0100
User-agent: Roundcube Webmail/1.3.17

Dear Ahmad,

Your espresso script will run in parallel if you call it with `mpiexec -n 4 ./pypresso script.py`. No other action is required. You can find the number of processors on your workstation with the command `nproc`. On clusters you will probably need to load mpiexec with `module load openmpi` or similar.

The ESPResSo results are automatically collected on MPI rank 0 for you, so matplotlib and other data processing tools will work as usual. The box will be divided automatically. If you have good reasons to override the default box partition, you can add `system.cell_system.node_grid = [i,j,k]` right after the line `system = System(box_l=...)`.

I wouldn't recommend running a Jupyter notebook in parallel if you have no prior experience with MPI parallelization. It's quite difficult to do and there isn't much information available online to help with that setup. You will find it much easier to export your notebook as a Python script and run it directly with mpiexec or mpirun. Just make sure to write the results of the calculation to a file, so that you can read them later and plot them in a Python script or Jupyter notebook.

I'll look into writing something in the user guide about MPI parallelization in the next few weeks. Most of the information is already in my previous mail. ESPResSo was designed to work with mpiexec/mpirun in a completely transparent manner.

Best regards,
JN

On 2021-12-30 09:06, Ahmad Reza Motezakker wrote:
Dear Rudolf/Dear Jean-Noel,

Thank you very much for your help. I just need parallelization to run
a simulation.

I really appreciate if you provide a general document on
parallelization (also in Jupyter) with details. For example, how to
divide the box, collecting results and etc.

Thank you for your efforts,

Ahmad Reza
-------------------------

From: Rudolf Weeber <weeber@icp.uni-stuttgart.de>
Sent: Wednesday, December 29, 2021 7:23:20 PM
To: Ahmad Reza Motezakker
Cc: espressomd-users@nongnu.org
Subject: Re: Parallelization

Hi Ahmad,
On Wed, Dec 29, 2021 at 05:08:18PM +0000, Ahmad Reza Motezakker wrote:
Is there any tutorial or any document on EspressoMD parallelization?
I really appreciate your help. Any suggestion or experience will be
really helpful for me.
Do you just want to run a simulation in parallel, or do you want to
extend Espresso andneed to write parallel code for that.
If it is about running, you use
mpirun -np <n> ./pypresso <script.py> <arguments>
where <n> is the number of processor cores you want to run on.
More is not necessarily better, as parallelizaiton requires
communicaiton, whicht akes time of its own.
For pure Lennard-Jones-systems parallelizaiton tends not to be worth
it belwo 10k particles. If you use electrostatics or other
computaiton-intensive algorithms, the number is lower.
In practice, just time some 100 integration steps using the Python
`time` or `timeit`modules and pick the number of cpu cores which
serves you best.

Hope that helps!
Regareds, Rudolf



reply via email to

[Prev in Thread] Current Thread [Next in Thread]