[yt-users] domain-decomposition for volume rendering huge brick?
Stuart Levy
salevy at illinois.edu
Fri Nov 7 10:54:33 PST 2014
Thank you, Sam! I think this makes sense. Except, in case (1), do I
need to do something to bring the AMRKDTree into the picture? Or are you
telling me that it is automatically constructed whenever you
load_uniform_grid(), or volume-render it?
I think the available nodes have 64GB, so to load the whole ~600GB might
take at least 32 nodes or 1024 cores.
Will let you know how it goes!
On 11/7/14 11:08 AM, Sam Skillman wrote:
> Ack, my calculation of 256-512 cores is probably low... feel free to
> push up much higher.
>
> On Fri Nov 07 2014 at 9:03:51 AM Sam Skillman <samskillman at gmail.com
> <mailto:samskillman at gmail.com>> wrote:
>
> Hi Stuart,
>
> On Thu Nov 06 2014 at 8:36:28 AM Stuart Levy <salevy at illinois.edu
> <mailto:salevy at illinois.edu>> wrote:
>
> Hello all,
>
> We're hoping to use yt parallel volume rendering on a very
> large generic
> brick - it's a simple rectangular unigrid slab, but containing
> something
> like 1.5e11 points, so much too large for load_uniform_grid()
> to load
> into memory in a single machine.
>
>
> Are you loading directly using something like numpy.fromfile? If
> so, I think the easiest method would be to replace that with a
> np.memmap
> (http://docs.scipy.org/doc/numpy/reference/generated/numpy.memmap.html).
> Once that is loaded, you should be able to use load_uniform_grid.
>
> At that point, there are two possible routes that both may or may
> not work well.
>
> 1) Just try rendering with ~256-512 cores, and the AMRKDTree
> should try to geometrically split the grid before performing and I/O.
> or
> 2) Use load_uniform_grid with the keyword nprocs=N ( for this size
> simulation, you probably need something like 256-1024 processors
> depending on the memory per core). This should do the equivalent
> thing to (1), but it may hit the I/O here instead of in the kd-tree.
>
> I *think* (1) should be your best option, but I haven't tried
> rendering this large of a single-grid output.
>
> When you build the camera option, definitely start out using the
> keyword "no_ghost=True", as this will extrapolate rather than
> interpolate from boundary grids to the vertices. The rendering
> quality won't be quite as good but for unigrid simulations there
> isn't a tremendous difference.
>
> Let us know how that goes! I'd be very excited to see images from
> such a large sim...
>
> Sam
>
>
> I imagine it wouldn't be hard to do the domain decomposition
> by hand,
> loading a different chunk of grid into each MPI process. But
> then
> what? What would it take to invoke the volume renderer on
> each piece
> and composite them together? Would it help if the chunks
> were stored
> in a KDTree? Is there some example (one of the existing data
> loaders?)
> which I could follow?
> _______________________________________________
> yt-users mailing list
> yt-users at lists.spacepope.org <mailto: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/20141107/af2caa91/attachment.html>
More information about the yt-users
mailing list