The programming model of ASSIST, an environment for parallel and distributed portable applications

A software development system based upon integrated skeleton technology (ASSIST) is a proposal of a new programming environment oriented to the development of parallel and distributed high-performance applications according to a unified approach. The main goals are: high-level programmability and software productivity for complex multidisciplinary applications, including data-intensive and interactive software; performance portability across different platforms, in particular large-scale platforms and grids; effective reuse of parallel software; efficient evolution of applications through versions that scale according to the underlying technologies.The purpose of this paper is to show the principles of the proposed approach in terms of the programming model (successive papers will deal with the environment implementation and with performance evaluation). The features and the characteristics of the ASSIST programming model are described according to an operational semantics style and using examples to drive the presentation, to show the expressive power and to discuss the research issues.According to our previous experience in structured parallel programming, in ASSIST we wish to overcome some limitations of the classical skeletons approach to improve generality and flexibility, expressive power and efficiency for irregular, dynamic and interactive applications, as well as for complex combinations of task and data parallelism. A new paradigm, called "parallel module" (parmod) is defined which, in addition to expressing the semantics of several skeletons as particular cases, is able to express more general parallel and distributed program structures, including both data-flow and nondeterministic reactive computations. ASSIST allows the programmer to design the applications in the form of generic graphs of parallel components. Another distinguishing feature is that ASSIST modules are able to utilize external objects, including shared data structures and abstract objects (e.g. CORBA), with standard interfacing mechanisms. In turn, an ASSIST application can be reused and exported as a component for other applications, possibly expressed in different formalisms.

[1]  Robert C. Armstrong POET (Parallel Object-Oriented Environment and Toolkit) and frameworks for scientific distributed computing , 1997, Proceedings of the Thirtieth Hawaii International Conference on System Sciences.

[2]  Marco Vanneschi Parallel Paradigms for Scientific Computing , 2000 .

[3]  Dennis Gannon,et al.  PARDIS: A parallel approach to CORBA , 1997, Proceedings. The Sixth IEEE International Symposium on High Performance Distributed Computing (Cat. No.97TB100183).

[4]  Laura Ricci,et al.  Two Layers Distributed Shared Memory , 2001, HPCN Europe.

[5]  Domenico Talia,et al.  A Grid Programming Primer , 2001 .

[6]  Marco Vanneschi,et al.  PQE2000: HPC tools for industrial applications , 1998, IEEE Concurr..

[7]  Ami Marowka,et al.  The GRID: Blueprint for a New Computing Infrastructure , 2000, Parallel Distributed Comput. Pract..

[8]  Scott R. Kohn,et al.  Toward a Common Component Architecture for High-Performance Scientific Computing , 1999, HPDC.

[9]  Yike Guo,et al.  Parallel skeletons for structured composition , 1995, PPOPP '95.

[10]  Guy L. Steele,et al.  The High Performance Fortran Handbook , 1993 .

[11]  Yasuhiko Yokote Concurrent Programming Languages , 1990 .

[12]  John Darlington,et al.  A Software Architecture for HPC Grid Applications (Research Note) , 2000, Euro-Par.

[13]  James P. Ahrens,et al.  Ligature: Component Architecture for High Performance Applications , 2000, Int. J. High Perform. Comput. Appl..

[14]  A. Watson,et al.  OMG (Object Management Group) architecture and CORBA (common object request broker architecture) specification , 2002 .

[15]  Massachusett Framingham,et al.  The Common Object Request Broker: Architecture and Specification Version 3 , 2003 .

[16]  Massimo Coppola,et al.  High-performance data mining with skeleton-based structured parallel programming , 2001, Parallel Comput..

[17]  Massimo Coppola,et al.  STRUCTURED PARALLEL PROGRAMMING AND SHARED OBJECTS: EXPERIENCES IN DATA MINING CLASSIFIERS , 2002 .

[18]  Rice UniversityCORPORATE,et al.  High performance Fortran language specification , 1993 .

[19]  David B. Skillicorn,et al.  Models and languages for parallel computation , 1998, CSUR.

[20]  Matthew Haines,et al.  Approaches for integrating task and data parallelism , 1998, IEEE Concurr..

[21]  Rajkumar Buyya,et al.  The Grid: International Efforts in Global Computing , 2000 .

[22]  Marco Vanneschi Heterogeneous HPC Environments , 1998, Euro-Par.

[23]  Ian Foster,et al.  The Grid 2 - Blueprint for a New Computing Infrastructure, Second Edition , 1998, The Grid 2, 2nd Edition.

[24]  Murray Cole,et al.  Algorithmic Skeletons: Structured Management of Parallel Computation , 1989 .

[25]  Marco Danelutto,et al.  SkIE: A heterogeneous environment for HPC applications , 1999, Parallel Comput..