Type oriented parallel programming for Exascale

Research output: Contribution to journalArticlepeer-review

Abstract / Description of output

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 this approach there is much information available during compilation which can be used for optimisation and, in the absence of type information, the compiler can apply sensible default options thus supporting both the expert programmer and novice alike.

We demonstrate that, at no performance or scalability penalty when running on up to 8196 cores of a Cray XE6 system, codes written in this type oriented manner provide improved programmability. The programmer is able to write simple, implicit parallel, HPC code at a high level and then explicitly tune by adding additional type information if required.
Original languageEnglish
Pages (from-to)18-25
Number of pages8
JournalAdvances in Engineering Software
Volume111
Early online date26 Apr 2017
DOIs
Publication statusPublished - Sept 2017

Keywords / Materials (for Non-textual outputs)

  • Type oriented programming
  • Mesham
  • Parallel programming
  • Type systems
  • Asynchronous Jacobi
  • PGAS

Fingerprint

Dive into the research topics of 'Type oriented parallel programming for Exascale'. Together they form a unique fingerprint.

Cite this