Type oriented parallel programming for Exascale. (September 2017)
- Record Type:
- Journal Article
- Title:
- Type oriented parallel programming for Exascale. (September 2017)
- Main Title:
- Type oriented parallel programming for Exascale
- Authors:
- Brown, Nick
- Abstract:
- Highlights: Orienting parallelism around types can provide a mixed mode abstraction level, providing both simple defaults and additional expressivity. Using types for writing parallel code one can tune and more easily modify their algorithm, in comparison to existing programming technologies. Alleviating the programmer from the tricky and low level details of parallelism is desirable, where they can direct choices via language/framework mechanisms. 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 this approach there is much information available during compilation which can be used for optimisation and, in the absence of typeHighlights: Orienting parallelism around types can provide a mixed mode abstraction level, providing both simple defaults and additional expressivity. Using types for writing parallel code one can tune and more easily modify their algorithm, in comparison to existing programming technologies. Alleviating the programmer from the tricky and low level details of parallelism is desirable, where they can direct choices via language/framework mechanisms. 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 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. … (more)
- Is Part Of:
- Advances in engineering software. Volume 111(2017)
- Journal:
- Advances in engineering software
- Issue:
- Volume 111(2017)
- Issue Display:
- Volume 111, Issue 2017 (2017)
- Year:
- 2017
- Volume:
- 111
- Issue:
- 2017
- Issue Sort Value:
- 2017-0111-2017-0000
- Page Start:
- 18
- Page End:
- 25
- Publication Date:
- 2017-09
- Subjects:
- Type oriented programming -- Mesham -- Parallel programming -- Type systems -- Asynchronous Jacobi -- PGAS
Computer-aided engineering -- Periodicals
Engineering -- Computer programs -- Periodicals
Engineering -- Software -- Periodicals
Periodicals
620.0028553 - Journal URLs:
- http://www.sciencedirect.com/science/journal/09659978 ↗
http://www.elsevier.com/journals ↗ - DOI:
- 10.1016/j.advengsoft.2017.04.006 ↗
- Languages:
- English
- ISSNs:
- 0965-9978
- Deposit Type:
- Legaldeposit
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library DSC - 0705.450000
British Library DSC - BLDSS-3PM
British Library HMNTS - ELD Digital store - Ingest File:
- 2850.xml