Architecture Independent Analysis of Parallel Programs (original) (raw)

On architecture independent design and analysis of parallel programs

1996

The presence of a universal machine model for serial algorithm design, namely the von Neumann model, has been one of the key ingredients of the success of uniprocessors. The presence of such a model makes it possible for an algorithm to be ported across a wide range of uniprocessors efficiently. Universal models proposed for parallel computers however tend to be highly limited in the range of parallel computers they can efficiently cover. Consequently, portability of parallel programs is attained at the expense of loss of efficiency.

An architecture-independent software development approach for parallel processing systems

Proceedings Nineteenth Annual International Computer Software and Applications Conference (COMPSAC'95), 1995

In this paper, a n architecture-independent software development approach for parallel processing systems is presented. T h i s approach is based o n the parallel objectoriented and functional computation model PROOF and separates the architecture dependent issues f r o m software development. It also facilitates software developm e n t for any parallel processing systems by relieving the programmers f r o m the consideration of processor topology and various parallelization aspects of the software. O u r approach allows the exploitation. of parallelism at both levels of granularity: object level and method level, ihereby making our approach effective f o r software development f o r various MIMD computers. Software developed using our approach will reflect the parallel structure of the problem. space which will make the software more understandable and modifiable. A framework consisting of object-oriented analysis, object-design, coding and transformation phases is presented f o r software development f o r parallel processing systems. An example is given t o illustrate this approach. keywords: architecture-independent software development, object-oriented paradigm, functional paradigm, parallel processing. 'This research was supported by Rome Laboratory, U.S. Air Force Systems Command under contract numbers F30602-91-C. 0045 and F30602-93-0054.

Platform-independent modeling of explicitly parallel programs

2010

We propose a model-driven approach to parallel programming of SPMD-style, explicitly parallel computations. We define an executable, platform-independent modeling language with explicitly parallel control and data flow for an abstract parallel computer with shared address space, and implement it as an extension of UML2 activity diagrams and a generator for Fork source code that can be compiled and executed on a high-level abstract parallel machine simulator. We also sketch how to refine the modeling language to address more realistic parallel platforms.

Abstractions for portable, scalable parallel programming

IEEE Transactions on Parallel and Distributed Systems, 1998

In parallel programming, the need to manage communication costs, load imbalance, and irregularities in the computation puts substantial demands on the programmer. Key properties of the architecture, such as the number of processors and the costs of communication, must be exploited to achieve good performance. Coding these properties directly into a program compromises the portability and exibility of the code because signicant changes are usually needed to port or enhance the program. We describe a parallel programming model that supports the concise, independent description of key aspects of a parallel program|such as data distribution, communication, and boundary conditions|without reference to machine idiosyncrasies. The independence of such components improves portability by allowing the components of a program to be tuned independently, and encourages reuse by supporting the composition of existing components. The architecture-sensitive aspects of a computation are isolated from the rest of the program, reducing the need to make extensive changes to port a program. This model is eective in exploiting both data parallelism and functional parallelism. This paper provides programming examples, compares this work to related languages, and presents performance results.

On the Portability and Efficiency of Parallel Algorithms and Software

Parallel Computing, 1996

Parallel software development must face the fact that different architectures require different implementations. Flexibility in modifying parallel methods and software is necessary because the efficiency of algorithms is dependent on the characteristics of the target computer. Furthermore different parallel computers require different implementations of data in data-structures. The required flexibility is obtained by identifying abstraction levels and development steps in parallel algorithm and software development. The approach which is proposed ensures that all choices in the design are properly recognised and documented. As a result it is simple to compare the characteristics of a new parallel computer with the characteristics that are used in the software. In this way the development itself becomes more portable and thus less architecture dependent. ' Email: (tencate,edwinJ@pa.twi.tudelft.nl. 0167-8191/%/$15.00 0 1996 Elsevier Science B.V. All rights reserved PII SOl67-8191(96)00043-9 H.H. fen Care, EAH. Vollebregt/Parallel

PRO: A model for the design and analysis of efficient and scalable parallel algorithms

2006

We present a new parallel computation model called the Parallel Resource-Optimal computation model. PRO is a framework being proposed to enable the design of efficient and scalable parallel algorithms in an architecture-independent manner, and to simplify the analysis of such algorithms. A focus on three key features distinguishes PRO from existing parallel computation models. First, the design and analysis of a parallel algorithm in the PRO model is performed relative to the time and space complexity of a sequential reference algorithm. Second, a PRO algorithm is required to be both time-and space-optimal relative to the reference sequential algorithm. Third, the quality of a PRO algorithm is measured by the maximum number of processors that can be employed while optimality is maintained. Inspired by the Bulk Synchronous Parallel model, an algorithm in the PRO model is organized as a sequence of supersteps. Each superstep consists of distinct computation and communication phases, but the supersteps are not required to be separated by synchronization barriers. Both computation and communication costs are accounted for in the runtime analysis of a PRO algorithm. Experimental results on parallel algorithms designed using the PRO model-and implemented using its accompanying programming environment SSCRAP-demonstrate that the model indeed delivers efficient and scalable implementations on a wide range of platforms.

Architectural Adaptability in Parallel Programming via Control Abstraction

1991

Parallel programming involves finding the potential parallelism in an application, choosing an algorithm, and mapping it to the architecture at hand. Since a typical algorithm has much more potential parallelism than any single architecture can effectively exploit, we usually program the parallelism that the available control constructs easily express and that the given architecture efficiently exploits. This approach produces programs that exhibit much less parallelism than the original algorithm and whose performance depends entirely on the underlying architecture. To port such a program to a new architecture, we must rewrite the program to remove any ineffective parallelism and to recover any lost parallelism appropriate for the new machine.

Intermediate Code Generation for Portable Scalable, Compilers. Architecture Independent Data Parallelism: The Preliminaries

1993

This paper introduces the goals of the Portable, Scalable, Architecture Independent (PSI) Compiler Project for Data Parallel Languages at the University of Missouri-Rolla. A goal of this project is to produce a subcompiler for data parallel scientific programming languages such as HPF(High Performance Fortran) where the input grammar is translated to a three-address code intermediate language. Ultimately we plan to integrate our work into automated synthesis systems for scientific programming because we feel that it should not be necessary to learn complicated programming techniques to use multiprocessor computers or networks of computers effectively. This paper shows how to compile a data parallel language to an arbitrary multiprocessor topology or network of CPUs given the number of processors, length of vector registers, and total number of components in an array assuming a message passing, distributed memory paradigm of send and receive. We emphasize that this paradigm is not on...