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: Contribution to journalArticlepeer-review

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)
Pages (from-to)247-258
Number of pages12
JournalACM SIGPLAN Notices
Volume49
Issue number8
DOIs
StatePublished - Feb 6 2014

Keywords

  • algorithmic skeletons
  • loop fusion
  • parallel programming

ASJC Scopus subject areas

  • General Computer Science

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