Results 1 - 10
of
17
Models and Languages for Parallel Computation
- ACM COMPUTING SURVEYS
, 1998
"... We survey parallel programming models and languages using 6 criteria [:] should be easy to program, have a software development methodology, be architecture-independent, be easy to understand, guranatee performance, and provide info about the cost of programs. ... We consider programming models in ..."
Abstract
-
Cited by 121 (4 self)
- Add to MetaCart
We survey parallel programming models and languages using 6 criteria [:] should be easy to program, have a software development methodology, be architecture-independent, be easy to understand, guranatee performance, and provide info about the cost of programs. ... We consider programming models in 6 categories, depending on the level of abstraction they provide.
Caml Flight: a Portable SPMD Extension of ML for Distributed Memory Multiprocessors
, 1995
"... Despite their vast deployment, distributed memory multiprocessors (DMM) still remain dicult to program, this is why portable and ecient languages are denitely needed. For the time being, parallelization tools like PVM provides a widely portable solution for low-level (explicit communications) progra ..."
Abstract
-
Cited by 24 (0 self)
- Add to MetaCart
Despite their vast deployment, distributed memory multiprocessors (DMM) still remain dicult to program, this is why portable and ecient languages are denitely needed. For the time being, parallelization tools like PVM provides a widely portable solution for low-level (explicit communications) programming. But PVM programs (C or Fortran with send and receive for communications) are hard to write and debug because of their undeterministic behaviors and rudimentary communication support. We propose an intermediate-level functional language called Caml Flight, which integrate a programming technique used by PVM programmers and featured in MPI. Right now, Caml Flight allows to write deterministic SPMD programs more easily. A long term goal is to be act as a target language for compilers of high-level languages. 1
A Polymorphic Type System for Bulk Synchronous Parallel ML
, 2003
"... The BSMLlib library is a library for Bulk Synchronous Parallel (BSP) programming with the functional language Objective Caml. ..."
Abstract
-
Cited by 11 (10 self)
- Add to MetaCart
The BSMLlib library is a library for Bulk Synchronous Parallel (BSP) programming with the functional language Objective Caml.
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 Calculus for Exploiting Data Parallelism on Recursively Defined Data
- In Proc. International Workshop on Theory and Practice on Parallel Programming, LNCS
, 1994
"... Array based data parallel programming can be generalized in two ways to make it an appropriate paradigm for parallel processing of general recursively defined data. The first is the introduction of a parallel evaluation mechanism for dynamically allocated recursively defined data. It achieves the ef ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
Array based data parallel programming can be generalized in two ways to make it an appropriate paradigm for parallel processing of general recursively defined data. The first is the introduction of a parallel evaluation mechanism for dynamically allocated recursively defined data. It achieves the effect of applying the same function to all the subterms of a given datum in parallel. The second is a new notion of recursion, which we call parallel recursion, for parallel evaluation of recursively defined data. In contrast with ordinary recursion, which only uses the final results of the recursive calls of its immediate subterms, the new recursion repeatedly transforms a recursive datum represented by a system of equations to another recursive datum by applying the same function to each of the equation simultaneously, until the final result is obtained. This mechanism exploits more parallelism and achieves significant speedup compared to the conventional parallel evaluation of recursive ...
Contribution to Semantics of a Data-Parallel Logic Programming Language
- Post International Logic Programming Symposium Workshop on Parallel Logic Programming Systems
, 1995
"... . We propose an alternate approach to the usual introduction of parallelism in logic programming. Instead of detecting the intrinsic parallelism by an automatic and complex data-flow analysis, or upgrading standard logic languages by explicit concurrent control structures leading to task-oriented la ..."
Abstract
-
Cited by 4 (4 self)
- Add to MetaCart
. We propose an alternate approach to the usual introduction of parallelism in logic programming. Instead of detecting the intrinsic parallelism by an automatic and complex data-flow analysis, or upgrading standard logic languages by explicit concurrent control structures leading to task-oriented languages, we tightly integrate the concepts of the data-parallel programming model and of logic programming in a kernel language, called DP-Log. It offers a simple centralized and synchronous vision to the programmer. We give this language a declarative and a distributed asynchronous operational semantics. The equivalence theorem of these semantics establishes the soundness of the implementation. The expressiveness of the language is illustrated on examples. Keywords : Logic programming --- Data-parallel languages --- Design of programming languages --- Semantics --- MIMD architectures Introduction The introduction of parallelism in programming languages enables to extend the expressiveness ...
Semantics of a Functional Bulk Synchronous Parallel Language with Imperative Features
, 2002
"... The Bulk Synchronous Parallel ML (BSML) is a functional language for Bulk Synchronous Parallel (BSP) programming, based on the sequential functional language Objective Caml. It is based on an extension of the -calculus by parallel operations on a parallel data structure named parallel vector, whi ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
The Bulk Synchronous Parallel ML (BSML) is a functional language for Bulk Synchronous Parallel (BSP) programming, based on the sequential functional language Objective Caml. It is based on an extension of the -calculus by parallel operations on a parallel data structure named parallel vector, which is given by intention. The Objective Caml language is a functional language but it also oers imperative features.
Supporting Coarse and Fine Grain Parallelism in an Extension of ML
- Parallel Processing: CONPAR 94 -- VAPP VI
, 1994
"... We have built an extension of Standard ML aimed at multicomputer platforms with distributed memories. The resulting language, paraML, differs from other extensions by including and differentiating both coarse-grained and fine-grained parallelism. The basis for coarse-grained parallelism in paraML is ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
We have built an extension of Standard ML aimed at multicomputer platforms with distributed memories. The resulting language, paraML, differs from other extensions by including and differentiating both coarse-grained and fine-grained parallelism. The basis for coarse-grained parallelism in paraML is process creation where there is no sharing of data, with communication between processes via asynchronous message passing to typed ports. Fine-grained parallelism may be introduced in a number of ways; we have investigated data parallelism and light-weight threads as per Concurrent ML. Our experiments with data parallelism and algorithmic skeletons illustrate that libraries can be constructed to hide process creation and message passing from the user. Furthermore, since processes may be arbitrarily nested, such libraries can be linked together in program hierarchies, allowing the integration of a range of parallel granularities to be used within a program in a modular and efficient manner. ...
Contribution to the Design and the Semantics of a Data-Parallel Logic Programming Language
, 1995
"... . We propose an alternate approach to the usual introduction of parallelism in logic programming. Instead of detecting the intrinsic parallelism by an automatic and complex data-flow analysis, or upgrading standard logic languages by explicit concurrent control structures leading to task-oriented la ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
. We propose an alternate approach to the usual introduction of parallelism in logic programming. Instead of detecting the intrinsic parallelism by an automatic and complex data-flow analysis, or upgrading standard logic languages by explicit concurrent control structures leading to task-oriented languages, we tightly integrate the concepts of the data-parallel programming model and of logic programming in a kernel language, called DP-Log. It offers a simple centralized and synchronous vision to the programmer. We give this language a declarative and a distributed asynchronous operational semantics. The equivalence theorem of these semantics establishes the soundness of the implementation. The expressiveness of the language is illustrated on examples. This document is an extended version of [18] which incorporates a missing proof. R'esum'e. Nous proposons une alternative aux approches classiques de l'introduction du parall'elisme en programmation logique. Au lieu de d'etecter le parall...
Towards Portable and Efficient Parallel Functional Languages
, 1994
"... This talk will outline work conducted in my group (in Montreal) during the last few years on the design of portable and efficient parallel functional languages. It offers a personal view of the tradeoffs forced upon language designers by the use of massively-parallel architectures. Our view of the a ..."
Abstract
- Add to MetaCart
This talk will outline work conducted in my group (in Montreal) during the last few years on the design of portable and efficient parallel functional languages. It offers a personal view of the tradeoffs forced upon language designers by the use of massively-parallel architectures. Our view of the area is based on the opposition between special-purpose and generalpurpose programming. This duality is mirrored by the semantic notions of macroscopic (or dataparallel) and microscopic (or communicationexplicit) parallel languages. Many research problems in parallel programming can be seen as a search for theoretical and software foundations of hybrid systems which will balance the relative advantages of general-purpose and special-purpose programming: portability and efficiency. In accordance with this view, we are engaged in two complementary activities. One is centered on a microscopic functional language called DPML. Another has been on a macroscopic language called MOA and now a semanti...

