itaps-parallel Revised iMeshP interface

Devine, Karen D kddevin at sandia.gov
Mon Sep 15 14:25:09 CDT 2008


I revised the iMeshP interface and committed it to the svn repository at
RPI:  https://svn.scorec.rpi.edu/svn/TSTT/Interface/iMeshP

Here's what remains to be done.

For the slides due this week:
-  Draft an interface for "pulling" tag data from shared part-boundary
entities to the owners.  For the slides, we'll need a function name and a
description of what it does.  That is, we'll have to decide whether it
performs a numerical operation (e.g., MPI_SUM) or just gathers the received
data into an array on which the application can perform operations.  Would
anyone like to make the first proposal with rough syntax?  If not, I'll
volunteer someone ---  or worse yet for the implementers, I'll draft a
proposal myself.  :)

BTW:  This is an issue we identified earlier and forgot about; this note was
in the draft:
"Tim envisions applications (e.g., FETI methods) updating tag data
in their copies that they would like to accumulate back to the
owner.  Xiaolin said that he writes in his ghosts, but doesn't send
those values back to the owner.  Currently, we have the ability
to send tag data only from owners to ghosts.  Tim will look at this issue
and propose a solution."

For SC08:
-  Need a set of basic common options to iMeshP_load and iMeshP_save to
allow elementary interoperability with VTK files.  At bootcamp, Tim and Ken
volunteered to propose a set of common options.

-  At bootcamp, a question arose about what getNumCopies and getCopies would
return when they were passed a ghost-entity handle.  At bootcamp, we said
these functions would return errors.  But as I read the document today, I
found the following:  "Functions getNumCopies, getCopies, getCopyParts, and
getCopyOnPart have different behavior for ghost and part-boundary copies.
Ghosts will return only itself and its owner in getCopies; part-boundary
entities will return copies on other parts as well."  Which behavior do you
like better?

Here's a summary of what I changed in DraftInterface.h as a result of the
bootcamp:
-  Added iMeshP_load and iMeshP_save.  IMeshP_load will populate both a mesh
instance (with entities, sets, etc.) and a partition handle (with parts and
entities).
-  Changed iMeshP_getNumParts to iMeshP_getNumGlobalParts.
-  Added iMeshP_getNumLocalParts and iMeshP_getLocalParts.
-  Changed iMeshP_exchTags (and similar functions) to iMeshP_pushTags and
clarified documentation on their function.  Removed part ID argument from
the functions, as updating tags in some copies but not all copies is likely
a bad idea.
-  In iMeshP_createGhostEnt, added flag indicating whether non-owned
part-boundary entities should be ghosted according to the ghosting rules.
-  Fixed a few comments, but did not thoroughly review all comments.





More information about the itaps-parallel mailing list