Fortran 2008 coarrays

Author:

Shterenlikht Anton1,Margetts Lee2,Cebamanos Luis3,Henty David3

Affiliation:

1. The University of Bristol, Bristol

2. The University of Manchester, UK and The University of Oxford, UK

3. The University of Edinburgh, Edinburgh

Abstract

Coarrays are a Fortran 2008 standard feature intended for SIMD type parallel programming. The runtime environment starts a number of identical executable images of the coarray program, on multiple processors, which could be actual physical processors or threads. Each image has a unique number and its private address space. Ordinary variables are private to an image. Coarray variables are available for read/write access from any other image. Coarray communications are of "single sided" type, i.e. a remote call from imageA to image B does not need to be accompanied by a corresponding call in image B. This feature makes coarray programming a lot simpler than MPI. The standard provides synchronisation intrinsics to help avoid race conditions or deadlocks. Any ordinary variable can be made into a coarray - scalars, arrays, intrinsic or derived data types, pointers, allocatables are all allowed. Coarrays can be declared in, and passed to, procedures. Coarrays are thus very flexible and can be used for a number of purposes. For example a collection of coarrays from all or some images can be thought of as a large single array. This is precisely the inverse of the model partitioning logic, typical in MPI programs. A coarray program can exploit functional parallelism too, by delegating dis- tinct tasks to separate images or teams of images. Coarray collectives are expected to become a part of the next version of the Fortran standard. A major unresolved problem of coarray programming is the lack of standard parallel I/O facility in Fortran. In this paper several simple complete coarray programs are shown and compared to alternative parallel technologies - OpenMP, MPI and Fortran 2008 intrinsic "do concurrent". Inter image communication patterns and data transfer are illustrated. An example of a materials microstructure simulation coarray program scaled up to 32k cores is shown. Problems with coarray I/O at this scale are highlighted and addressed with the use of MPI-I/O. A hybrid MPI/coarray programming is discussed and illustrated with a finite element/cellular automata (CAFÉ) multi-scale model. The paper completes with a description of the new coarray language features, expected in the 2015 Fortran standard, and with a brief list of coarray resources

Publisher

Association for Computing Machinery (ACM)

Reference17 articles.

1. ISO/IEC 1539-1:2010 Information technology - Programming languages - Fortran - Part 1: Base language. ISO/IEC 1539-1:2010 Information technology - Programming languages - Fortran - Part 1: Base language.

2. ISO/IEC 1539-1:2010/Cor 1:2012 Information technology - Programming languages - Fortran - Part 1: Base language TECHNICAL CORRIGENDUM 1. ISO/IEC 1539-1:2010/Cor 1:2012 Information technology - Programming languages - Fortran - Part 1: Base language TECHNICAL CORRIGENDUM 1.

3. ISO/IEC 1539-1:2010/Cor 2:2013 Information technology - Programming languages - Fortran - Part 1: Base language TECHNICAL CORRIGENDUM 2. ISO/IEC 1539-1:2010/Cor 2:2013 Information technology - Programming languages - Fortran - Part 1: Base language TECHNICAL CORRIGENDUM 2.

4. Fortran coarray library for 3D cellular automata microstructure simulation" in 7th PGAS Conf., ed. M. Weiland, A. Jackson & N. Johnson;Shterenlikht A.;ISBN,2013

Cited by 14 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. Modeling nonlinear flutter behavior of long‐span bridges using knowledge‐enhanced long short‐term memory network;Computer-Aided Civil and Infrastructure Engineering;2023-04-08

2. Statistical modelling of fracture using cellular atomata finite element;Theoretical and Applied Fracture Mechanics;2021-10

3. Pure Functions in C: A Small Keyword for Automatic Parallelization;International Journal of Parallel Programming;2020-05-30

4. Characterization of elastic-plastic corner deformation and stress fields;International Journal of Structural Integrity;2019-10-07

5. MPI vs Fortran coarrays beyond 100k cores: 3D cellular automata;Parallel Computing;2019-05

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3