Type oriented parallel programming for Exascale
Nick Brown

TL;DR
This paper introduces a type-oriented programming approach for Exascale HPC systems that enhances programmability and flexibility without sacrificing performance, enabling high-level implicit parallel code with optional explicit tuning.
Contribution
It presents a novel type-oriented language framework that encodes parallelism and complexity within the type system, improving programmability for both experts and novices in HPC.
Findings
No performance penalty on 8196 cores of Cray XE6
Improved programmability with high-level implicit parallel code
Explicit tuning possible via additional type information
Abstract
Whilst there have been great advances in HPC hardware and software in recent years, the languages and models that we use to program these machines have remained much more static. This is not from a lack of effort, but instead by virtue of the fact that the foundation that many programming languages are built on is not sufficient for the level of expressivity required for parallel work. The result is an implicit trade-off between programmability and performance which is made worse due to the fact that, whilst many scientific users are experts within their own fields, they are not HPC experts. Type oriented programming looks to address this by encoding the complexity of a language via the type system. Most of the language functionality is contained within a loosely coupled type library that can be flexibly used to control many aspects such as parallelism. Due to the high level nature of…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed and Parallel Computing Systems · Advanced Data Storage Technologies
