Vis enkel innførsel

dc.contributor.authorChetioui, Benjamin
dc.contributor.authorLarnøy, Marius Kleppe
dc.contributor.authorJärvi, Jaakko Timo Henrik
dc.contributor.authorHaveraaen, Magne
dc.contributor.authorMullin, Lenore
dc.date.accessioned2022-12-12T10:23:35Z
dc.date.available2022-12-12T10:23:35Z
dc.date.created2022-11-28T11:37:59Z
dc.date.issued2022
dc.identifier.issn2624-9898
dc.identifier.urihttps://hdl.handle.net/11250/3037210
dc.description.abstractThe problem of producing portable high-performance computing (HPC) software that is cheap to develop and maintain is called the P3 (performance, portability, productivity) problem. Good solutions to the P3 problem have been achieved when the performance profiles of the target machines have been similar. The variety of HPC architectures is, however, large and can be expected to grow larger. Software for HPC therefore needs to be highly adaptable, and there is a pressing need to provide developers with tools to produce software that can target machines with vastly different profiles. Multi-dimensional array manipulation constitutes a core component of numerous numerical methods, such as finite difference solvers of Partial Differential Equations (PDEs). The efficiency of these computations is tightly connected to traversing and distributing array data in a hardware-friendly way. The Mathematics of Arrays (MoA) allows for formally reasoning about array computations and enables systematic transformations of array-based programs, e.g., to use data layouts that fit to a specific architecture. This paper presents a programming methodology aimed for tackling the P3 problem in domains that are well-explored using Magnolia, a language designed to embody generic programming. The Magnolia programmer can restrict the semantic properties of abstract generic types and operations by defining so-called axioms. Axioms can be used to produce tests for concrete implementations of specifications, for formal verification, or to perform semantics-preserving program transformations. We leverage Magnolia's semantic specification facilities to extend the Magnolia compiler with a term rewriting system. We implement MoA's transformation rules in Magnolia, and demonstrate through a case study on a finite difference solver of PDEs how our rewriting system allows exploring the space of possible optimizations.en_US
dc.language.isoengen_US
dc.publisherFrontiersen_US
dc.rightsNavngivelse 4.0 Internasjonal*
dc.rights.urihttp://creativecommons.org/licenses/by/4.0/deed.no*
dc.titleP3 problem and Magnolia language: Specializing array computations for emerging architecturesen_US
dc.typeJournal articleen_US
dc.typePeer revieweden_US
dc.description.versionpublishedVersionen_US
dc.rights.holderCopyright 2022 The Author(s)en_US
dc.source.articlenumber931312en_US
cristin.ispublishedtrue
cristin.fulltextoriginal
cristin.qualitycode1
dc.identifier.doi10.3389/fcomp.2022.931312
dc.identifier.cristin2082387
dc.source.journalFrontiers in Computer Scienceen_US
dc.identifier.citationFrontiers in Computer Science. 2022, 4, 931312.en_US
dc.source.volume4en_US


Tilhørende fil(er)

Thumbnail

Denne innførselen finnes i følgende samling(er)

Vis enkel innførsel

Navngivelse 4.0 Internasjonal
Med mindre annet er angitt, så er denne innførselen lisensiert som Navngivelse 4.0 Internasjonal