[mpas-developers] Multiple Blocks Design Document

Doug Jacobsen jacobsen.douglas at gmail.com
Thu May 3 11:11:40 MDT 2012


Hi Phil,

I think the reason the document is a bit jumbled right now is just because
the changes touch a lot of modules.

I'll respond to your comments below.

Thanks for your comments,
Doug

 First, do we have a layout of the architecture (esp. At these lower
> levels)?  That might help to see whether we need to think about
> reorganizing some stuff in the framework.  And help to see the dependencies
> and how we might limit the dependencies and hide more of the detail.  A
> nice figure showing  the modules, the dependencies, etc. would be great
> (doesn’t have to be UML – just a quick sketch).
>

I can try to put together an image of the modules, but it might be a bit
incomplete. I'll send it out if I can get anywhere with it.


> Second, it might help to see how the main data structures are going to
> change by showing, say, the field and block structures.
>

Second, I don't really plan to change any of the data structures. The
changes that I refer to in the document only relate to what data structures
are used in the creation of blocks. Currently when blocks are created a lot
of simple 1d arrays are used to determine the cell/vertex/edge id's owned
by a block, but I can't foresee this being able to be used with multiple
blocks. Mainly because of halos and exchange lists.



> Third, some pseudo code showing where the block loops will sit and how the
> info is passed might help to see whether support for arrays can still
> happen.
>

Keep in mind, none of the changes should effect anything at the core level.
All of the changes that are referred to in this document only relate to
framework which is used prior to running a core. With the exception of halo
updates, but the interface for halo updates won't change.

Finally, some interfaces for functions like halo updates and/or reductions
> would be useful to see how we can minimize what’s exposed at higher levels.
>

I can add some of these to the document and send it out again, but there
was a project that Conrad worked on earlier where he modified the halo
updates to work on the field data type, rather than arrays. However
reductions are still going to be done on arrays rather than fields.

The changes that I refer to regarding the allToAll communication routines
are essentially the analog of the previously done halo conversion but for
the allToAll routines. We need to modify them to work on fields rather than
arrays, which essentially comes back to the exchange lists. You can't
specify exchange lists for multiple blocks on a processor without using the
field data type.


>
> Right now, I guess I still have a muddied picture on how this looks in
> MPAS.
>

I'll try to get that picture that might help some.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/mpas-developers/attachments/20120503/45ffba58/attachment-0001.html 


More information about the mpas-developers mailing list