← Back to team overview

yade-dev team mailing list archive

Re: run faster by +16% with r1402

 

Václav Šmilauer said:     (by the date of Thu, 26 Jun 2008 15:05:48 +0200)

> ParallelEngine was just what I cooked up this morning, since I thought
> it was a low-hanging fruit; but I think the summer student will have to
> run bunch of benchmarks to determine where it is worth to parallelize
> and where not (and for what number of bodies and interactions etc).

I'm supervising his job. And I'm already experienced with
boost::thread, which yade uses in some places. So it may be a sad
news for you, but the in-engine parallelization will be done using
boost::threads. We will see how it will affect the problem caused by not
being able to random access the containers.

It will be a bit more coding though, as splitting into parallel
blocks will have to be coded explicitly using boost::threads, whereas
OpenMP does the split implicitly using compilers #pragmas.

The student's first assignment is to write a "hello world"
parallelization example in following way:

- a container with forces {float force;} // write only
- a container with interactions {float force, int id1, int id2;} // RO

- he has to do a parallel loop over all interactions and add force
  to each id1 and id2. Doing it in parallel will involve some mutexes
  to block the access to particular force[id1] so that another thread
  will not attempt to modify it.

That's a simple job for him, just to start the work. Later he will
incorporate that into yade. He is just a 2nd year CS student, and he has
only 2 months to do it. We will see how far it will go.

-- 
Janek Kozicki                                                         |
_______________________________________________
yade-dev mailing list
yade-dev@xxxxxxxxxxxxxxxx
https://lists.berlios.de/mailman/listinfo/yade-dev



Follow ups

References