pampa parallel mesh partitioning and adaptation
play

PaMPA : Parallel Mesh Partitioning and Adaptation C edric Lachat - PowerPoint PPT Presentation

PaMPA : Parallel Mesh Partitioning and Adaptation C edric Lachat & Franc ois Pellegrini June 14, 2012 Introduction Contents Introduction Common needs of solvers regarding meshes Data structures Version 0.1 Example: Laplacian


  1. PaMPA : Parallel Mesh Partitioning and Adaptation C´ edric Lachat & Franc ¸ois Pellegrini June 14, 2012

  2. Introduction Contents Introduction Common needs of solvers regarding meshes Data structures Version 0.1 Example: Laplacian equation using finite element method Some results Upcoming features C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 2

  3. Introduction Middleware ◮ PaMPA: Parallel Mesh Partitioning and Adaptation ◮ Middleware library managing the parallel repartitioning and remeshing of unstructured meshes modeled as interconnected valuated entities ◮ The user can focus on his/her “core business”: ◮ Solver ◮ Sequential remesher ◮ Coupling with MMG3D provided for tetrahedra Physics, solver Remeshing and redistribution Seq. Qual. Measurement PaMPA Sequential PT-Scotch remesher MMG3D C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 3

  4. Common needs of solvers regarding meshes Contents Introduction Common needs of solvers regarding meshes Data structures Version 0.1 Example: Laplacian equation using finite element method Some results Upcoming features C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 4

  5. Common needs of solvers regarding meshes Common needs of solvers regarding meshes: ◮ Handling of mesh structures ◮ Distribution of meshes across the processors of a parallel architecture ◮ Handling of load balance ◮ Data exchange across neighboring entities ◮ Iteration on mesh entities ◮ Entities of any kind: e.g. elements, faces, edges, nodes, . . . ◮ Entity sub-classes: e.g. regular or boundary faces, . . . ◮ Inner or frontier entities with respect to neighboring processors ◮ Maximization of cache effects thanks to proper data reordering ◮ Dynamic modification of mesh structure ◮ Dynamic redistribution ◮ Adaptive remeshing C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 5

  6. Data structures Contents Introduction Common needs of solvers regarding meshes Data structures Version 0.1 Example: Laplacian equation using finite element method Some results Upcoming features C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 6

  7. Data structures Constraints ◮ Distributed data ◮ Mesh data should not be replicated for the sake of scalability ◮ Minimization of data exchanges ◮ Abstraction from actual data structure implementations C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 7

  8. Data structures Definitions Top-level mesh entity ◮ Element May bear some data (volume, ◮ Node pressure, etc.) ◮ Edge ◮ Internal ◮ Boundary ◮ Vertex ◮ Relation ◮ Entity ◮ Sub-entity ◮ Enriched graph C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 8

  9. Data structures Definitions ◮ Element May bear some data (geometry, etc.) ◮ Node ◮ Edge ◮ Internal ◮ Boundary ◮ Vertex ◮ Relation ◮ Entity ◮ Sub-entity ◮ Enriched graph C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 8

  10. Data structures Definitions ◮ Element May bear some data (flux, etc.) ◮ Node ◮ Edge ◮ Internal ◮ Boundary ◮ Vertex ◮ Relation ◮ Entity ◮ Sub-entity ◮ Enriched graph C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 8

  11. Data structures Definitions ◮ Element Regular mesh edge ◮ Node ◮ Edge ◮ Internal ◮ Boundary ◮ Vertex ◮ Relation ◮ Entity ◮ Sub-entity ◮ Enriched graph C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 8

  12. Data structures Definitions ◮ Element Boundary mesh edge ◮ Node ◮ Edge ◮ Internal ◮ Boundary ◮ Vertex ◮ Relation ◮ Entity ◮ Sub-entity ◮ Enriched graph C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 8

  13. Data structures Definitions ◮ Element What all entities are in fact. . . ◮ Node ◮ Edge ◮ Internal ◮ Boundary ◮ Vertex ◮ Relation ◮ Entity ◮ Sub-entity ◮ Enriched graph C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 8

  14. Data structures Definitions ◮ Element Subset of edges between vertices belonging to prescribed entity types ◮ Node ◮ Edge ◮ Internal ◮ Boundary ◮ Vertex ◮ Relation ◮ Entity ◮ Sub-entity ◮ Enriched graph C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 8

  15. Data structures Definitions ◮ Element Subset of vertices bearing the same data ◮ Node ◮ Edge ◮ Internal ◮ Boundary ◮ Vertex ◮ Relation ◮ Entity ◮ Sub-entity ◮ Enriched graph C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 8

  16. Data structures Definitions ◮ Element Subset of entity vertices that may bear specific data ◮ Node ◮ Edge ◮ Internal ◮ Boundary ◮ Vertex ◮ Relation ◮ Entity ◮ Sub-entity ◮ Enriched graph C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 8

  17. Data structures Definitions Whole set of vertices and relations ◮ Element Every vertex belongs to one and only ◮ Node one entity (and sub-entity) ◮ Edge ◮ Internal ◮ Boundary ◮ Vertex ◮ Relation ◮ Entity ◮ Sub-entity ◮ Enriched graph C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 8

  18. Data structures Global vue 1 4 baseval 1 8 3 enttglbnbr 3 6 7 3 4 3 proccnttab 5 2 9 1 4 8 11 procvrttab 10 C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 9

  19. Data structures Local vision of process 0 vertlocnbr 3 6 vertgstnbr 1 3 edgelocnbr 7 3 3 1 ventloctab 1 2 vendloctab vertloctab 1 2 3 8 4 2 edgeloctab 1 1 1 2 3 4 2 C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 10

  20. Data structures Local vision of process 1 vertlocnbr 4 1 vertgstnbr 7 edgelocnbr 13 3 3 3 1 2 2 1 ventloctab 1 vendloctab 2 vertloctab 1 3 6 12 14 3 edgeloctab 2 1 2 1 3 2 1 2 1 3 3 1 3 C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 11

  21. Data structures Per-entity data (1/2) E.g. entity 1 on processor 0: 1 3 vertlocnbr 1 1 2 2 vertgstnbr 4 2 C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 12

  22. Data structures Per-entity data (2/2) E.g. node neighbors of element 1 on process 0: vertloctab 4 1 3 1 2 1 1 2 1 2 3 4 edgeloctab 4 2 vendloctab 8 C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 13

  23. Data structures Data linking 1 4 8 3 6 7 5 2 9 10 C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 14

  24. Version 0.1 Contents Introduction Common needs of solvers regarding meshes Data structures Version 0.1 Example: Laplacian equation using finite element method Some results Upcoming features C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 15

  25. Version 0.1 Entities ◮ Based (for C and Fortran interfaces) ◮ Simple ◮ Stable with respect to sub-entities C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 16

  26. Version 0.1 Partitioning ◮ Performed with respect to top-level entity C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 17

  27. Version 0.1 Overlap ◮ Of size 1 at the time being ◮ Extensible to any distance n ◮ Requires top-level relations C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 18

  28. Version 0.1 Local vue of process 0 ◮ Overlap of size 1 ◮ Halo of size 1 C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 19

  29. Version 0.1 Local vue of process 1 ◮ Overlap of size 1 ◮ Halo of size 1 C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 20

  30. Version 0.1 Iterators ◮ Entities - sub-entities ◮ Decrease of cache misses ◮ Debugging tools PAMPA dmeshItInitStart ( mesh , ventlocnum , PAMPA VERT ANY, &i t v e r t ) ; PAMPA dmeshItInit ( mesh , ventlocnum , nentlocnum , &i t n g h b ) ; ( PAMPA itHasMore(& i t v e r t )) { while vertlocnum = PAMPA itCurEnttvertlocnum(& i t v e r t ) ; p r i n t f ( ” vertlocnum : %d \ n” , vertlocnum ) ; PAMPA itStart(& it nghb , vertlocnum ) ; while ( PAMPA itHasMore(& i t n g h b )) { PAMPA Num sngblocnum , engblocnum , mngblocnum , nsublocnum ; engblocnum = PAMPA itCurEnttvertlocnum(& i t n g h b ) ; mngblocnum = PAMPA itCurMeshvertlocnum(& i t n g h b ) ; sngblocnum = PAMPA itCurSubEnttvertlocnum(& i t n g h b ) ; nsublocnum = PAMPA itCurnsublocnum(& i t n g h b ) ; p r i n t f ( ”[%d ] ngb of %d with e n t i t y %d : %d ( sub : %d ) %d ( ent : %d ) %d ( glb ) \ n” , rank , vertlocnum , ventlocnum , sngblocnum , nsublocnum , engblocnum , nentlocnum , mngblocnum ) ; PAMPA itNext(& i t n g h b ) ; } } C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 21

  31. Example: Laplacian equation using finite element method Contents Introduction Common needs of solvers regarding meshes Data structures Version 0.1 Example: Laplacian equation using finite element method Some results Upcoming features C´ edric Lachat & Franc ¸ois Pellegrini - PaMPA June 14, 2012- 22

Recommend


More recommend