[yt-users] sub-region projections in parallel

Britton Smith brittonsmith at gmail.com
Tue Feb 3 11:21:19 PST 2009


We solve this problem in the light cone generator by using the field_cuts
keyword argument to add projection.  For example, you can project only the
gas with overdensity less than 200, by throwing:
field_cuts = ['grid["Overdensity"] < 200']
along with your add_projection call.
You can use the coordinate fields to make positional cuts that are
equivalent to making a subregion of the box and using it as a source for the
projection.
For example:
axis = 'x'
leftSide = 0.25
rightSide = 0.75
cutout = '((grid[\"%s\"] + 0.5*grid[\"d%s\"] >= %f) & (grid[\"%s\"] -
0.5*grid[\"d%s\"] <= %f))' % (axis,axis,leftSide,axis,axis,rightSide)
field_cuts = [cutout]
pc.add_projection("Density",0,field_cuts=field_cuts)

This would limit the projection in the x direction to only project 0.25 to
0.75.  You can add others for the y and z direction.
Since you're technically still projecting the whole box, this can be
parallelized, and I have done it.  Of course, if you use too many processors
for projecting a small region, you may get some processors completely
outside the region you want to project.  If the region is of considerable
size, this should still work quite well.  If the regions you want to project
are very small, you are better off doing it the other way with source
regions in serial.  In that case, the region would be so small that it would
still go quite fast in serial.

Britton

On Tue, Feb 3, 2009 at 12:08 PM, Matthew Turk <matthewturk at gmail.com> wrote:

> Hi Stephen,
>
> Right now, parallel projections are only of the entire domain.  The
> reason behind this is that the current means of doing domain
> decomposition are based on Regions, but Regions cannot themselves be
> subdivided.  When I wrote the parallel projections the idea was that
> sub-regions of projection would never be too prohibitive for
> projecting on a single processor.  I guess this was myopic?
>
> As Eric said in his reply, I think Britton's field_cuts might help you
> out here.  The way that came to my mind was that of an extracted
> hierarchy, which I'm working on (wherein an entire hierarchy object is
> constructed from some subset of an existing hierarchy) but which
> probably won't be ready for a couple weeks.
>
> Britton?  Any ideas?
>
> -Matt
>
> On Tue, Feb 3, 2009 at 10:51 AM, Stephen Skory <stephenskory at yahoo.com>
> wrote:
> > Hi all,
> >
> > I'd like to make some parallel projections for a sub-region. What is the
> appropriate way to do that? I've tried something like this, below, but it
> makes a projection for the whole box, not the sub-region. I've tried a few
> other ways, something like this <http://paste.enzotools.org/show/38/>, but
> it works in only serial but not in parallel, where it crashes, like this <
> http://paste.enzotools.org/show/39/> (that's abbreviated output).
> >
> > i = 1
> > pc = PlotCollection(pf.h.region([0.5]*3,[i*.1,0.,0.],[i*.1 +
> .1,1.,1.]),center=[0.5]*3)
> > pc.add_projection("Density", 0)
> > pc.save("slice-0.%d" % i)
> >
> > Thanks!
> >
> > _______________________________________________________
> > sskory at physics.ucsd.edu           o__  Stephen Skory
> > http://physics.ucsd.edu/~sskory/ <http://physics.ucsd.edu/%7Esskory/>_.>/ _Graduate Student
> > ________________________________(_)_\(_)_______________
> > _______________________________________________
> > 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/20090203/51b8af77/attachment.htm>


More information about the yt-users mailing list