Green Marl是一种面向图的特定领域语言。用户可以在 Green-Marl 中使用高级的、图形特有的数据类型和运算符直观地编写自己的图形算法。
本系列将结合Green Marl的论文与文档,分析学习Green Marl语言。其中部分是对论文或文档的翻译。若有理解错误,请指出。
论文:Green-Marl: A DSL for Easy and Efficient Graph Analysis
Github Repo:Green-Marl
Green Marl 简介
- Green Marl的两个目标:Performance 和 Implementation
- 具体实现方法:设计一个DSL(Domain-Specific language),用户利用Green Marl描述算法,而无需考虑在具体机器上的实现,同时需要指出其中的秉性部分。提供一个Green Marl的编译器,能将Green Marl编译成优化、并行化后的目标语言(不是机器语言,提供的例子是C++的后端)
Green Marl 语言设计
Scope of the Language
从数学上来说,G = (N,E) 其中N是所有的点集,而E是所有的边集。与图中每一个节点相关的数据可以看成一个从点N或者边E到值域的一个映射。作者将其称为node property
。
对于 G=(V,E) 以及 Π={ P1,…,Pn} Green Marl主要用于完成以下的图形分析:
- 根据