yade-mpi team mailing list archive
-
yade-mpi team
-
Mailing list archive
-
Message #00016
Re: Yade-MPI sending/receiving serialized bodies
-
To:
Deepak Kn <deepak.kn1990@xxxxxxxxx>
-
From:
Janek Kozicki <janek_listy@xxxxx>
-
Date:
Sun, 28 Apr 2019 23:02:40 +0200
-
Cc:
yade-mpi@xxxxxxxxxxxxxxxxxxx
-
Face:
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAALVBMVEUBAQEtLS1KSkpRUVFXV1dYWFhjY2Nzc3N3d3eHh4eKioqdnZ24uLjLy8vc3NxVIagyAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH2AIVEzgS1fgQtQAAAjRJREFUOMtt1DFv00AUAOAzFQNbjigSyoQaRaBMhKgLUyKXpVNNeUpk9vyDqFJhQ1kiBuaqAwJCqvPtSLY7RlTn5+5IdnYkkt/AOyfxXVLe5vf53Z1875kd34tOEax8djmj6GyjhB5bxz50GdsVZr9fqRjZwAtKOJw5Wqs2MMZ16ALHsaDncF7xAHix1oEFHAB8f+pRjcO4gfZDykcYzbiucRolOLUJ6kjA0xtVt+A6TySlM0RajIpK6DzwKZ/nOYbF/gclHMo1ZOHYY/+Ha+AWuM+3oMS4eeqYzZ8FiCltgUqI8cd2wwAVpJk+8LWYjBtnJdQpHQqJMd4Oxt4bU9ESiFGc5hkqaH74asAX4iabP5I5gZ+qjgGlJCqZa3h3lxhoeVcSE1qLQC4sqKOK9MGW9E3izFqqHokoztLFEgXg31sbZEKnWi2T74A4NxfVQqlkjKtcAWD+zcArFEES01dR0E/nnV0IgugmDd/2L84sOAouRBBHEc7gtc8teDkRlE0iNQPo2w3Xhh/D4TCIQ4LRLoTvgwjj6RRgavdurxYGMaIuGOyAW/PpNlCcU9/93AHenAWYjPoAwa+G3e3to/MgFNTAEKvKDjzuCzHTnY3qqdXtx24VijzQfZ0yewZ5cwRFQaa+mIYr1uI0I76+3W4xhlvoVRwOA0Fdl64HlJnxP6T8YpX/Lga4Wv4A3ErrU5oTfN7Mu/llXMl8RXEPji/lQkN3H7qXqgC2By47EXeU/7PJ/wPxRKMnuZwIeAAAAABJRU5ErkJggg==
-
In-reply-to:
<20190428210545.0ceaae8c@absurd.dom>
OK, think that adding specific flag mpiRequired is better
https://gitlab.com/yade-dev/trunk/blob/master/lib/serialization/Serializable.hpp#L31
Janek Kozicki said: (by the date of Sun, 28 Apr 2019 21:05:45 +0200)
> You could add a new flag ``mpiRequired`` to attribute flags [1] and
> by default assume that the attribute does not need to be send by mpi.
>
> Or maybe this flag is simply ``noSave`` and ``readonly`` and
> ``hidden`` flags together? This can be possible. Why send over mpi
> something that does not need to be saved? Why send something
> readonly? Why send something hidden from GUI inspect?
>
>
> [1] https://gitlab.com/yade-dev/trunk/blob/master/lib/serialization/Serializable.hpp#L31
>
> Janek
>
>
>
> Deepak Kn said: (by the date of Sun, 28 Apr 2019 19:57:54 +0200)
>
> > Hello All,
> >
> > I have finished implementing the functions to serialize and deserialize the
> > bodies and the necessary communications to exchange the serialized bodies.
> > The serialized messages (binary) are several times larger than the usual
> > (state) messages in mpy/mpf.py (vel,pos, ori, id, bounds) etc. And as a
> > result the simulations are far slower ! Here's how it scales : for
> > exchanging 220 bodies, the serialized messages were around 215456 elements
> > (chars), and in the previous versions, the message sizes were 4180
> > (doubles). (testMPI2D no merge, on 3 procs, 20000 bodies.)
> >
> > Most of the functions are implemented in Subdomain.cpp Subdomain.hpp and
> > MPIBodyContainer.hpp, (branch : mpi_dpk on gitlab) I followed the same
> > logic of the previous version (mpy/mpf), non blocking sends and blocking
> > recvs (with probes) are used for the communications between the workers,
> > and blocking communication for sending the forces to the master (the same
> > as in mpy/mpf).
> >
> > I think this can be improved, we can serialize the states,bounds and send
> > these instead of the bodies? what do you think? (all the functions do
> > serialize, deserialize and communicate are ready. We just need a container
> > to hold only the required info.)
>
> --
> Mailing list: https://launchpad.net/~yade-mpi
> Post to : yade-mpi@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-mpi
> More help : https://help.launchpad.net/ListHelp
--
Janek Kozicki http://janek.kozicki.pl/ |
References