Background: Gmsh is an open-source mesh generator for scientific computing, computer-aided engineering and design. Advanced meshing algorithms and multi-threading capabilities allow users to create meshes for intricate geometries, generating billions of elements. Although such meshes are eligible for exascale scientific computing, they often suffer from poor data locality, which limits the performance of subsequent mesh processing stages.
Objective: This project will explore techniques, such as node and element reordering, to improve data locality of meshes created with Gmsh. These improvements will be integrated into the mesh generator and contributed upstream to the Gmsh code base, providing easy access and benefiting all Gmsh users.
Method:
- Literature study on methods that relate node and/or element reorderings within unstructured computational meshes to memory traffic volumes. (The better the data locality, the lower the memory traffic volume.)
- Small-scale experiments of node/element reordering methods using existing mesh files (that were produced by the current Gmsh framework). The purpose is to verify the impact of reordering on the numerical simulation speed.
- Implement proper node/element reordering procedures inside the Gmsh framework. (So the new mesh files from the improved Gmsh can be used directly for high-performance scientific computing.)
- The impact of improved data locality will be quantitatively assessed on various mesh processing workloads, such as finite element methods.
- Demonstrate the improved meshing quality of Gmsh using real-life simulators.
Needed background of the student:
- Basic knowledge about C programming;
- Interest in performance optimisation;
- Courage of learning new knowledge in the intersection of high-performance computing and numerical methods.
References:
- Gmsh: A three-dimensional finite element mesh generator with built-in pre- and post-processing facilities.
- C. Geuzaine and J.-F. Remacle. Gmsh: a three-dimensional finite element mesh generator with built-in pre- and post-processing facilities. International Journal for Numerical Methods in Engineering 79(11), pp. 1309-1331, 2009.
- Marot C, Pellerin J, Remacle J-F. One machine, one minute, three billion tetrahedra. Int J Numer Methods Eng. 2019; 117: 967–990. https://doi.org/10.1002/nme.5987