MUPPET: A programming environment for message-based multiprocessors (Q1118386)

From MaRDI portal
scientific article
Language Label Description Also known as
English
MUPPET: A programming environment for message-based multiprocessors
scientific article

    Statements

    MUPPET: A programming environment for message-based multiprocessors (English)
    0 references
    0 references
    1988
    0 references
    As new parallel supercomputers for scientific computing become available the question of suitable programming envinronments gets more and more important. The paper describes such a system called MUPPET (multiprocessor programming environment). It consists of four parts: concurrent programming languages, programming environment (syntax editor, program templates, program library), application environment (e.g., multigrid expert system) and man-machine interface (graphics, algorithm animation). It is implemented on a high performance workstation connected by a local area network to a message-based multiprocessor (like the Suprenum machine which is under development in a German supercomputer project). The MUPPET programming paradigm is based on a parallel abstract machine LAM (local memory abstract machine). It consists of (parallel) processes which communicate by asynchronous message passing. Processes can create other processes and can terminate. An application problem formulated in an application oriented abstract machine is transformed to a LAM- implementation. Often the general LAM-implementation can be further transformed to a more specific one (e.g., with a ring, lattice or tree communication structure). Finally a mapping from the (specific) LAM to the physical machine has to be done (by the operating system or explicitly by the programmer). This mapping problem is discussed in more detail. After a general survey the authors give a simple model based on process graphs which are mapped onto processor graphs such that a cost function is minimized. This model is used to compare the performance of different mapping strategies of process graph families (ring, 2-D torus, 3-D torus, binary tree) to the Suprenum machine architecture. As a programming language supporting the MUPPET programming paradigm Concurrent Modula-2 is introduced. Programs in this language consist of a set of processes which communicate via SEND/RECEIVE statements. Asynchronous as well as synchronous and selective message passing is supported. Processes can be combined into sets for communication. An operation NEWTASK allows to create new processes during runtime. To illustrate the features of the language two simple example programs are given (bounded producer-consumer buffer, sieve of Erasthostenes). The example of matrix multiplication shows that usually several different process networks exist for a given problem. This leads to questions of the performance of the corresponding applications as well as the transformation between them. Finally a graphical tool for parallel programs called GONZO is briefly described. It consists of a specificator, a visualizer and an animator for parallel programs. Parallel programming environments are still an active research area. The authors conclude with a short summary of their experiences with MUPPET and an outlook on the next version.
    0 references
    0 references
    0 references
    0 references
    0 references
    0 references
    0 references
    parallel supercomputers
    0 references
    local area network
    0 references
    message-based multiprocessor
    0 references
    local memory abstract machine
    0 references
    mapping problem
    0 references
    Suprenum
    0 references
    Concurrent Modula-2
    0 references
    Parallel programming
    0 references
    0 references