Thread-Aware Logic Programming For Data-Driven Parallel Programs

Flávio Cruz, Ricardo Rocha and Seth Copen Goldstein

August/September 2015


Abstract

Declarative programming in the style of functional and logic programming has been hailed as an alternative parallel programming style where computer programs are automatically parallelized without programmer control. Although this approach removes many pitfalls of explicit parallel programming, it hides important information about the underlying parallel architecture that could be used to improve the scalability and efficiency of programs. In this paper, we present a novel programming model that allows the programmer to reason about thread state in data-driven declarative programs. This abstraction has been implemented on top of Linear Meld, a linear logic programming language that is designed for writing graph-based programs. We present several programs that show the flavor of our new programming model, including graph algorithms and a machine learning algorithm. Our goal is to show that it is possible to take advantage of architectural details without losing the key advantages of logic programming.

Bibtex

@InProceedings{cruz-iclp15,
  author =    {F. Cruz and R. Rocha and S. C. Goldstein},
  title =     {{Thread-Aware Logic Programming For Data-Driven Parallel Programs}},
  booktitle = {Technical Communications of the 31st International Conference on Logic Programming (ICLP 2015)},
  editor =    {T. Eiter and F. Toni},
  month =     {August/September},
  year =      {2015},
  address =   {Cork, Ireland},
}

Download Paper

PDF file
CEUR Workshop Proceedings