Blocking Versus Non-Blocking Halo Exchange
Abstract
This report describes the design, implementation and analysis of a non-blocking halo exchange routine as an alternative to the blocking halo exchange routine in the lattice Boltzmann code Ludwig. The alternative, non-blocking, routine is implemented in such a way to allow work-communication overlap. Detailed benchmarks in this report show that the non-blocking version is a good alternative even without any work-communication overlap. Work-Communication overlap can be used to improve the performance of the non-blocking routine. Development and benchmarking were conducted on the UK national supercomputer, ARCHER.
Turn this paper into a lesson
ArcXiv compiles a structured reading guide from this paper's metadata: plain-English importance, contributions, prerequisite concepts, which sections to read first, flashcards, and a quiz. Grounded in the abstract, never invented.