2016•IEEE International Conference on High Performance Computing, Data, and AnalyticsRequires access

Proceedings of the First Workshop on PGAS Applications

Karla Morris

Open publisher page 0 citations

Abstract

In an effort to enable extreme-scale computing, system architectures and technologies are undergoing dramatic transformations, involving complex memory hierarchies, hardware heterogeneity, many- and multi-core architectures, and different levels of parallelization. In order to effectively exploit these transformations when producing scalable applications, scientific researchers must increasingly have cross-cutting technical expertise in hardware, software, and algorithm development. Given this landscape, programming models that provide scientific researchers with a more effective approach for developing their parallel applications are of the utmost importance. The partitioned global address space (PGAS) parallel programming model effectively combines the productive data reference semantics of shared memory systems with a strong locality model in which programmers can reason about the mapping of data to distributed memories. This combination of features simplifies programming complexity while enhancing performance by supporting shared namespaces in a way that exposes data locality in support of scalability. Many PGAS models rely on the single-program, multiple-data (SPMD) programming model commonly used for distributed memory programming. Others provide more of a global view of execution in which language concepts are used to map data and control structures to the target nodes. There are many programming languages within the PGAS family, including Fortran 2008, Unified Parallel C (UPC), X10, and Chapel. Such languages provide users with rich syntax for expressing locality-aware parallel computations. By embedding PGAS concepts into a language's type system and execution semantics, compilers can be leveraged to help with error checking and optimization. PGAS models also take the form of meta-languages and libraries, such as Unified Parallel C++ (UPC++), Coarray C++, OpenSHMEM, MPI-3, and Global Arrays. These have the benefit of being integrated with existing languages, simplifying the learning curve for existing programmers. PGAS Applications Workshop (PAW) includes work from case studies of PGAS programming models in the context of real-world applications as a means of better understanding practical applications of PGAS technologies. The work characterizes the scalability and performance, expressiveness and programmability, as well as any downsides or areas for improvement in existing PGAS models.

About this research paper

What this paper is about

In an effort to enable extreme-scale computing, system architectures and technologies are undergoing dramatic transformations, involving complex memory hierarchies, hardware heterogeneity, many- and multi-core architectures, and different levels of parallelization. In order to effectively exploit these transformations when producing scalable applications, scientific researchers must increasingly have cross-cutting technical expertise in hardware, software, and algorithm development. Given this landscape, programming models that provide scientific researchers with a more effective approach for developing their parallel applications are of the utmost importance. The partitioned global address space (PGAS) parallel programming model effectively combines the productive data reference semantics of shared memory systems with a strong locality model in which programmers can reason about the mapping of data to distributed memories. This combination of features simplifies programming complexity while enhancing performance by supporting shared namespaces in a way that exposes data locality in support of scalability. Many PGAS models rely on the single-program, multiple-data (SPMD) programming model commonly used for distributed memory programming. Others provide more of a global view of execution in which language concepts are used to map data and control structures to the target nodes. There are many programming languages within the PGAS family, including Fortran 2008, Unified Parallel C (UPC), X10, and Chapel. Such languages provide users with rich syntax for expressing locality-aware parallel computations. By embedding PGAS concepts into a language's type system and execution semantics, compilers can be leveraged to help with error checking and optimization. PGAS models also take the form of meta-languages and libraries, such as Unified Parallel C++ (UPC++), Coarray C++, OpenSHMEM, MPI-3, and Global Arrays. These have the benefit of being integrated with existing languages, simplifying the learning curve for existing programmers. PGAS Applications Workshop (PAW) includes work from case studies of PGAS programming models in the context of real-world applications as a means of better understanding practical applications of PGAS technologies. The work characterizes the scalability and performance, expressiveness and programmability, as well as any downsides or areas for improvement in existing PGAS models.

Why it matters

A significance statement is not available in the OpenAlex record.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

In an effort to enable extreme-scale computing, system architectures and technologies are undergoing dramatic transformations, involving complex memory hierarchies, hardware heterogeneity, many- and multi-core architectures, and different levels of parallelization. In order to effectively exploit these transformations when producing scalable applications, scientific researchers must increasingly have cross-cutting technical expertise in hardware, software, and algorithm development. Given this landscape, programming models that provide scientific researchers with a more effective approach for developing their parallel applications are of the utmost importance. The partitioned global address space (PGAS) parallel programming model effectively combines the productive data reference semantics of shared memory systems with a strong locality model in which programmers can reason about the mapping of data to distributed memories. This combination of features simplifies programming complexity while enhancing performance by supporting shared namespaces in a way that exposes data locality in support of scalability. Many PGAS models rely on the single-program, multiple-data (SPMD) programming model commonly used for distributed memory programming. Others provide more of a global view of execution in which language concepts are used to map data and control structures to the target nodes. There are many programming languages within the PGAS family, including Fortran 2008, Unified Parallel C (UPC), X10, and Chapel. Such languages provide users with rich syntax for expressing locality-aware parallel computations. By embedding PGAS concepts into a language's type system and execution semantics, compilers can be leveraged to help with error checking and optimization. PGAS models also take the form of meta-languages and libraries, such as Unified Parallel C++ (UPC++), Coarray C++, OpenSHMEM, MPI-3, and Global Arrays. These have the benefit of being integrated with existing languages, simplifying the learning curve for existing programmers. PGAS Applications Workshop (PAW) includes work from case studies of PGAS programming models in the context of real-world applications as a means of better understanding practical applications of PGAS technologies. The work characterizes the scalability and performance, expressiveness and programmability, as well as any downsides or areas for improvement in existing PGAS models.

Key concepts: Partitioned global address space, Computer science, Programming paradigm, Scalability, Programming language, Locality, Compiler, Semantics (computer science)

Related papers

Back to paper searchBrowse research topicsOriginal source
Proceedings of the First Workshop on PGAS Applications — Research Paper | ScholarLens