Release Note v139

RELEASE DATE: May 31, 2012

[FMDB] Repo: http://redmine.scorec.rpi.edu/anonsvn/fmdb/software/trunk/FMDB/FMDB
[SCUtil] Repo: http://redmine.scorec.rpi.edu/anonsvn/fmdb/software/trunk/SCORECUtil/SCORECUtil
[GMI] Repo: http://redmine.scorec.rpi.edu/anonsvn/gmi/trunk

Constraints

Known Bugs/Issues

See Issue Tickets.

Bug Fixes

  • [FMDB] (#392) multi-part partitioning support with P-set
  • [FMDB] (#387) hang during migration after partitionedmesh loading

New API/Features

  • [FMDB.h] (#279) p-set file i/o
  • [FMDB.h] setting/getting #parts per process
    int FMDB_Mesh_SetNumPart (pMeshMdl mesh, int numPart);
    int FMDB_Mesh_GetNumPart (pMeshMdl mesh, int* numPart);
    
  • [FMDB.h] getting neighboring process ranks. A process i neighbors process j if they share mesh entities on part boundary between parts located in process i and process j.
    int FMDB_Mesh_GetNborProcID (pMeshMdl mesh, std::vector<int>& procRank);
    
  • [FMDB.h] (#328) getting neighboring part ids. A part i neighbors part j if they share mesh entities on part boundary.
    int FMDB_Part_GetNumNborPart (pPart part, int type, int* numNbor); 
    int FMDB_Part_GetNborPartID (pPart part, int type, std::vector<int>& partID);
    
  • [FMDB.h] (#332) partitioning parameter (LB_Method, LB_Approach, imbalance tolerance) setting for serial mesh partitioning.
    If not called, the default parameters used in FMDB_Mesh_LoadFromFile are [FMDB_PARMETIS, PartKway, 1.03]
    enum FMDB_LBMethod {FMDB_RCB=0, /*1*/ FMDB_RIB, /*2*/ FMDB_GRAPH, /*3*/ FMDB_HYPERGRAPH, /*4*/ FMDB_PARMETIS};
    enum FMDB_LBApproach {FMDB_PARTITION=0, /*1*/ FMDB_REPARTITION, /*2*/ FMDB_REFINE, /*3*/ PartKway, /*4*/ PartGeom, 
                         /*5*/ PartGeomKWay, /*6*/ AdaptiveRepart, /*7*/ RefineKway};
    
    int FMDB_Mesh_SetPtnParam (pMeshMdl mesh, int LB_Method, int LB_Approach
                               double imbalance_tol, int debug_level);
    
  • [FMDB.h] mesh statistics function (click here for sample)
    - # processes, # parts per process, # total parts
    - partitioning parameters (LB_Method, LB_Approach, imbalance tolerance)
     - per-PROCESS count statistics (statistics based on # per PROCESS)
          . #p-set:  avg, max, min, avg size (#entities in p-set)
         . #partition object (po)-ent: avg, max, min
         . Global imbalance ratio: max/avg #po-ent, avg/min #po-ent
         . # p-set & size, # owned-only or all entity per type on each process
       - per-PART count statistics (statistics based on # per PART)
          . #p-set:  avg, max, min, avg size (#entities in p-set)
         . #partition object (po)-ent: avg, max, min
         . Global imbalance ratio: max/avg #po-ent, avg/min #po-ent
         . Local (Per Process) #p-set: avg, max, min (omitted if #p-set=0)
         . Local (Per Process) #po-ent: avg, max, min
         . Local (Per Process)  imbalance ratio: max/avg #po-ent, avg/min #po-ent
         . #p-set & size, # owned-only or all entity per type on each part
int FMDB_Mesh_DspStat (pMeshMdl mesh);

Modified API/Features

  • [FMDB.h] "parmetis_Method" removed from input argument of FMDB_Mesh_GlobPtn
    [OLD] 
    enum FMDB_LBMethod {FMDB_RCB=0, /*1*/ FMDB_RIB, /*2*/ FMDB_GRAPH, /*3*/ FMDB_HYPERGRAPH, /*4*/ FMDB_PARMETIS};
    enum FMDB_LBApproach {FMDB_PARTITION=0, /*1*/ FMDB_REPARTITION, /*2*/ FMDB_REFINE}
    enum FMDB_ParmetisMethod {PartKway=1, /*2*/ PartGeom, /*3*/ PartGeomKWay, /*4*/ AdaptiveRepart, /*5*/ RefineKway};
    
    int FMDB_Mesh_GlobPtn(pMeshMdl mesh, pmMigrationCallbacks& migrCB, int LB_Method, int LB_Approach,
                          int ParmetisMethod, double imbalance_tol, int debug_level);
    
    [NEW]
    enum FMDB_LBMethod {FMDB_RCB=0, /*1*/ FMDB_RIB, /*2*/ FMDB_GRAPH, /*3*/ FMDB_HYPERGRAPH, /*4*/ FMDB_PARMETIS};
    enum FMDB_LBApproach {FMDB_PARTITION=0, /*1*/ FMDB_REPARTITION, /*2*/ FMDB_REFINE, /*3*/ PartKway, /*4*/ PartGeom, /*5*/ PartGeomKWay, /*6*/ AdaptiveRepart, /*7*/ RefineKway};
    
    int FMDB_Mesh_GlobPtn(pMeshMdl mesh, pmMigrationCallbacks& migrCB, int LB_Method, int LB_Approach,
                          int parmetisMethod, double imbalance_tol, int debug_level);
    

Removed Fuctions/Files

  int FMDB_Mesh_SetMaxNumPart (pMeshMdl mesh, int numPart);
  int FMDB_Mesh_GetMaxNumPart (pMeshMdl mesh, int* maxNumPart);

Build Change/Note

- NONE

Old vs. New API Table

Sample Programs

Prev Release
Next Release

Back to Top...