A methodology for the development and the support of massively parallel programs

https://doi.org/10.1016/0167-739X(92)90040-IGet rights and content

Abstract

The most important features that a parallel programming language should provide are portability, modularity, and ease of use, as well as performance and efficiency. Current parallel languages are only characterized by some of these features. For instance, most of these languages allow programmers to efficiently exploit the massively parallel target machine. Unfortunately, the estimation of the performance of each application is usually made by the programmer, without the support of any tool. Moreover, the programs produced by using such languages are not portable or easily modifiable.

Here, we present a methodology to easily write efficient, high performance and portable massively parallel programs. The methodology is based on the definition of a new explicitly parallel programming language, namely P3L, and of a set of compiling tools that perform automatic adaptation of the program features to the target architecture hardware. Target architectures taken into account here are general purpose, distributed memory, MIMD architectures. These architectures provide the scalability and low cost features that are necessary to tackle the goal of massively parallel computing.

Following the P3L methodology, the programmer has just to specify the kind of parallelism he is going to exploit (pipeline, farm, data, etc.) in the parallel application. Then, P3L programming tools automatically generate the process network that implements and optimizes, for the given target architecture, the particular kind of parallelism the programmer indicated as the most suitable for the application.

References (18)

  • F Baiardi et al.

    Architectural models and design methodologies for general-purpose highly-parallel computers

  • F Baiardi et al.

    Pisa parallel processing project on general-purpose highly-parallel computers

  • F Baiardi et al.

    P3M: An abstract architecture for massively parallel machines

  • R.S Bird

    Lectures on constructive functional programming

  • T.L Casavant et al.

    A taxonomy of scheduling in general-purpose distributed computing systems

    IEEE Trans. Software Engrg.

    (Feb. 1988)
  • K.M Chandy et al.

    Parallel Program Design: A Foundation

    (1988)
  • S.C.D Stark et al.

    Programming in C++

    (1989)
  • M Danelutto et al.

    High level language constructs for massively parallel computing

  • M Danelutto et al.

    P3L, The Pisa Parallel Programming Language

There are more references available in the full text version of this article.

Cited by (0)

View full text