paperbot · PL 论文追踪

全部论文 待读 收藏

P2 An order-aware dataflow model for parallel Unix pipelines

面向并行 Unix 管道的有序感知数据流模型
ICFP 5(ICFP)2021匹配度 3/10 · 该论文属于形式语义与并行化编译范畴,虽兼具形式化证明与工程实现(符合用户的部分偏好),但其研究对象是 Unix shell 管道并行化的数据流模型,未涉及静态分析、LLM/Agent、浮点程序分析或贝叶斯程序分析等用户核心方向,与 'PL 与 AI 交叉' 的主线只有非常间接的联系。引用 3 inbox
Shivam Handa, Konstantinos Kallas, Nikos Vasilakis, Martin C. Rinard
crossref: 2026-09-10

AI 速览

一句话:提出顺序感知的数据流模型以精确刻画并行 Unix 管道语义,并证明其并行化变换的正确性。

Unix shell 管道是广泛使用的组合式编程手段,但其中蕴含的数据并行性难以被安全地利用,原因在于复杂管道的语义(尤其是节点从不同输入边消费数据的顺序)缺乏精确的形式化刻画。本文提出一种用于建模并行 Unix shell 管道的数据流模型,该模型是「顺序感知」的:数据流图中每个节点从各条边消费输入的顺序对计算语义、进而对可行的并行化方式起核心作用。作者用该模型刻画利用 shell 计算中数据并行性的变换语义,并证明这些变换的正确性;同时形式化了从 Unix shell 到数据流模型、以及从数据流模型回译到并行 shell 脚本的翻译过程。模型与变换被实现为一个并行化 shell 管道系统的编译器和优化 pass,并在 47 条管道上评估了所获得的加速比。

问题
如何精确刻画复杂 Unix shell 管道的语义(特别是节点消费输入的顺序),从而在保证正确性的前提下利用其中的数据并行性。
方法
提出顺序感知的数据流模型,形式化 shell 与数据流模型之间的双向翻译,并对利用数据并行性的变换给出正确性证明,最终实现为并行化系统的编译器与优化 pass。
评估
将模型与变换集成进一个并行化 shell 管道的系统,并在 47 条真实管道上测量其加速效果。
原文摘要(Abstract)

We present a dataflow model for modelling parallel Unix shell pipelines. To accurately capture the semantics of complex Unix pipelines, the dataflow model is order-aware, i.e., the order in which a node in the dataflow graph consumes inputs from different edges plays a central role in the semantics of the computation and therefore in the resulting parallelization. We use this model to capture the semantics of transformations that exploit data parallelism available in Unix shell computations and prove their correctness. We additionally formalize the translations from the Unix shell to the dataflow model and from the dataflow model back to a parallel shell script. We implement our model and transformations as the compiler and optimization passes of a system parallelizing shell pipelines, and use it to evaluate the speedup achieved on 47 pipelines.

链接与引用

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

BibTeX
@article{paperbot1114,
  title = {An order-aware dataflow model for parallel Unix pipelines},
  author = {Shivam Handa and Konstantinos Kallas and Nikos Vasilakis and Martin C. Rinard},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {5},
  number = {ICFP},
  year = {2021},
  doi = {10.1145/3473570}
}