← Back to team overview

yade-dev team mailing list archive

Re: [yade-dev] run faster by +16% with r1402

 

sega napsal(a):
> Hi, All.
>
> I had run a simulation of 90000 spheres and got 
> about 0.44 iter/sec with ParallelEngine (used as in scripts/simple-scene-parallel.py),
> and about 0.35 iter/sec without ParallelEngine
> on a notebook with Intel(R) Core(TM)2 Duo CPU T8100 @ 2.10GHz and 2GB RAM.
>   
Cool!! I thought that it would be an improvement with large simulations,
but couldn't prove that. Can you - please - collect speeds etc that you
get underway? Those are things that could be very useful; you can put
your findings on the wiki, create a page for parallel computation.
> So, parallelization is effective, but I need more speed!! And I want to use openmp for in-engine cycles 
> (for GravityEngine, BoundingBoxMetaEngine, ect.) and to run yade on a cluster. 
> This topic had been discussed here earlier. 
> Tell me please, how much work has been done in that direction and how much successes in it?
> Is there a 'reefs' or 'nota benes'? 
>   
* Don't use parallelization for small simulations, they will be slower.

* Openmp needs random-access elements. Therefore, currently there is no
way to parallelize loops over interactions, only over bodies; that's a pity.
> I see commented line /pragma omp paraller for/ in BoundignVolumeMetaEngine.cpp. Why it is commented?
>   
It turned out that for smaller simulations, the overhead of creating
parallel section is bigger that the time it saved on the computation.
Therefore, I commented that out, since it would penalize typical users
(including me). I would be very interested to hear about your findings.

It would be interesting to compare speed of running yade with
OMP_NUM_THREADS=1 and all those engines (gravity etc) marked as /pragma
omp parallel for/ and without that. They would run in single thread in
every case, but if the overhead of openmp would be negligible, that
could be added by default and the number of threads set by a
command-line switch at runtime (omp_set_num_threads).
> Janek,  you  use yade on cluster, seems. Tell me please, you use trunk version or modified it specially for cluster?
>   
AFAIK they use cluster to run multiple simulations at once.

Best, Vaclav




References