- Sarje, Abhinav;
- Song, Sukhyun;
- Jacobsen, Douglas;
- Huck, Kevin;
- Hollingsworth, Jeffrey;
- Malony, Allen;
- Williams, Samuel;
- Oliker, Leonid
- Editor(s): Koziel, Slawomir;
- Leifsson, Leifur Þ;
- Lees, Michael;
- Krzhizhanovskaya, Valeria V;
- Dongarra, Jack J;
- Sloot, Peter MA
This paper addresses two key parallelization challenges the unstructured mesh-based ocean modeling code, MPAS-Ocean, which uses a mesh based on Voronoi tessellations: (1) load imbalance across processes, and (2) unstructured data access patterns, that inhibit intra- and inter-node performance. Our work analyzes the load imbalance due to naive partitioning of the mesh, and develops methods to generate mesh partitioning with better load balance and reduced communication. Furthermore, we present methods that minimize both inter- and intranode data movement and maximize data reuse. Our techniques include predictive ordering of data elements for higher cache efficiency, as well as communication reduction approaches. We present detailed performance data when running on thousands of cores using the Cray XC30 supercomputer and show that our optimization strategies can exceed the original performance by over 2×. Additionally, many of these solutions can be broadly applied to a wide variety of unstructured grid-based computations.