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 combined node-element reordering, to improve data locality of meshes created with Gmsh. These improvements will be implemented first as post-processing steps that can be applied to Gmsh-generated meshes. The possibility of incorporating these into Gmsh will also be investigated, and if realistic will be implemented.
Research steps:
- 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.)
- Performance profiling of representative large-scale mesh-generation workloads in Gmsh. Expected processing time will be estimated and compared against the measured time usage of Gmsh. Investigation of significant discrepancies to identify major performance bottlenecks, for which proof-of-concept implementations will be investigated with relevant experiments.
- Small-scale experiments of combined node-element reordering schemes using existing mesh files. (The current Gmsh framework internally only supports a few node reordering schemes, but no combined node-element reordering.) The purpose is to examine the impact of combined node-element reordering (which aims to improve data locality) on the numerical simulation speed using Gmsh-generated meshes.
- Implementation of effective node-element reordering schemes that are identified above, as a post-processing step that can be executed after Gmsh completes its mesh generation workflow. The possibility of incorporating combined node-element reordering into Gmsh will be investigated, and if realistic will be implemented.
- The impact of improved data locality due to combined node-element reordering will be quantitatively assessed on large-scale computational workloads on such meshes, which are typically found in finite element methods.
- Demonstrate the improved meshing quality 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