Triolet: A programming system that unifies algorithmic skeleton interfaces for high-performance cluster computing

Christopher Rodrigues, Thomas Jablin, Abdul Dakkak, Wen Mei Hwu

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Functional algorithmic skeletons promise a high-level programming interface for distributed-memory clusters that free developers from concerns of task decomposition, scheduling, and communication. Unfortunately, prior distributed functional skeleton frameworks do not deliver performance comparable to that achievable in a low-level distributed programming model such as C with MPI and OpenMP, even when used in concert with high-performance array libraries. There are several causes: they do not take advantage of shared memory on each cluster node; they impose a fixed partitioning strategy on input data; and they have limited ability to fuse loops involving skeletons that produce a variable number of outputs per input. We address these shortcomings in the Triolet programming language through a modular library design that separates concerns of parallelism, loop nesting, and data partitioning. We show how Triolet substantially improves the parallel performance of algorithms involving array traversals and nested, variable-size loops over what is achievable in Eden, a distributed variant of Haskell. We further demonstrate how Triolet can substantially simplify parallel programming relative to C with MPI and OpenMP while achieving 23.100% of its performance on a 128-core cluster.

Original languageEnglish (US)
Title of host publicationPPoPP 2014 - Proceedings of the 2014 ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
Pages247-258
Number of pages12
DOIs
StatePublished - Mar 10 2014
Event2014 19th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2014 - Orlando, FL, United States
Duration: Feb 15 2014Feb 19 2014

Publication series

NameProceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP

Other

Other2014 19th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2014
CountryUnited States
CityOrlando, FL
Period2/15/142/19/14

Keywords

  • Algorithmic skeletons
  • Loop fusion
  • Parallel programming

ASJC Scopus subject areas

  • Software

Fingerprint Dive into the research topics of 'Triolet: A programming system that unifies algorithmic skeleton interfaces for high-performance cluster computing'. Together they form a unique fingerprint.

  • Cite this

    Rodrigues, C., Jablin, T., Dakkak, A., & Hwu, W. M. (2014). Triolet: A programming system that unifies algorithmic skeleton interfaces for high-performance cluster computing. In PPoPP 2014 - Proceedings of the 2014 ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (pp. 247-258). (Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP). https://doi.org/10.1145/2555243.2555268