Results 1 - 10
of
15
Some efficient solutions to the affine scheduling problem -- Part I One-dimensional Time
, 1996
"... Programs and systems of recurrence equations may be represented as sets of actions which are to be executed subject to precedence constraints. In many cases, actions may be labelled by integral vectors in some iteration domain, and precedence constraints may be described by affine relations. A s ..."
Abstract
-
Cited by 192 (18 self)
- Add to MetaCart
Programs and systems of recurrence equations may be represented as sets of actions which are to be executed subject to precedence constraints. In many cases, actions may be labelled by integral vectors in some iteration domain, and precedence constraints may be described by affine relations. A schedule for such a program is a function which assigns an execution date to each action. Knowledge of such a schedule allows one to estimate the intrinsic degree of parallelism of the program and to compile a parallel version for multiprocessor architectures or systolic arrays. This paper deals with the problem of finding closed form schedules as affine or piecewise affine functions of the iteration vector. An efficient algorithm is presented which reduces the scheduling problem to a parametric linear program of small size, which can be readily solved by an efficient algorithm.
PARTI Primitives for Unstructured and Block Structured Problems
, 1992
"... This paper describes a set of primitives (PARTI) developed to efficiently execute unstructured and block structured problems on distributed memory parallel machines. We present experimental data from a 3-D unstructured Euler solver run on the Intel Touchstone Delta to demonstrate the usefulness of o ..."
Abstract
-
Cited by 18 (5 self)
- Add to MetaCart
This paper describes a set of primitives (PARTI) developed to efficiently execute unstructured and block structured problems on distributed memory parallel machines. We present experimental data from a 3-D unstructured Euler solver run on the Intel Touchstone Delta to demonstrate the usefulness of our methods.
Memory Reuse Analysis in the Polyhedral Model
- Parallel Processing Letters
, 1996
"... In the context of developing a compiler for a Alpha, a functional dataparallel language based on systems of affine recurrence equations (SAREs), we address the problem of transforming scheduled single-assignment code to multiple assignment code. We show how the polyhedral model allows us to statical ..."
Abstract
-
Cited by 14 (1 self)
- Add to MetaCart
In the context of developing a compiler for a Alpha, a functional dataparallel language based on systems of affine recurrence equations (SAREs), we address the problem of transforming scheduled single-assignment code to multiple assignment code. We show how the polyhedral model allows us to statically compute the lifetimes of program variables, and thus enables us to derive necessary and sufficient conditions for reusing memory. 1. Introduction The methodology of automatic systolic array synthesis from Systems of Affine Recurrence Equations (SAREs) has a close bearing on parallelizing compilers and on efficient implementation of functional languages. To study this relationship, we are currently developing a compiler for Alpha [9], a functional, data parallel language based on SAREs defined over polyhedral index domains. The language semantics directly lead to sequential code based on demand driven evaluation. However, the resulting context switches can be avoided if the program is tra...
Network-Based Multicomputers: A Practical Supercomputer Architecture
- IEEE Transactions on Parallel and Distributed Systems
, 1996
"... Multicomputers built around a general network are an attractive architecture for a wide class of applications. The architecture provides many benefits compared with special-purpose approaches, including heterogeneity, reuse of application and system code, and sharing of resources. The architecture a ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
Multicomputers built around a general network are an attractive architecture for a wide class of applications. The architecture provides many benefits compared with special-purpose approaches, including heterogeneity, reuse of application and system code, and sharing of resources. The architecture also poses new challenges to both computer system implementors and users. First, traditional local-area networks do not have enough bandwidth and create a communication bottleneck, thus seriously limiting the set of applications that can be run effectively. Second, programmers have to deal with large bodies of code distributed over a variety of architectures, and work in an environment where both the network and nodes are shared with other users. Our experience in the Nectar project shows that it is possible to overcome these problems. We show how networks based on high-speed crossbar switches and efficient protocol implementations can support high bandwidth and low latency communication while still enjoying the flexibility of general networks, and we use three applications to demonstrate that network-based multicomputers are a practical architecture. We also show how the network traffic generated by this new class of applications poses severe requirements for networks.
CoPa: a Parallel Programming Language for Collections
- University of Pennsylvania, Institute for
, 1998
"... In this paper we propose a new framework for parallel processing of collections. We define a high-level language called CoPa for processing nested sets, bags, and sequences (a generalization of arrays and lists). CoPa includes most features found in query languages for object-oriented or object-rela ..."
Abstract
-
Cited by 8 (1 self)
- Add to MetaCart
In this paper we propose a new framework for parallel processing of collections. We define a high-level language called CoPa for processing nested sets, bags, and sequences (a generalization of arrays and lists). CoPa includes most features found in query languages for object-oriented or object-relational databases, and has, in addition, a powerful form of recursion not found in query languages. CoPa has a formal declarative definition of parallel complexity, as part of its specification. We prove the existence of a complexity-preserving compilation for CoPa, i.e. one which offers upper-bound guarantees for the parallel complexity of the compiled code. The majority of the compilation process is architecture-independent, using a parallel vector machine model (BVRAM). The BVRAM instructions form a sequence-algebra which is of independent interest, and have been carefully chosen to reconcile two conflicting demands: supporting the complexity-preserving compilation of CoPa's high-level con...
A Data-Parallel Declarative Language for the Simulation of Large Dynamical Systems and Its Compilation
, 1994
"... : 81/2 is a declarative data-parallel language designed for the simulation of large dynamical systems. Such simulations are of growing importance and they requires more and more computing power. In consequence, 81/2 introduces a new entity, the web, that combines features of collection-oriented and ..."
Abstract
-
Cited by 7 (5 self)
- Add to MetaCart
: 81/2 is a declarative data-parallel language designed for the simulation of large dynamical systems. Such simulations are of growing importance and they requires more and more computing power. In consequence, 81/2 introduces a new entity, the web, that combines features of collection-oriented and data-flow language to express data-, stream- and control-parallelism. In this paper, we present the language 81/2, some examples of dynamical systems programmed in 81/2 and we describe the compilation process of a 81/2 programme. Key-words: data-parallelism, collection-oriented languages, declarative languages, synchronous data-flow languages, simulation of dynamical systems. I. Introduction Nowadays, simulation of large dynamical systems represents the majority of supercomputers applications. In this article, a dynamical system refers as any application that modelizes space-time phenomena. Three usual examples are: . numerical resolution of partial differential equations [1] describing con...
Coarse-Grained Parallelism Using Metaobject Protocols
, 1991
"... Currently, there exist different approaches to parallelizing a computation at a coarse-grain. One approach is to parallelize a computation by placing compiler declarations in the source code. This approach makes it possible to conceptually separate the code describing a computation from the code (i. ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
Currently, there exist different approaches to parallelizing a computation at a coarse-grain. One approach is to parallelize a computation by placing compiler declarations in the source code. This approach makes it possible to conceptually separate the code describing a computation from the code (i.e. declarations) describing its parallelization. This approach also makes it possible to explicitly control a computation's parallelization, thereby providing an opportunity to increase the computation 's performance. However, there are cases when it is not reasonable to expect a desired mechanism for concurrency to be supported by the available, and fixed set of declarations, such as when the desired mechanism is highly specialized to a given computation and target architecture. In these cases, the declaration-based approach fails. In this thesis, we demonstrate that metaobject protocols can solve this problem. Under the metaobject protocol approach, a computation is parallelized by markin...
Semantics and compilation of sequential streams into a static SIMD code for the declarative data-parallel language
, 1996
"... 81/2 is a data-parallel language that relies on the notions of stream and collection in a high-level declarative framework. We describe in this research report semantics and compilation of sequential streams of collections for this language. Firstly, a denotational semantics is associated with recur ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
81/2 is a data-parallel language that relies on the notions of stream and collection in a high-level declarative framework. We describe in this research report semantics and compilation of sequential streams of collections for this language. Firstly, a denotational semantics is associated with recursively defined sequential 81/2 streams. Furthermore, we explain how the fixed point calculus corresponding to the foregoing semantics is implemented. Secondly, we describe an effective code generation scheme targetted towards either sequential, vector or SIMD architectures. Then we present four optimization processes for the generated code: the sharing of common control expressions, the optimization of delay copies, the loop fusion and the concatenation optimization. Next, some elements for the evaluation of the generated code are given. As a conclusion, we recall the overall effectiveness of the stream compilation and draw the future work. Key-words: stream, compilation of data-flow graphs...
Semantics and Compilation of Recursive Sequential Streams in 8 1/2
, 1997
"... Recursive definition of streams (infinite lists of values) have been proposed as a fundamental programming structure in various fields. A problem is to turn such expressive recursive definitions into an efficient imperative code for their evaluation. One of the main approach is to restrict the strea ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Recursive definition of streams (infinite lists of values) have been proposed as a fundamental programming structure in various fields. A problem is to turn such expressive recursive definitions into an efficient imperative code for their evaluation. One of the main approach is to restrict the stream expressions to interpret them as a temporal sequence of values. Such sequential stream rely on a clock analysis to decide at what time a new stream value must be produced. In this paper we present a denotational semantics of recursively defined sequential streams. We show how an efficient implementation can be derived as guarded statements wrapped into a single imperative loop.
A Domain-Specific Parallel Programming System. I: Design and Application to Ecological Modelling
, 1994
"... The goal of the Em project is to make parallel programming easily accessible to a broad community of scientists. Previous approaches such as the use of general parallel programming languages and parallelizing compilers for sequential languages have fallen short in this respect. The approach is to de ..."
Abstract
- Add to MetaCart
The goal of the Em project is to make parallel programming easily accessible to a broad community of scientists. Previous approaches such as the use of general parallel programming languages and parallelizing compilers for sequential languages have fallen short in this respect. The approach is to design a special purpose programming language which is oriented towards a specific area of application. The result is a specialized and effective scientific tool. Em is a high-level programming system which puts parallelism into the hands of scientists who are not sophisticated programmers. By restricting and simplifying the programming interface, Em eases both the conceptual task of the programmer and the analytical task of the compiler. The model of success is the financial spreadsheet, a specialized tool which makes programmers out of relatively naive end-users and makes computer technology broadly accessible to business. Here the initial prototype is described, motivated by practical ecological modelling problems.

