当前位置: X-MOL 学术arXiv.cs.CC › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Pebbles, Graphs, and a Pinch of Combinatorics: Towards Tight I/O Lower Bounds for Statically Analyzable Programs
arXiv - CS - Computational Complexity Pub Date : 2021-05-15 , DOI: arxiv-2105.07203
Grzegorz Kwasniewski, Tal Ben-Nun, Lukas Gianinazzi, Alexandru Calotoiu, Timo Schneider, Alexandros Nikolaos Ziogas, Maciej Besta, Torsten Hoefler

Determining I/O lower bounds is a crucial step in obtaining communication-efficient parallel algorithms, both across the memory hierarchy and between processors. Current approaches either study specific algorithms individually, disallow programmatic motifs such as recomputation, or produce asymptotic bounds that exclude important constants. We propose a novel approach for obtaining precise I/O lower bounds on a general class of programs, which we call Simple Overlap Access Programs (SOAP). SOAP analysis covers a wide variety of algorithms, from ubiquitous computational kernels to full scientific computing applications. Using the red-blue pebble game and combinatorial methods, we are able to bound the I/O of the SOAP-induced Computational Directed Acyclic Graph (CDAG), taking into account multiple statements, input/output reuse, and optimal tiling. To deal with programs that are outside of our representation (e.g., non-injective access functions), we describe methods to approximate them with SOAP. To demonstrate our method, we analyze 38 different applications, including kernels from the Polybench benchmark suite, deep learning operators, and -- for the first time -- applications in unstructured physics simulations, numerical weather prediction stencil compositions, and full deep neural networks. We derive tight I/O bounds for several linear algebra kernels, such as Cholesky decomposition, improving the existing reported bounds by a factor of two. For stencil applications, we improve the existing bounds by a factor of up to 14. We implement our method as an open-source tool, which can derive lower bounds directly from provided C code.

中文翻译:

小卵石,图形和一小撮组合运算:针对可静态分析的程序,将其紧紧的I / O下界

确定I / O下限是跨内存层次结构和处理器之间获取通信有效的并行算法的关键步骤。当前的方法要么单独研究特定算法,要么禁止诸如重新计算之类的程序化主题,要么产生不包含重要常数的渐近边界。我们提出了一种新颖的方法来获取一般程序类中的精确I / O下限,我们将其称为简单重叠访问程序(SOAP)。SOAP分析涵盖了各种各样的算法,从无处不在的计算内核到完整的科学计算应用程序。使用红蓝色的卵石游戏和组合方法,我们可以考虑到多条语句,输入/输出重用和最佳切片,从而约束SOAP诱导的计算型有向无环图(CDAG)的I / O。为了处理超出我们表示形式的程序(例如,非内射访问功能),我们描述了使用SOAP近似它们的方法。为了演示我们的方法,我们分析了38种不同的应用程序,包括Polybench基准测试套件的内核,深度学习运算符,以及-首次-非结构化物理模拟,数值天气预报模版组成和完整的深度神经网络中的应用程序。我们为几个线性代数核(例如Cholesky分解)导出了紧密的I / O边界,从而将现有报告边界提高了两倍。对于模板应用程序,我们将现有范围提高了多达14倍。我们将本方法实现为一种开放源代码工具,该工具可以直接从提供的C代码中得出下限。
更新日期:2021-05-18
down
wechat
bug