XcalableMP PGAS Programming Language

From Programming Model to Applications

by Mitsuhisa Sato

DescriptionTable of ContentsDetailsHashtagsReport an issue

Book Description

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 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.

This open book is licensed under a Creative Commons License (CC BY). You can download XcalableMP PGAS Programming Language ebook for free in PDF format (12.6 MB).

Table of Contents

Chapter 1
XcalableMP Programming Model and Language
Chapter 2
Implementation and Performance Evaluation of Omni Compiler
Chapter 3
Coarrays in the Context of XcalableMP
Chapter 4
XcalableACC: An Integration of XcalableMP and OpenACC
Chapter 5
Mixed-Language Programming with XcalableMP
Chapter 6
Three-Dimensional Fluid Code with XcalableMP
Chapter 7
Hybrid-View Programming of Nuclear Fusion Simulation Code in XcalableMP
Chapter 8
Parallelization of Atomic Image Reconstruction from X-ray Fluorescence Holograms with XcalableMP
Chapter 9
Multi-SPMD Programming Model with YML and XcalableMP
Chapter 10
XcalableMP 2.0 and Future Directions

Book Details

Computer Science
ISBN13 Digital
ISBN10 Digital
PDF Size
12.6 MB

Related Books

Programming Languages and Systems
This book constitutes the proceedings of the 27th European Symposium on Programming, ESOP 2018, which took place in Thessaloniki, Greece in April 2018, held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2018. The 36 papers presented in this volume were carefully reviewed and selected from 114 submissions. The ...
Mobile devices such as smartphones and tablets are set to become the main computers that virtually all people will own and carry with them at all times. And yet,mobile devices are not yet used for all computing tasks. A project at Microsoft Research was created to answer a simple question: "It is possible to create interesting apps directly on...
Eloquent JavaScript
JavaScript lies at the heart of almost every modern web application, from social apps like Twitter to browser-based game frameworks like Phaser and Babylon. Though simple for beginners to pick up and play with, JavaScript is a flexible, complex language that you can use to build full-scale applications. This much anticipated and thoroughly revis...
Principles of Programming Languages
In this open book, our goal is to study the fundamental concepts in programming languages, as opposed to learning a range of specific languages. Languages are easy to learn, it is the concepts behind them that are difficult. The basic features we study in turn include higher-order functions, data structures in the form of records and variants, muta...
Practical Foundations for Programming Languages
Types are the central organizing principle of the theory of programming languages. Language features are manifestations of type structure. The syntax of a language is governed by the constructs that define its types, and its semantics is determined by the interactions among those constructs. The soundness of a language design - the absence of ill-d...
Learning Java
Java is a class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is an unofficial and free Java ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow....