[yt-users] IsBound and mpi4py

Michael Kuhlen mqk at astro.berkeley.edu
Wed Sep 28 09:54:12 PDT 2011


I have little to no experience with clump finding, but for the IsBound part
perhaps you could make use of symmetry? No idea how spherical (or
ellipsoidal) your clumps are, but you might consider first obtaining a
radial density profile (perhaps with ellipsoidal radius?) and then using
that to calculate the gravitational potential as a function of radius, which
you'd add to the specific kinetic energy of a given grid cell to determine
if it's bound. YMMV.

Mike
On Sep 28, 2011 9:14 AM, "Matthew Turk" <matthewturk at gmail.com> wrote:
> On Wed, Sep 28, 2011 at 12:03 PM, Stephen Skory <s at skory.us> wrote:
>> Hi Eve,
>>
>>> But is the derived quantity "IsBound" also not parallel in general? The
code
>>> I'm using does not use clump object at all; all it's doing is picking
out a
>>> sphere object centred around some point in the box
>>
>> "IsBound" is precisely the expensive operation I mentioned in my last
>> email that is not parallel. That calls the functionality that
>> calculates the gravitational attraction between all cells in the
>> object and tells you if the object is bound or not. When someone is
>> sufficiently motivated, there are parallel treecodes that could be
>> included in yt, but that would be a significant project, and is not
>> likely to happen any time soon. Unless you want to volunteer! :)
>>
>>> I thought the reason why clump finding does not work in parallel was
because
>>> parallel contour algorithm was not yet implemented, which, if I
understand
>>> correctly, is separate from "IsBound".
>>
>> Yes, that is another reason why clump finding is not truly parallel.
>
> To echo what Stephen says, parallelizing clump finding is actually
> easier than parallelizing the IsBound operation. There is some extant
> code currently in testing to work with parallel clump finding, but I
> do not have an estimate of when it could be included; likely not for
> several months.
>
>>
>> The only way clump finding is parallelized now is over individual
>> clumps. That is, given a bunch of different objects, each object can
>> be processed by a single core, and therefore many are done at the same
>> time, but all the heavy lifting (IsBound) is done in serial.
>
> One can implement this with mpi4py, if you have saved clumps. You
> will have to run yt in serial mode, but something like this could
> work:
>
> from yt.mods import *
> from mpi4py import MPI
> rank = MPI.COMM_WORLD.rank
> size = MPI.COMM_WORLD.size
>
> all_my_clumps = get_my_list_of_clumps(somehow)
>
> for clump in all_my_clumps[rank::size]:
> binding_energy = clump.quantities["IsBound"]()
>
> We're hoping to add helper functions to make this kind of thing easier
> in the future.
>
> -Matt
>
>>
>> --
>> Stephen Skory
>> s at skory.us
>> http://stephenskory.com/
>> 510.621.3687 (google voice)
>> _______________________________________________
>> yt-users mailing list
>> yt-users at lists.spacepope.org
>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>
> _______________________________________________
> yt-users mailing list
> yt-users at lists.spacepope.org
> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20110928/9a52ca45/attachment.htm>


More information about the yt-users mailing list