Software engineering for parallel systems

Abstract Current approaches to software engineering practice for parallel systems are reviewed. The parallel software designer has not only to address the issues involved in the characterization of the application domain and the underlying hardware platform, but, in many instances, the production of portable, scalable software is desirable. In order to accommodate these requirements, a number of specific techniques and tools have been proposed, and these are discussed in this review in the framework of the parallel software life-cycle. The paper outlines the role of formal methods in the practical production of parallel software, but its main focus is the emergence of development methodologies and environments. These include CASE tools and run-time support systems, as well as the use of methods taken from experience of conventional software development. Because of the particular emphasis on performance of parallel systems, work on performance evaluation and monitoring systems is considered.

[1]  Heinz Oswald,et al.  An environment for specifying and executing hierarchical Petri nets , 1990, [1990] Proceedings. 12th International Conference on Software Engineering.

[2]  Eugene Levin,et al.  Grand challenges to computation science , 1989, CACM.

[3]  Thomas Bemmerl,et al.  The TOPSYS Architecture , 1990, CONPAR.

[4]  Robert G. Babb,et al.  Parallel Processing with Large-Grain Data Flow Techniques , 1984, Computer.

[5]  Jeff Magee,et al.  Dynamic Configuration for Distributed Systems , 1985, IEEE Transactions on Software Engineering.

[6]  Alan Burns,et al.  Hrt-Hood: A Structured Design Method for Hard Real-Time ADA Systems , 1995 .

[7]  Hassan Gomaa Software development of real-time systems , 1986, CACM.

[8]  George Bate Mascot 3: an informal introductory tutorial , 1986 .

[9]  Stefano Russo,et al.  Use of GSPNs for concurrent software validation in EPOCA , 1994, Inf. Softw. Technol..

[10]  Dick Knowles Mapping a Mascot 3 design into Occam , 1990, Softw. Eng. J..

[11]  Ian J. Walker Requirements of an object-oriented design method , 1992, Softw. Eng. J..

[12]  Nicholas Carriero,et al.  Applications experience with Linda , 1988, PPEALS '88.

[13]  Kevin Steer Methodologies and tools for parallel processing , 1991 .

[14]  Gregory R. Andrews,et al.  Concurrent programming - principles and practice , 1991 .

[15]  Ian Gorton,et al.  Parallel software engineering with PARSE , 1993, Proceedings of 1993 IEEE 17th International Computer Software and Applications Conference COMPSAC '93.

[16]  Naranker Dulay,et al.  Structuring parallel and distributed programs , 1993, Softw. Eng. J..

[17]  Richard Taylor,et al.  Maritxu: Generic Visualization of Highly Parallel Processing , 1992, Programming Environments for Parallel Computing.

[18]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[19]  Richard F. Vidale,et al.  Analysis of an Ada System Using Coloured Petri Nets and Occurrence Graphs , 1992, Application and Theory of Petri Nets.

[20]  Jeff Magee,et al.  Graphical configuration programming , 1989, Computer.

[21]  Monica S. Lam,et al.  Jade: a high-level, machine-independent language for parallel programming , 1993, Computer.

[22]  Manfred Broy,et al.  Towards a Design Methodology for Distributed Systems , 1989 .

[23]  Bernd Mohr,et al.  SIMPLE: A Performance Evaluation Tool Environment for Parallel and Distributed Systems , 1991, EDMCC.

[24]  Sol M. Shatz,et al.  Introduction to Distributed-Software Engineering , 1987, Computer.

[25]  David Lorge Parnas,et al.  A rational design process: How and why to fake it , 1986, IEEE Transactions on Software Engineering.

[26]  Rance Cleaveland,et al.  The Concurrency Workbench , 1990, Automatic Verification Methods for Finite State Systems.

[27]  Laura B. Linden Parallel program visualization using ParVis , 1990 .

[28]  Cherri M. Pancake,et al.  Where are we headed? , 1991, CACM.

[29]  Dennis B. Mulcare,et al.  Higher-level statecharts for prototyping architectural dynamics , 1992, [1992 Proceedings] The Third International Workshop on Rapid System Prototyping.

[30]  David Harel,et al.  On visual formalisms , 1988, CACM.

[31]  Ottmar Krämer-Fuhrmann,et al.  GRACIA: a software environment for graphical specification, automatic configuration and animation of parallel programs , 1991, ICS '91.

[32]  Morris Sloman,et al.  Configuring object-based distributed programs in REX , 1992, Softw. Eng. J..

[33]  G. A. Geist,et al.  Portable Instrumented Communication Library , 1993 .

[34]  Glynn Winskel,et al.  Models for Concurrency , 1992 .

[35]  Connie U. Smith,et al.  Performance Engineering of Software Systems , 1990, SIGMETRICS Perform. Evaluation Rev..

[36]  Thomas Bemmerl,et al.  Adapting the Portable Performance Measurement Tool PATOP to the Multi-Transputer Monitoring System DELTA-T , 1992, Programming Environments for Parallel Computing.

[37]  Brigitte Plateau,et al.  Modelling parallel program behaviour in ALPES , 1994, Inf. Softw. Technol..

[38]  Anthony J. G. Hey Experiments in MIMD Parallelism , 1989, PARLE.

[39]  L. C. West Picosecond Integrated Optical Logic , 1987, Computer.

[40]  Stephen S. Yau,et al.  A survey of software design techniques , 1986, IEEE Transactions on Software Engineering.

[41]  Ian Gorton Parallel program design using high-level Petri nets , 1993, Concurr. Pract. Exp..

[42]  Bo Ingvar Sandén,et al.  Entity-life modeling and structured analysis in real-time software design—a comparison , 1989, CACM.

[43]  Wolfgang Reisig,et al.  Combining Petri Nets and Other Formal Methods , 1992, Application and Theory of Petri Nets.

[44]  Robert de Simone,et al.  Process Calculi, from Theory to Practice: Verification Tools , 1989, Automatic Verification Methods for Finite State Systems.

[45]  Jeff Magee,et al.  The Evolving Philosophers Problem: Dynamic Change Management , 1990, IEEE Trans. Software Eng..

[46]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

[47]  Brigitte Plateau,et al.  Building Synthetic Parallel Programs: the Project ALPES , 1992, Programming Environments for Parallel Computing.

[48]  M. R. van Steen,et al.  ADL: a graphical design language for real time parallel applications , 1993 .

[49]  John R. Cameron,et al.  An overview of JSD , 1986, IEEE Transactions on Software Engineering.

[50]  A. Pnueli,et al.  STATEMATE: a working environment for the development of complex reactive systems , 1988, [1988] Proceedings. The Third Israel Conference on Computer Systems and Software Engineering.

[51]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[52]  K. Mani Chandy,et al.  Parallel programming in 2001 , 1991, IEEE Software.

[53]  Ken Jackson Mascot 3 and Ada , 1986, Softw. Eng. J..

[54]  Christof Ebert Specifying, Designing and Rapid Prototyping Computer Systems with Structured Petri Nets , 1992 .

[55]  Bo Ingvar Sandén,et al.  An entity-life modeling approach to the design of concurrent software , 1989, Commun. ACM.

[56]  Hugo Simpson,et al.  The Mascot method , 1986, Softw. Eng. J..

[57]  Ottmar Krämer-Fuhrmann,et al.  A Graphical programming Environment for Parallel Embedded Systems , 1992, Programming Environments for Parallel Computing.

[58]  Jack J. Dongarra,et al.  Visualization and debugging in a heterogeneous environment , 1993, Computer.

[59]  Mary K. Vernon,et al.  SARA (System ARchitects Apprentice): Modeling, analysis, and simulation support for design of concurrent systems , 1986, IEEE Transactions on Software Engineering.

[60]  Grady Booch,et al.  Object-oriented development , 1986, IEEE Transactions on Software Engineering.

[61]  Don Allen,et al.  Data Visualization and Performance Analysis in the Prism Programming Environment , 1992, Programming Environments for Parallel Computing.

[62]  James R. McGraw,et al.  Exploiting multiprocessors: issues and options , 1987 .

[63]  James C. Browne,et al.  CODE: a unified approach to parallel programming , 1989, IEEE Software.

[64]  M.-Y. Wu,et al.  Computer-aided programming for message-passing systems: problems and solutions , 1989, Proc. IEEE.

[65]  Charles Richter,et al.  VERDI: A Visual Environment for Designing Distributed Systems , 1990, J. Parallel Distributed Comput..

[66]  Vaidy S. Sunderam,et al.  PVM: A Framework for Parallel Distributed Computing , 1990, Concurr. Pract. Exp..

[67]  Naranker Dulay,et al.  MP: A Programming Environment for Multicomputers , 1992, Programming Environments for Parallel Computing.

[68]  Hassan Gomaa Software design methods for concurrent and real-time systems , 1993, SEI series in software engineering.

[69]  David B. Skillicorn Practical Concurrent Programming for Parallel Machines , 1991, Comput. J..

[70]  Alois Ferscha,et al.  A Petri Net Approach for Performance Oriented Parallel Program Design , 1992, J. Parallel Distributed Comput..

[71]  Hassan Gomaa,et al.  A software design method for real-time systems , 1984, CACM.

[72]  Jack Dongarra,et al.  SCHEDULE: Tools for developing and analyzing parallel Fortran programs , 1986 .

[73]  Peter Dauphin,et al.  Model-driven Validation of Parallel Programs based on Event Traces , 1992, Programming Environments for Parallel Computing.

[74]  Kurt Jensen,et al.  Coloured Petri Nets: Basic Concepts, Analysis Methods and Practical Use. Vol. 2, Analysis Methods , 1992 .

[75]  K. Mani Chandy Parallel program design , 1989 .

[76]  Paddy Nixon,et al.  Engineering safety-related parallel systems , 1994, Inf. Softw. Technol..

[77]  Mario Barbacci,et al.  Durra: a structure description language for developing distributed applications , 1993, Softw. Eng. J..

[78]  Ken Shumate,et al.  Designing large real-time systems with Ada , 1988, CACM.

[79]  J. C. Browne,et al.  Graphical programming for simulation of computer systems , 1985, ANSS '85.

[80]  Jon M. Kerridge The Design of the IDIOMS Parallel Database Machine , 1991, BNCOD.

[81]  Ian Glendinning,et al.  Generic Visualization and Performance Monitoring Tools for Message Passing Parallel Systems , 1992, Programming Environments for Parallel Computing.

[82]  Paul T. Ward,et al.  The transformation schema: An extension of the data flow diagram to represent control and timing , 1986, IEEE Transactions on Software Engineering.

[83]  Hesham El-Rewini,et al.  Introduction to Parallel Computing , 1992 .

[84]  Gianfranco Balbo,et al.  Performance Issues in Parallel Programming , 1992, Application and Theory of Petri Nets.

[85]  Sol M. Shatz,et al.  Design and Implementation of a Petri Net Based Toolkit for Ada Tasking Analysis , 1990, IEEE Trans. Parallel Distributed Syst..

[86]  Cherri M. Pancake,et al.  Do parallel languages respond to the needs of scientific programmers? , 1990, Computer.