: Andrew Lenharth and Roshan Dathathri
Galois is a library and runtime that implements the operator
formulation of algorithms. The programmer writes sequential C++
code using Galois iterators and data structures, and the Galois
runtime executes this code in parallel. Abelian is a
distributed-memory, heterogeneous version of Galois with a more
restricted programming model.
At present, writing Galois/Abelian programs requires
familiarity with C++ and in particular, with C++
template programming. Some potential users of our system
find this too complicated, and would prefer to program in Python
while getting the benefit of the Galois/Abelian system.
The goal of this project is to build a compiler which takes
Python programs implementing a suitable subset of the operator
formulation as input, and translates these programs into
shared-memory Abelian C++ code. The input can be a restriction
of the full operator formulation, and it may include compiler
hints (like OpenMP pragmas) but the aim is to minimize what
programmers need to specify. Operations on graph elements in the
output should use explicit lock-free atomic operations whenever
this is legal.
Project deliverables and deadlines
- (Nov 1) A clear statement in English describing your
- (Nov 8) A description of the subset of the operator
formulation you will implement in Python.
- (Dec 6) A compiler that takes Python code as input and
generates Abelian C++ code.
- (Dec 6) A project report, written like an ACM conference
paper, that summarizes the work you did.
tao of parallelism in algorithms. Keshav Pingali,
Donald Nguyen, Milind Kulkarni, Martin Burtscher, M. Amber
Hassaan, Rashid Kaleem, Tsung-Hsien Lee, Andrew Lenharth,
Roman Manevich, Mario Méndez-Lojo, Dimitrios Prountzos, and
Xin Sui. In Proceedings of the ACM SIGPLAN Conference on
Programming Language Design and Implementation, PLDI '11,
pages 12-25, 2011.
Lightweight Infrastructure for Graph Analytics. Donald
Nguyen, Andrew Lenharth and Keshav Pingali. In Proceedings
of ACM Symposium on Operating Systems Principles, SOSP '13,
pages 456-471, 2013.
A Suite of Parallel Irregular Programs Milind
Kulkarni, Martin Burtscher, Calin Casçaval, and Keshav
Pingali. In ISPASS '09: IEEE International Symposium on
Performance Analysis of Systems and Software, 2009.