MakeCloud() single-threaded?

Asked by Gary Pekmezi on 2015-12-16

I noticed that when I run a triaxial test (either with a preprocessor or a script), TriaxialStressController() and TriaxialCompressionEngine() make use of all the cores specified via the -jN command. However, MakeCloud() is using a single core. Is this inherent to the algorithm?

Thanks,
Gary

Question information

Language:
English Edit question
Status:
Answered
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
2015-12-17
Last reply:
2015-12-18
Christian Jakob (jakob-ifgt) said : #1

Hi,

makeCloud() is used for particle generation and has no influence on DEM calculation cycle.
It is not parallelized atm [1].

Christian

[1] https://github.com/yade/trunk/blob/2fd300ded158f3fe938ab6b7688aaff9b9ad35a6/pkg/dem/SpherePack.cpp#L86

Gary Pekmezi (gpekmezi) said : #2

Thanks for your reply Christian. That is what I suspected.
One more question along the same vein....Can makeCloud be used in ParallelEngine(). I can maybe subdivide the domain in a semi-rational way if that is the case.

Sent from Gary's iPhone

> On Dec 17, 2015, at 2:13 AM, Christian Jakob <email address hidden> wrote:
>
> Your question #279359 on Yade changed:
> https://answers.launchpad.net/yade/+question/279359
>
> Status: Open => Answered
>
> Christian Jakob proposed the following answer:
> Hi,
>
> makeCloud() is used for particle generation and has no influence on DEM calculation cycle.
> It is not parallelized atm [1].
>
> Christian
>
> [1]
> https://github.com/yade/trunk/blob/2fd300ded158f3fe938ab6b7688aaff9b9ad35a6/pkg/dem/SpherePack.cpp#L86
>
> --
> If this answers your question, please go to the following page to let us
> know that it is solved:
> https://answers.launchpad.net/yade/+question/279359/+confirm?answer_id=0
>
> If you still need help, you can reply to this email or go to the
> following page to enter your feedback:
> https://answers.launchpad.net/yade/+question/279359
>
> You received this question notification because you asked the question.

makeCloud() is a function, not an engine, therefore it can't be used in ParallelEngine.
More generally, parallelizing an algorithm needs low level implementation (domain decomposition especially), so you don't usually get things parallelized magically by playing with high level commands.

This being said, you can of course run many makeCloud()s in parallel. There are python libs for that. But designing the domain decomposition and the subtasks and assigning them to different cores is entirely on your shoulders, Yade will not help.

Bruno

Can you help with this problem?

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

To post a message you must log in.