iMeshP Documentation

iMeshP.h -- ITAPS Parallel Mesh Interface

Release 1.0; Updated April 2009

Overview

ITAPS' iMeshP interface provides functions to create, query, and modify a parallel distribution of a mesh. Our primary target for iMeshP is distributed memory applications, but the interface is also compatible with shared memory or global address space applications. In addition, backward compatibility of the serial iMesh interface is supported, with iMesh working as an application would expect within a single process, in shared memory, and in global address space systems.

The iMeshP interface defines a model for partitioning the entities of a mesh among distinct processes. It describes the distribution of and relationships among entities on different processes. In the model, a partition is a high-level description of the distribution of mesh entities. A parallel communication abstraction is used to manage communication among entities and processes in a partition. A partition assigns entities to subsets called parts. The partition maps each part to a process such that each process may have zero, one, or many parts.

Parts are identified globally by unique part IDs and, within a process, by opaque part handles. To simplify the iMeshP interface, we allow part handles to be substituted for entity-set handles in all serial iMesh functions. Thus, operations such as adding entities to parts and querying the number of entities in a part can be achieved using the same interface as adding entities to and querying entity sets. Additional iMeshP functions provide information about part boundaries and neighboring parts.

Each entity is owned by only one part; ownership imbues the right to modify. Entities on part boundaries are shared. One part owns the entities while other part(s) have copies of the entities. Copies of additional, non-boundary entities (called ghost entities) may be requested by an application to enable efficient computation. The iMeshP data model defines rules for the amount of information about copies that an implementation must manage. For example, an entity's owner must store information about all copies of the entity, and a copy must store information about the entity's owner.

Functions to easily create and modify partitions, create ghost entities, retrieve ghost and owner entity tag data, and determine an entity's ownership status are defined in iMeshP. In addition, the iMeshP interface supports parallel operations needed for efficient computation, load balancing and mesh modification. By necessity, these operations involve parallel communication; both synchronous and asynchronous parallel operations are supported. This design enables operations such as updates of tag data in ghost entities during computation, large- or small-scale entity migration for dynamic load balancing or edge swapping, updates of vertex coordinates in non-owned vertices for mesh smoothing, and coordination in the creation of new entities along part boundaries for mesh refinement.

Below, we more carefully define these concepts. We also review iMesh concepts that are relevant to the iMeshP interface.

Abstract Data Model

Parallelism

Interfaces

Using Partitions

Using Parts

Communication


Generated on Tue Apr 7 10:19:28 2009 for iMeshP by  doxygen 1.5.7