Vis enkel innførsel

dc.contributor.authorHaveraaen, Magne
dc.contributor.authorMorris, Karla
dc.contributor.authorRouson, Damian
dc.contributor.authorRadhakrishnan, Hari
dc.contributor.authorCarson, Clayton
dc.date.accessioned2016-07-28T12:44:57Z
dc.date.available2016-07-28T12:44:57Z
dc.date.issued2015
dc.PublishedScientific Programming, 2015:942059eng
dc.identifier.issn1058-9244en_US
dc.identifier.urihttps://hdl.handle.net/1956/12340
dc.description.abstractThis paper presents ideas for using coordinate-free numerics in modern Fortran to achieve code flexibility in the partial differential equation (PDE) domain. We also show how Fortran, over the last few decades, has changed to become a language well-suited for state-of-the-art software development. Fortran’s new coarray distributed data structure, the language’s class mechanism, and its side-effect-free, pure procedure capability provide the scaffolding on which we implement HPC software. These features empower compilers to organize parallel computations with efficient communication. We present some programming patterns that support asynchronous evaluation of expressions comprised of parallel operations on distributed data. We implemented these patterns using coarrays and the message passing interface (MPI). We compared the codes’ complexity and performance. The MPI code is much more complex and depends on external libraries. The MPI code on Cray hardware using the Cray compiler is 1.5–2 times faster than the coarray code on the same hardware. The Intel compiler implements coarrays atop Intel’s MPI library with the result apparently being 2–2.5 times slower than manually coded MPI despite exhibiting nearly linear scaling efficiency. As compilers mature and further improvements to coarrays comes in Fortran 2015, we expect this performance gap to narrow.en_US
dc.language.isoengeng
dc.publisherHindawien_US
dc.rightsAttribution CC BYeng
dc.rights.urihttp://creativecommons.org/licenses/by/3.0/eng
dc.titleHigh-performance design patterns for modern Fortranen_US
dc.typePeer reviewed
dc.typeJournal article
dc.date.updated2016-04-07T12:50:45Z
dc.description.versionpublishedVersionen_US
dc.rights.holderCopyright 2015 Magne Haveraaen et al.en_US
dc.identifier.doihttps://doi.org/10.1155/2015/942059
dc.identifier.cristin1262295
dc.relation.projectNorges forskningsråd: 197739
dc.subject.nsiVDP::Matematikk og naturvitenskap: 400::Informasjons- og kommunikasjonsvitenskap: 420::Teoretisk databehandling, programmeringsspråk og -teori: 421
dc.subject.nsiVDP::Mathematics and natural scienses: 400::Information and communication science: 420::Theoretical computer science, programming science and theory: 421


Tilhørende fil(er)

Thumbnail

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

Vis enkel innførsel

Attribution CC BY
Med mindre annet er angitt, så er denne innførselen lisensiert som Attribution CC BY