[mpas-developers] Block Decomposition Revision

Michael Duda duda at ucar.edu
Thu Jan 26 11:01:32 MST 2012


Hi, Doug.

Thanks very much for the document. I'm still thinking through the design
section, but I have a couple of quick comments on the requirements.
First, I think we need to be careful about including implementation
details in the requirements themselves. For example, the requirement

   "Domain decomposition information needs to be read from a file based on 
    number of total blocks as opposed to number of MPI tasks."

says quite a bit about how this should be implemented ("needs to be read
from a file"). Secondly, even though the initial design may take the
simplest approach to assigning multiple blocks to a task, I think it
will be good to ensure that the requirements describe our long-term
requirements for the module.

Two of the requirements could be something along the lines of:

1) the user must be able to specify the number of blocks to be owned by
   each task; and

2) the block_decomp module must return information describing the cells
   contained in the specified number of blocks for the task.

As for additional requirements, we could consider whether it is the case
that we ultimately want to be able to specify a different number of
blocks for each MPI task, and if we want to be able to place additional
constraints on which blocks are assigned to a task (much harder, I
think; e.g., preference should be given for contiguously located blocks
to maximize shared-memory copies, or for blocks that are spread as
evenly around the global domain as possible to help with load balancing).

I apologize for taking so long to have a look through the document; I'll
send along any other comments that might come up as soon as I can.

Regards,
Michael


On Tue, Jan 24, 2012 at 01:26:53PM -0700, Doug Jacobsen wrote:
> Hi All,
> 
> Continuing with the work that Michale previously proposed before the
> derived data type revision, I am starting work on revisions to the block
> decomposition module to support multiple blocks per mpi process. As a
> refresher, this item was previously described as
> 
> 4) Modify the block_decomp module to enable a task to get a list of
>     cells in more than one block that it is to be the owner of.
>     Implemented in the simplest way, there could simply be a namelist
>     option to specify how many blocks each task should own, and the
>     block_decomp module could look for a graph.info.part.n file, with
>     n=num_blocks_per_task*num_tasks, and assign blocks k, 2k, 3k, ...,
>     num_blocks_per_task*k to task k.
> 
> I have attached a design document (pdf and latex) related to this task.
> Please let me know if you have any comments or suggestions. I would like to
> have this implemented by the end of the week. Thanks for any feedback.
> 
> Doug



> _______________________________________________
> mpas-developers mailing list
> mpas-developers at mailman.ucar.edu
> http://mailman.ucar.edu/mailman/listinfo/mpas-developers



More information about the mpas-developers mailing list