Exascaling Your Library: Will Your Implementation Meet Your Expectations?

被引:15
|
作者
Shudler, Sergei [1 ]
Calotoiu, Alexandru [1 ]
Hoefler, Torsten [2 ]
Strube, Alexandre [3 ]
Wolf, Felix [1 ]
机构
[1] Tech Univ Darmstadt, Darmstadt, Germany
[2] Swiss Fed Inst Technol, Zurich, Switzerland
[3] Julich Supercomp Ctr, Julich, Germany
基金
瑞士国家科学基金会;
关键词
software engineering; high performance computing; parallel programming; performance analysis; COLLECTIVE COMMUNICATION; MPI; PERFORMANCE;
D O I
10.1145/2751205.2751216
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Many libraries in the HPC field encapsulate sophisticated algorithms with clear theoretical scalability expectations. However, hardware constraints or programming bugs may sometimes render these expectations inaccurate or even plainly wrong. While algorithm engineers have already been advocating the systematic combination of analytical performance models with practical measurements for a very long time, we go one step further and show how this comparison can become part of automated testing procedures. The most important applications of our method include initial validation, regression testing, and benchmarking to compare implementation and platform alternatives. Advancing the concept of performance assertions, we verify asymptotic scaling trends rather than precise analytical expressions, relieving the developer from the burden of having to specify and maintain very fine-grained and potentially non-portable expectations. In this way, scalability validation can be continuously applied throughout the whole development cycle with very little effort. Using MPI as an example, we show how our method can help uncover non-obvious limitations of both libraries and underlying platforms.
引用
收藏
页码:165 / 175
页数:11
相关论文
共 50 条