Communications of the ACM - Special issue on parallelism
LUSTRE: a declarative language for real-time programming
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A parallel machine for multiset transformation and its programming style
Future Generation Computer Systems
Scheduling precedence graphs in systems with interprocessor communication times
SIAM Journal on Computing
On the productivity of recursive list definitions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Scans as Primitive Parallel Operations
IEEE Transactions on Computers
Compiling collection-oriented languages onto massively parallel computers
Journal of Parallel and Distributed Computing - Massively parallel computation
Making asynchronous parallelism safe for the world
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automatic transformation of series expressions into loops
ACM Transactions on Programming Languages and Systems (TOPLAS)
A bottom-up mechanism for behavior selection in an artificial creature
Proceedings of the first international conference on simulation of adaptive behavior on From animals to animats
Implementation of subset-equational programs
Journal of Logic Programming
The Paralation Model: Architecture-Independent Parallel Programming
The Paralation Model: Architecture-Independent Parallel Programming
Report on the programming language Euclid
ACM SIGPLAN Notices
Balanced Distributed Memory Parallel Computers
ICPP '93 Proceedings of the 1993 International Conference on Parallel Processing - Volume 01
PASM: A Partitionable SIMD/MIMD System for Image Processing and Pattern Recognition
IEEE Transactions on Computers
Some computer organizations and their effectiveness
IEEE Transactions on Computers
Hi-index | 0.00 |
In this article we advocate a declarative approach to data-parallelism to provide both parallelism expressiveness and efficient execution of data intensive applications. 8"1"2, an experimental language combining features of collection and stream oriented languages in a declarative framework, is presented. A new structure, the web, allows the programmer to write programmes as mathematical expressions and to implicitly express data and control parallelism. The first part of this paper proposes a classification of the various expressions of parallelism in programming languages. We show that hybrid execution models combining both data and control parallelism are possible and necessary to get an effective speedup. We sketch the advantage of the declarative style with respect to parallelism expression (application side) and exploitation (compiler side). In the second part we describe the 8"1"2 language and the concepts of collection, stream and web. A web is a multi-dimensional object that represents the successive values of a structured set of variables. Some 8"1"2 programmes are given to show the relevance of the web data structure for simulation applications (a resolution of O.D.P.E. and a simulation in artificial life). Examples of 8"1"2 programmes, involving the dynamic creation and destruction of webs, are also given. Such programmes are necessary for simulations of growing systems. In the third part, the implementation of a compiler restricted to the static part of the language is described. We focus on the process of web equations compilation towards a virtual SIMD machine. We also present the clock calculus, the scheduling inference and the distribution of the computations among the processing elements of a parallel computer.