StarPlat:一种用于图分析的多功能领域特定语言

摘要:在图的模型中,存在很多真实世界的现象。随着非结构化和半结构化数据的增长,图算法的并行化是不可避免的。不幸的是,由于计算、内存访问和通信的固有不规则性,图算法传统上很难并行化。为了解决这个挑战,提出了几个库、框架和领域特定语言(DSL),以减轻用户的并行编程负担,用户通常是领域专家。然而,现有的图算法建模框架通常只针对单一体系结构。本文介绍了一种名为StarPlat的图形DSL,它允许程序员以高级格式指定图算法,但从相同的算法规范生成三个不同后端的代码。具体地说,DSL编译器为多核生成OpenMP,为分布式生成MPI,为众核GPU生成CUDA。由于这三个是完全不同的并行编程模型,将它们绑定到同一种语言中是具有挑战性的。我们分享了语言设计的经验。我们编译器的核心是一个中间表示,它允许高级程序的通用表示,从中开始生成各个后端的代码。我们通过指定四个图算法来展示StarPlat的表现力:节点介数计算、页面排名计算、单源最短路径和三角计数。通过将生成的代码与手工编写的库代码的性能进行比较,展示了我们方法的有效性。我们发现,在许多情况下,生成的代码与基于库的代码具有竞争力。更重要的是,我们展示了从相同的图算法规范生成不同目标体系结构的高效代码的可行性。

作者:Nibedita Behera, Ashwina Kumar, Ebenezer Rajadurai T, Sai Nitish, Rajesh Pandian M and Rupesh Nasre

论文ID:2305.03317

分类:Distributed, Parallel, and Cluster Computing

分类简称:cs.DC

提交时间:2023-05-08

PDF 下载: 英文版 中文版pdf翻译中