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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend