Optimizing One-Sided Communication of Parallel Applications Using Critical Path Methods
Christian Herold, Olaf Krzikalla, Andreas Knüpfer · 2017
Parallel programming models for distributed memory systems rely on communication operations. Their behavior is essential for the performance of parallel application codes. Hence, these operations have an impact on the runtime of the parallel application and require an efficient usage in order to minimize their overhead. One-sided communication paradigms offer low communication latencies. However, these paradigms introduce a different usage in comparison to two-sided communication operations by decoupling data transfers and process synchronizations. Optimizing this kind of communication in applications can be a challenge, because of the sensitivity to data races. This paper presents an efficient methodology to highlight communication operations which have a deep impact on the application runtime. Consequently, less efficient communication has to be identified for example by a critical path analysis. Traditional critical path algorithms are adopted with a novel extension for asynchronous one-sided communication operations. Based on the critical path, a dynamic analysis was developed in order to provide optimization advices for an efficient usage of communication operations. Finally, the developed tool was evaluated by applying it to a stencil code. By implementing the optimization suggestions of the tool, the scalability of the stencil code has been improved. The results demonstrate that the developed tool helps to optimize one-sided communication usage.