Mitigating synchronization bottlenecks in high-performance actor-model-based software - Klenk, Kyle; Moayeri, Mohammad Mahdi; Guo, Junwei; Clark, Martyn P.; Spiteri, Raymond J. (SC24-W: Workshops of the International Conference for High Performance Computing, Networking, Storage and Analysis, 2024)
Bulk synchronous programming (in distributed-memory systems) and the fork-join pattern (in shared-memory systems) are often used for problems where independent processes must periodically synchronize. Frequent synchronization can greatly undermine the performance of software designed to solve such problems. We use the actor model of concurrent computing to balance the load of hundreds of thousands of short-lived tasks and mitigate synchronization bottlenecks by buffering communication via actor batching. The actor model is becoming increasingly popular in scientific and high-performance computing because it can handle heterogeneous tasks and computing environments with enhanced programming flexibility and ease relative to conventional paradigms like MPI. For a hydrologic simulation of continental North America with over 500,000 elements, the proposed buffering approach is approximately 4 times faster than no buffering, outperforms MPI on single and multiple nodes, and remains competitive with OpenMP on a single node and MPI+OpenMP on multiple nodes.