Declarative Coordination of Graph-Based Parallel Programs
Flávio Cruz, Seth Copen Goldstein and Ricardo Rocha
March 2016
Abstract
Declarative programming has been hailed as a promising approach to
parallel programming since it makes it easier to reason about programs
while hiding the implementation details of parallelism from the
programmer. However, its advantage is also its disadvantage as it
leaves the programmer with no straightforward way to optimize programs
for performance. In this paper, we introduce Coordinated Linear Meld
(CLM), a concurrent forward-chaining linear logic programming
language, with a declarative way to coordinate the execution of
parallel programs allowing the programmer to specify arbitrary
scheduling and data partitioning policies. Our approach allows the
programmer to write graph-based declarative programs and then
optionally to use coordination to fine-tune parallel performance. In
this paper we specify the set of coordination facts, discuss their
implementation in a parallel virtual machine, and show - through
example - how they can be used to optimize parallel execution. We
compare the performance of CLM programs against the original
uncoordinated Linear Meld and several other frameworks.
Bibtex
@InProceedings{cruz-ppopp16,
author = {F. Cruz and S. C. Goldstein and R. Rocha},
title = {{Declarative Coordination of Graph-Based Parallel Programs}},
booktitle = {Proceedings of the 21st ACM SIGPLAN Symposium on Principles and
Practice of Parallel Programming (PPoPP 2016)},
pages = {1--12},
publisher = {ACM},
editor = {T. Harris},
month = {March},
year = {2016},
address = {Barcelona, Spain},
}
Download Paper
PDF file
ACM Digital Library