paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Grafs: declarative graph analytics

Grafs:声明式图分析
ICFP 5(ICFP)2021匹配度 2/10 · 该论文属于 PL 领域(声明式 DSL + 程序合成 + 语义保持变换),方法论上与用户对形式化与工程结合的偏好有微弱共鸣,但应用域是图分析/图处理框架,与用户关注的 ML/Agentic 程序静态分析、浮点程序分析、贝叶斯程序分析均无交集,且合成目标不是 LLM/Agent 场景。引用 2 inbox
Farzin Houshmand, Mohsen Lesani, Keval Vora
crossref: 2026-09-10

AI 速览

一句话:提出声明式图分析语言 Grafs 及合成器,自动为五种高性能图处理框架生成高效代码。

图分析可从大规模图中提取关键决策洞见,但现有高性能图处理框架的编程模型低层且互不相同,用户实现和优化分析算法易错耗时。本文将图处理框架的抽象接口视为图分析指令集,提出声明式图分析语言 Grafs 及其合成器:通过保持语义的融合变换优化规格,并归约为路径归约、顶点映射和顶点归约三种原语;针对基于 push/pull 迭代模型的路径归约,给出以核函数为参数的正确性与终止性条件,并据此自动合成核函数。实验表明,生成代码与手写代码性能相当或更优,且融合能加速执行。

问题
现有高性能图处理框架的编程模型低层且彼此微妙不同,导致图分析实现与优化困难、易错且耗时。
方法
提出声明式规格语言 Grafs 与合成器,用语义保持的融合变换将规格归约为三种原语,并基于迭代路径归约的正确性与终止性条件自动合成核函数。
评估
在五种高性能图处理框架上生成代码并与手写代码比较,验证性能匹配或更优及融合加速。
原文摘要(Abstract)

Graph analytics elicits insights from large graphs to inform critical decisions for business, safety and security. Several large-scale graph processing frameworks feature efficient runtime systems; however, they often provide programming models that are low-level and subtly different from each other. Therefore, end users can find implementation and specially optimization of graph analytics error-prone and time-consuming. This paper regards the abstract interface of the graph processing frameworks as the instruction set for graph analytics, and presents Grafs, a high-level declarative specification language for graph analytics and a synthesizer that automatically generates efficient code for five high-performance graph processing frameworks. It features novel semantics-preserving fusion transformations that optimize the specifications and reduce them to three primitives: reduction over paths, mapping over vertices and reduction over vertices. Reductions over paths are commonly calculated based on push or pull models that iteratively apply kernel functions at the vertices. This paper presents conditions, parametric in terms of the kernel functions, for the correctness and termination of the iterative models, and uses these conditions as specifications to automatically synthesize the kernel functions. Experimental results show that the generated code matches or outperforms handwritten code, and that fusion accelerates execution.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot1130,
  title = {Grafs: declarative graph analytics},
  author = {Farzin Houshmand and Mohsen Lesani and Keval Vora},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {5},
  number = {ICFP},
  year = {2021},
  doi = {10.1145/3473588}
}