parallel computation

Asked by ceguo

Hi everyone,

Initially I used a small amount particles in the simulation, so I never tried parallel computation before in ESyS, (i.e. I set numWorkerProcesses=1,mpiDimList=[1,1,1] in the script), though it is a great advantage characteristic of ESyS. Now I want to increase the number to 40,000 in an isotropic compression test and I hope to use parallelism to improve the efficiency of the simulation. But as I tried some effort, when I increase the numWorkerProcesses(trying 2, 4 and 8 respectively), the computation time increases obviously at the beginning. I haven't continued to run the whole simulation as I found the first few steps slowed down. I know the communication between domains will cost time. But I think 40,000 is not a small amount. So I am wondering how many particles do you usually have when you consider to use parallelism?

Rgds

Ning

Question information

Language:
English Edit question
Status:
Answered
For:
ESyS-Particle Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Anton Gladky (gladky-anton) said :
#1

Hi Ning,

as I remember, Dion said, that it should be at least 5000 spheres on each
process to get more-less normal efficiency. You have more. But what PC do
you use for simulation? I tried to increase the number of processes on
2-core machine with no success. 4-core machine works much more better with 3
working processes + 1 master.

______________________________
Anton Gladkyy

2010/4/26 ceguo <email address hidden>

> New question #108447 on ESyS-Particle:
> https://answers.launchpad.net/esys-particle/+question/108447
>
> Hi everyone,
>
> Initially I used a small amount particles in the simulation, so I never
> tried parallel computation before in ESyS, (i.e. I set
> numWorkerProcesses=1,mpiDimList=[1,1,1] in the script), though it is a great
> advantage characteristic of ESyS. Now I want to increase the number to
> 40,000 in an isotropic compression test and I hope to use parallelism to
> improve the efficiency of the simulation. But as I tried some effort, when I
> increase the numWorkerProcesses(trying 2, 4 and 8 respectively), the
> computation time increases obviously at the beginning. I haven't continued
> to run the whole simulation as I found the first few steps slowed down. I
> know the communication between domains will cost time. But I think 40,000 is
> not a small amount. So I am wondering how many particles do you usually have
> when you consider to use parallelism?
>
> Rgds
>
> Ning
>
> --
> You received this question notification because you are an answer
> contact for ESyS-Particle.
>

Revision history for this message
Dion Weatherley (d-weatherley) said :
#2

Hi Ning,

I routinely run simulations of approximately 50,000 particles and typically use 4 worker processes for those. For uniaxial compression simulations, the total runtime is about 12-20 hours (for about 250,000 timesteps).

Anton is quite correct that you will need to ensure each worker process is responsible for approximately 5000 particles or so. This will ensure a reasonable trade-off between computation time and communication time.

I've also found that using more worker processes (+ master) than you have processors/cores will result in very bad performance. Since each worker process uses almost 100% of the CPU, sharing workers on the one CPU will at least halve your performance.

Cheers,

Dion.

Can you help with this problem?

Provide an answer of your own, or ask ceguo for more information if necessary.

To post a message you must log in.