Flexible Language Constructs for Large Parallel Programs

The goal of the research described in this article is to develop flexible language constructs for writing large data parallel numerical programs for distributed memory (multiple instruction multiple data [MIMD]) multiprocessors. Previously, several models have been developed to support synchronizati...

Full description

Bibliographic Details
Main Authors: Matt Rosing, Robert Schnabel
Format: Article
Language:English
Published: Hindawi Limited 1994-01-01
Series:Scientific Programming
Online Access:http://dx.doi.org/10.1155/1994/209864
id doaj-60f5794198b84332ae89646dba168f54
record_format Article
spelling doaj-60f5794198b84332ae89646dba168f542021-07-02T05:31:33ZengHindawi LimitedScientific Programming1058-92441875-919X1994-01-013316918610.1155/1994/209864Flexible Language Constructs for Large Parallel ProgramsMatt Rosing0Robert Schnabel1Pacific Northwest Laboratory, Richland, WA 99352, USAUniversity of Colorado, Boulder, CO 80309, USAThe goal of the research described in this article is to develop flexible language constructs for writing large data parallel numerical programs for distributed memory (multiple instruction multiple data [MIMD]) multiprocessors. Previously, several models have been developed to support synchronization and communication. Models for global synchronization include single instruction multiple data (SIMD), single program multiple data (SPMD), and sequential programs annotated with data distribution statements. The two primary models for communication include implicit communication based on shared memory and explicit communication based on messages. None of these models by themselves seem sufficient to permit the natural and efficient expression of the variety of algorithms that occur in large scientific computations. In this article, we give an overview of a new language that combines many of these programming models in a clean manner. This is done in a modular fashion such that different models can be combined to support large programs. Within a module, the selection of a model depends on the algorithm and its efficiency requirements. In this article, we give an overview of the language and discuss some of the critical implementation details.http://dx.doi.org/10.1155/1994/209864
collection DOAJ
language English
format Article
sources DOAJ
author Matt Rosing
Robert Schnabel
spellingShingle Matt Rosing
Robert Schnabel
Flexible Language Constructs for Large Parallel Programs
Scientific Programming
author_facet Matt Rosing
Robert Schnabel
author_sort Matt Rosing
title Flexible Language Constructs for Large Parallel Programs
title_short Flexible Language Constructs for Large Parallel Programs
title_full Flexible Language Constructs for Large Parallel Programs
title_fullStr Flexible Language Constructs for Large Parallel Programs
title_full_unstemmed Flexible Language Constructs for Large Parallel Programs
title_sort flexible language constructs for large parallel programs
publisher Hindawi Limited
series Scientific Programming
issn 1058-9244
1875-919X
publishDate 1994-01-01
description The goal of the research described in this article is to develop flexible language constructs for writing large data parallel numerical programs for distributed memory (multiple instruction multiple data [MIMD]) multiprocessors. Previously, several models have been developed to support synchronization and communication. Models for global synchronization include single instruction multiple data (SIMD), single program multiple data (SPMD), and sequential programs annotated with data distribution statements. The two primary models for communication include implicit communication based on shared memory and explicit communication based on messages. None of these models by themselves seem sufficient to permit the natural and efficient expression of the variety of algorithms that occur in large scientific computations. In this article, we give an overview of a new language that combines many of these programming models in a clean manner. This is done in a modular fashion such that different models can be combined to support large programs. Within a module, the selection of a model depends on the algorithm and its efficiency requirements. In this article, we give an overview of the language and discuss some of the critical implementation details.
url http://dx.doi.org/10.1155/1994/209864
work_keys_str_mv AT mattrosing flexiblelanguageconstructsforlargeparallelprograms
AT robertschnabel flexiblelanguageconstructsforlargeparallelprograms
_version_ 1721338498942763008