XcalableMP PGAS programming language : from programming model to applications
XcalableMP is a directive-based parallel programming language based on Fortran and C, supporting a Partitioned Global Address Space (PGAS) model for distributed memory parallel systems. This open access book presents XcalableMP language from its programming model and basic concept to the experience...
Saved in:
| Main Author: | |
|---|---|
| Format: | eBook Book |
| Language: | English |
| Published: |
Singapore
Springer
2021
Springer Nature Springer Singapore Pte. Limited RIKEN Center for Computational Science |
| Edition: | 1 |
| Subjects: | |
| ISBN: | 9789811576829, 9811576823, 9789811576836, 9811576831 |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Abstract | XcalableMP is a directive-based parallel programming language based on Fortran and C, supporting a Partitioned Global Address Space (PGAS) model for distributed memory parallel systems. This open access book presents XcalableMP language from its programming model and basic concept to the experience and performance of applications described in XcalableMP. XcalableMP was taken as a parallel programming language project in the FLAGSHIP 2020 project, which was to develop the Japanese flagship supercomputer, Fugaku, for improving the productivity of parallel programing. XcalableMP is now available on Fugaku and its performance is enhanced by the Fugaku interconnect, Tofu-D. The global-view programming model of XcalableMP, inherited from High-Performance Fortran (HPF), provides an easy and useful solution to parallelize data-parallel programs with directives for distributed global array and work distribution and shadow communication. The local-view programming adopts coarray notation from Coarray Fortran (CAF) to describe explicit communication in a PGAS model. The language specification was designed and proposed by the XcalableMP Specification Working Group organized in the PC Consortium, Japan. The Omni XcalableMP compiler is a production-level reference implementation of XcalableMP compiler for C and Fortran 2008, developed by RIKEN CCS and the University of Tsukuba. The performance of the XcalableMP program was used in the Fugaku as well as the K computer. A performance study showed that XcalableMP enables a scalable performance comparable to the message passing interface (MPI) version with a clean and easy-to-understand programming style requiring little effort. |
|---|---|
| AbstractList | XcalableMP is a directive-based parallel programming language based on Fortran and C, supporting a Partitioned Global Address Space (PGAS) model for distributed memory parallel systems. This open access book presents XcalableMP language from its programming model and basic concept to the experience and performance of applications described in XcalableMP. XcalableMP was taken as a parallel programming language project in the FLAGSHIP 2020 project, which was to develop the Japanese flagship supercomputer, Fugaku, for improving the productivity of parallel programing. XcalableMP is now available on Fugaku and its performance is enhanced by the Fugaku interconnect, Tofu-D. The global-view programming model of XcalableMP, inherited from High-Performance Fortran (HPF), provides an easy and useful solution to parallelize data-parallel programs with directives for distributed global array and work distribution and shadow communication. The local-view programming adopts coarray notation from Coarray Fortran (CAF) to describe explicit communication in a PGAS model. The language specification was designed and proposed by the XcalableMP Specification Working Group organized in the PC Consortium, Japan. The Omni XcalableMP compiler is a production-level reference implementation of XcalableMP compiler for C and Fortran 2008, developed by RIKEN CCS and the University of Tsukuba. The performance of the XcalableMP program was used in the Fugaku as well as the K computer. A performance study showed that XcalableMP enables a scalable performance comparable to the message passing interface (MPI) version with a clean and easy-to-understand programming style requiring little effort. |
| Author | Sato, Mitsuhisa |
| Author_FL | サトウ, ミツヒサ |
| Author_FL_xml | – sequence: 1 fullname: サトウ, ミツヒサ |
| Author_xml | – sequence: 1 fullname: Sato, Mitsuhisa |
| BackLink | https://cir.nii.ac.jp/crid/1130858596795429903$$DView record in CiNii |
| BookMark | eNpVkctu1TAQho24CFrOAyA2WSAhFoGxHV-CxKIcSkFqaSUQYmdNEieYOnGw04N4e3xIJTgbX_75xjPz-4jcm8JkCXlC4SUFUK9qpcta05KKUknNS3mHbLKWJSr2grx7cGf1A3JEGacSpAT-kGxS-gEArGKKKfqIXHxr0WPj7cVVcXV28rmYYxgijqObhsLjNNzgYIvXRR_DeBAbQ2d9sYQC59m7FhcXpvSY3O_RJ7u53Y_J1_enX7YfyvPLs4_bk_MSuQAmS6moqvqe1XXT0bZVqusF8LZmHesaihIryxpbNVzrGjUVVFsqUHIrW2Y5AD8mz9aHw87GLrqdNU0I18lcvvsEsHdKVJXK2IsVw3Rtf6XvwS_J7Lxd2QPfMvt8ZfOUP29sWsxfrLXTEtGb07dbWQEXmmfyzW1xnO1k5uhGjL9NQGe8a-J63kdCHAwDIwAMZVIoU3EOIuc__T-_C7j2w3n-p3-jTc6Z1u1XSjlooUUtVS2q7Bpw_gdvV5jT |
| ContentType | eBook Book |
| DBID | RYH V1H A7I AHRNR |
| DOI | 10.1007/978-981-15-7683-6 |
| DatabaseName | CiNii Complete DOAB: Directory of Open Access Books OAPEN OverDrive Ebooks |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: V1H name: DOAB: Directory of Open Access Books url: https://directory.doabooks.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISBN | 9789811576836 9811576831 |
| Edition | 1 1st Edition 2021 |
| Editor | Sato, Mitsuhisa |
| Editor_xml | – sequence: 1 fullname: Sato, Mitsuhisa |
| ExternalDocumentID | ODN0010075447 9789811576836 EBC6403583 oai_library_oapen_org_20_500_12657_43305 33316 BD00908042 |
| Genre | Electronic books |
| GroupedDBID | 38. A7I AABBV AABLV AAKKN AALJR AAQKC ABEEZ ABNDO ACBPT ACWLQ ADOGT AEKFX AELOD AGWHU AIQUZ ALMA_UNASSIGNED_HOLDINGS ALNDD BAHJK BBABE CZZ DBWEY EIXGO IEZ OCUHQ ORHYB RYH SBO TPJZQ V1H Z7R Z7S Z7U Z7X Z7Y Z7Z Z81 Z83 Z85 Z87 Z88 AAYZJ AKAAH Z5O AHRNR |
| ID | FETCH-LOGICAL-a35026-67174ff299bd1cc77df503c92d2db1a6a4e2be4b3889a81518e15a63e6c2e3003 |
| IEDL.DBID | V1H |
| ISBN | 9789811576829 9811576823 9789811576836 9811576831 |
| IngestDate | Fri Jul 04 04:36:17 EDT 2025 Fri Nov 08 03:59:56 EST 2024 Fri May 30 22:20:05 EDT 2025 Mon Dec 01 21:27:50 EST 2025 Tue Oct 07 22:31:10 EDT 2025 Fri Jun 27 01:23:48 EDT 2025 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | false |
| IsScholarly | false |
| LCCallNum_Ident | QA76.76.C65 |
| Language | English |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-a35026-67174ff299bd1cc77df503c92d2db1a6a4e2be4b3889a81518e15a63e6c2e3003 |
| Notes | Includes bibliographical references Electronic reproduction. Dordrecht: Springer, 2020. Requires the Libby app or a modern web browser. |
| OCLC | 1231606603 |
| OpenAccessLink | https://directory.doabooks.org/handle/20.500.12854/33316 |
| PQID | EBC6403583 |
| PageCount | 262 |
| ParticipantIDs | overdrive_books_ODN0010075447 askewsholts_vlebooks_9789811576836 proquest_ebookcentral_EBC6403583 oapen_primary_oai_library_oapen_org_20_500_12657_43305 oapen_doabooks_33316 nii_cinii_1130858596795429903 |
| PublicationCentury | 2000 |
| PublicationDate | c2021 2021 2020 2020-11-19 2020. |
| PublicationDateYYYYMMDD | 2021-01-01 2020-01-01 2020-11-19 |
| PublicationDate_xml | – year: 2021 text: 2021 |
| PublicationDecade | 2020 |
| PublicationPlace | Singapore |
| PublicationPlace_xml | – name: Singapore |
| PublicationYear | 2021 2020 |
| Publisher | Springer Springer Nature Springer Singapore Pte. Limited RIKEN Center for Computational Science |
| Publisher_xml | – name: Springer – name: Springer Nature – name: Springer Singapore Pte. Limited – name: RIKEN Center for Computational Science |
| SSID | ssj0002427271 |
| Score | 2.2049994 |
| Snippet | XcalableMP is a directive-based parallel programming language based on Fortran and C, supporting a Partitioned Global Address Space (PGAS) model for... |
| SourceID | overdrive askewsholts proquest oapen nii |
| SourceType | Aggregation Database Publisher |
| SubjectTerms | Coarray Compilers Compilers & interpreters Computer programming / software engineering Computer Technology Computing and Information Technology high performance computing Interpreters Nonfiction Open Access parallel programming language Partitioned Global Address Space model PGAS model Programming & scripting languages: general Programming and scripting languages: general Programming Languages |
| SubjectTermsDisplay | Computer Technology. Electronic books. Nonfiction. |
| TableOfContents | 3.4.3 Lower-layer Runtime (LLR) Library -- 3.4.4 Communication Libraries -- 4 Evaluation -- 4.1 Fundamental Performance -- 4.2 Non-blocking Communication -- 4.3 Application Program -- 4.3.1 Coarray Version of the Himeno Benchmark -- 4.3.2 Measurement Result -- 4.3.3 Productivity -- 5 Related Work -- 6 Conclusion -- References -- XcalableACC: An Integration of XcalableMP and OpenACC -- 1 Introduction -- 1.1 Hardware Model -- 1.2 Programming Model -- 1.2.1 XMP Extensions -- 1.2.2 OpenACC Extensions -- 1.3 Execution Model -- 1.4 Data Model -- 2 XcalableACC Language -- 2.1 Data Mapping -- Example -- 2.2 Work Mapping -- Restriction -- Example 1 -- Example 2 -- 2.3 Data Communication and Synchronization -- Example -- 2.4 Coarrays -- Restriction -- Example -- 2.5 Handling Multiple Accelerators -- 2.5.1 devices Directive -- Example -- 2.5.2 on_device Clause -- 2.5.3 layout Clause -- Example -- 2.5.4 shadow Clause -- Example -- 2.5.5 barrier_device Construct -- Example -- 3 Omni XcalableACC Compiler -- 4 Performance of Lattice QCD Application -- 4.1 Overview of Lattice QCD -- 4.2 Implementation -- 5 Performance Evaluation -- 5.1 Result -- 5.2 Discussion -- 6 Productivity Improvement -- 6.1 Requirement for Productive Parallel Language -- 6.2 Quantitative Evaluation by Delta Source Lines of Codes -- 6.3 Discussion -- References -- Mixed-Language Programming with XcalableMP -- 1 Background -- 2 Translation by Omni Compiler -- 3 Functions for Mixed-Language -- 3.1 Function to Call MPI Program from XMP Program -- 3.2 Function to Call XMP Program from MPI Program -- 3.3 Function to Call XMP Program from Python Program -- 3.3.1 From Parallel Python Program -- 3.3.2 From Sequential Python Program -- 4 Application to Order/Degree Problem -- 4.1 What Is Order/Degree Program -- 4.2 Implementation -- 4.3 Evaluation -- 5 Conclusion -- References 2.2 Example of Code Translation -- 2.2.1 Distributed Array -- 2.2.2 Loop Statement -- 2.2.3 Communication -- 3 Installation -- 3.1 Overview -- 3.2 Get Source Code -- 3.2.1 From GitHub -- 3.2.2 From Our Website -- 3.3 Software Dependency -- 3.4 General Installation -- 3.4.1 Build and Install -- 3.4.2 Set PATH -- 3.5 Optional Installation -- 3.5.1 OpenACC -- 3.5.2 XcalableACC -- 3.5.3 One-Sided Library -- 4 Creation of Execution Binary -- 4.1 Compile -- 4.2 Execution -- 4.2.1 XcalableMP and XcalableACC -- 4.2.2 OpenACC -- 4.3 Cooperation with Profiler -- 4.3.1 Scalasca -- 4.3.2 tlog -- 5 Performance Evaluation -- 5.1 Experimental Environment -- 5.2 EP STREAM Triad -- 5.2.1 Design -- 5.2.2 Implementation -- 5.2.3 Evaluation -- 5.3 High-Performance Linpack -- 5.3.1 Design -- 5.3.2 Implementation -- 5.3.3 Evaluation -- 5.4 Global Fast Fourier Transform -- 5.4.1 Design -- 5.4.2 Implementation -- 5.4.3 Evaluation -- 5.5 RandomAccess -- 5.5.1 Design -- 5.5.2 Implementation -- 5.5.3 Evaluation -- 5.6 Discussion -- 6 Conclusion -- References -- Coarrays in the Context of XcalableMP -- 1 Introduction -- 2 Requirements from Language Specifications -- 2.1 Images Mapped to XMP Nodes -- 2.2 Allocation of Coarrays -- 2.3 Communication -- 2.4 Synchronization -- 2.5 Subarrays and Data Contiguity -- 2.6 Coarray C Language Specifications -- 3 Implementation -- 3.1 Omni XMP Compiler Framework -- 3.2 Allocation and Registration -- 3.2.1 Three Methods of Memory Management -- 3.2.2 Initial Allocation for Static Coarrays -- 3.2.3 Runtime Allocation for Allocatable Coarrays -- 3.3 PUT/GET Communication -- 3.3.1 Determining the Possibility of DMA -- 3.3.2 Buffering Communication Methods -- 3.3.3 Non-blocking PUT Communication -- 3.3.4 Optimization of GET Communication -- 3.4 Runtime Libraries -- 3.4.1 Fortran Wrapper -- 3.4.2 Upper-layer Runtime (ULR) Library Intro -- Preface -- Contents -- XcalableMP Programming Model and Language -- 1 Introduction -- 1.1 Target Hardware -- 1.2 Execution Model -- 1.3 Data Model -- 1.4 Programming Models -- 1.4.1 Partitioned Global Address Space -- 1.4.2 Global-View Programming Model -- 1.4.3 Local-View Programming Model -- 1.4.4 Mixture of Global View and Local View -- 1.5 Base Languages -- 1.5.1 Array Section in XcalableMP C -- 1.5.2 Array Assignment Statement in XcalableMP C -- 1.6 Interoperability -- 2 Data Mapping -- 2.1 nodes Directive -- 2.2 template Directive -- 2.3 distribute Directive -- 2.3.1 Block Distribution -- 2.3.2 Cyclic Distribution -- 2.3.3 Block-Cyclic Distribution -- 2.3.4 Gblock Distribution -- 2.3.5 Distribution of Multi-Dimensional Templates -- 2.4 align Directive -- 2.5 Dynamic Allocation of Distributed Array -- 2.6 template_fix Construct -- 3 Work Mapping -- 3.1 task and tasks Construct -- 3.1.1 task Construct -- 3.1.2 tasks Construct -- 3.2 loop Construct -- 3.2.1 Reduction Computation -- 3.2.2 Parallelizing Nested Loop -- 3.3 array Construct -- 4 Data Communication -- 4.1 shadow Directive and reflect Construct -- 4.1.1 Declaring Shadow -- 4.1.2 Updating Shadow -- 4.2 gmove Construct -- 4.2.1 Collective Mode -- 4.2.2 In Mode -- 4.2.3 Out Mode -- 4.3 barrier Construct -- 4.4 reduction Construct -- 4.5 bcast Construct -- 4.6 wait_async Construct -- 4.7 reduce_shadow Construct -- 5 Local-View Programming -- 5.1 Introduction -- 5.2 Coarray Declaration -- 5.3 Put Communication -- 5.4 Get Communication -- 5.5 Synchronization -- 5.5.1 Sync All -- 5.5.2 Sync Images -- 5.5.3 Sync Memory -- 6 Procedure Interface -- 7 XMPT Tool Interface -- 7.1 Overview -- 7.2 Specification -- 7.2.1 Initialization -- 7.2.2 Events -- References -- Implementation and Performance Evaluation of Omni Compiler -- 1 Overview -- 2 Implementation -- 2.1 Operation Flow Three-Dimensional Fluid Code with XcalableMP -- 1 Introduction -- 2 Global-View Programming Model -- 2.1 Domain Decomposition Methods -- 2.2 Performance on the K Computer -- 2.2.1 Comparison with Hand-Coded MPI Program -- 2.2.2 Optimization for SIMD -- 2.2.3 Optimization for Allocatable Arrays -- 3 Local-View Programming Model -- 3.1 Communications Using Coarray -- 3.2 Performance on the K Computer -- 4 Summary -- References -- Hybrid-View Programming of Nuclear Fusion Simulation Code in XcalableMP -- 1 Introduction -- 2 Nuclear Fusion Simulation Code -- 2.1 Gyrokinetic PIC Simulation -- 2.2 GTC -- 3 Implementation of GTC-P by Hybrid-view Programming -- 3.1 Hybrid-View Programming Model -- 3.2 Implementation Based on the XMP-Localview Model: XMP-localview -- 3.3 Implementation Based on the XMP-Hybridview Model: XMP-Hybridview -- 4 Performance Evaluation -- 4.1 Experimental Setting -- 4.2 Results -- 4.3 Productivity and Performance -- 5 Related Research -- 6 Conclusion -- References -- Parallelization of Atomic Image Reconstruction from X-ray Fluorescence Holograms with XcalableMP -- 1 Introduction -- 2 X-ray Fluorescence Holography -- 2.1 Reconstruction of Atomic Images -- 2.2 Analysis Procedure of XFH -- 3 Parallelization -- 3.1 Parallelization of Reconstruction of Two-Dimensional Atomic Images by OpenMP -- 3.2 Parallelization of Reconstruction of Three-dimensional Atomic Images by XcalableMP -- 4 Performance Evaluation -- 4.1 Performance Results of Reconstruction of Two-Dimensional Atomic Images -- 4.2 Performance Results of Reconstruction of Three-dimensional Atomic Images -- 4.3 Comparison of Parallelization with MPI -- 5 Conclusion -- References -- Multi-SPMD Programming Model with YML and XcalableMP -- 1 Introduction -- 2 Background: International Collaborations for the Post-Petascale and Exascale Computing -- 3 Multi-SPMD Programming Model 3.1 Overview -- 3.2 YML -- 3.3 OmniRPC-MPI -- 4 Application Development in the mSPMD Programming Environment -- 4.1 Task Generator -- 4.2 Workflow Development -- 4.3 Workflow Execution -- 5 Experiments -- 6 Eigen Solver on the mSPMD Programming Model -- 6.1 Implicitly Restarted Arnoldi Method (IRAM), Multiple Implicitly Restarted Arnoldi Method (MIRAM) and Their Implementations for the mSPMD Programming Model -- 6.2 Experiments -- 7 Fault-Tolerance Features in the mSPMD Programming Model -- 7.1 Overview and Implementation -- 7.2 Experiments -- 8 Runtime Correctness Check for the mSPMD Programming Model -- 8.1 Overview and Implementation -- 8.2 Experiments -- 9 Summary -- References -- XcalableMP 2.0 and Future Directions -- 1 Introduction -- 2 XcalableMP on Fugaku -- 2.1 Performance of XcalableMP Global View Programming -- 2.2 Performance of XcalableMP Local View Programming -- 3 Global Task Parallel Programming -- 3.1 OpenMP and XMP Tasklet Directive -- 3.2 A Proposal for Global Task Parallel Programming -- 3.3 Prototype Design of Code Transformation -- 3.4 Preliminary Performance -- 3.5 Communication Optimization for Manycore Clusters -- 4 Retrospectives and Challenges for Future PGAS Models -- 4.1 Low-Level Communication Layer for PGAS Model -- 4.2 XcalableMP as a DSL for Stencil Applications -- 4.3 XcalableMP API: Compiler-Free Approach -- 4.4 Global Task Parallel Programming Model for Accelerators -- References |
| Title | XcalableMP PGAS programming language : from programming model to applications |
| URI | https://cir.nii.ac.jp/crid/1130858596795429903 https://directory.doabooks.org/handle/20.500.12854/33316 https://library.oapen.org/handle/20.500.12657/43305 https://ebookcentral.proquest.com/lib/[SITE_ID]/detail.action?docID=6403583 https://www.vlebooks.com/vleweb/product/openreader?id=none&isbn=9789811576836 http://link.overdrive.com/?titleID=10075447&websiteID= |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwnV1Na9wwEB3SpNDmkpS0dNMmmJKrUutbPrb5hmS70LDsTci2DEsSb1hv8vs7I3tLoTnl4oNt7OHJnjejGT0BHCmlg7RNZLIwDSNBLhZCsKzSHOk-5qVIzZjTazseu9msmGyAW6-F6R35grqaF4HizC6V83vJAczUj3VOighOq-9SSm7ewBZmOIaauab8cl22HJRjC8cZ1wwjaskwwN0O3R16DvQqqw6ppJ3PaZej8BjbbXhHDZP1Ej3Mf045Mc35zutt3IWtSCsXPsBGbPfgaIbo07qom0k2ufjxO5v0nVgPyFXZ9TBL-RGm52e3J5ds2BKBBakxXWIG0y_VNEgiZc2rytq60bmsClGLuuTBBBVFGVUpnSuCQzp3ketgZDSViBJ_4U-w2S7a-BkybeqoRF00ijTxHd7V1KYscxtIxUvbEXz7BzD_fJ_Kt51HZBFYTomKNCM4QBx9NacjR0KkOmNhbKET0ckR7CWE_RoqnyAZgelPP_aaGp5Urod5K99fQUi9yD1i6bkw2nol0Tfh-_6OlO8f-Ot0TJltTlJ-aHS2Hj2f7B16XP3ZzxOjcqmd3H_ZpC_wXlC_Sppe-Qqbq-VTPIC31fNq3i0PMea2V4fpI_sDJjDNwQ |
| linkProvider | Open Access Publishing in European Networks |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.title=XcalableMP+PGAS+programming+language+%3A+from+programming+model+to+applications&rft.au=%E4%BD%90%E8%97%A4%2C+%E4%B8%89%E4%B9%85&rft.date=2021-01-01&rft.pub=Springer&rft.isbn=9789811576829&rft_id=info:doi/10.1007%2F978-981-15-7683-6&rft.externalDocID=BD00908042 |
| thumbnail_m | http://cvtisr.summon.serialssolutions.com/2.0.0/image/custom?url=https%3A%2F%2Fvle.dmmserver.com%2Fmedia%2F640%2F97898115%2F9789811576836.jpg |

