Results 1 -
7 of
7
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...
The ProSet-Linda Approach to Prototyping Parallel Systems
- The Journal of Systems and Software
, 1998
"... This paper presents the ProSet-Linda approach which has been designed for prototyping parallel systems. ..."
Abstract
-
Cited by 6 (5 self)
- Add to MetaCart
This paper presents the ProSet-Linda approach which has been designed for prototyping parallel systems.
Provably Correct Vectorization of Nested-Parallel Programs
, 1996
"... The work/step framework provides a high-level cost model for nested data-parallel programming languages, allowing programmers to understand the e#ciency of their codes without concern for the eventual mapping of tasks to processors. Vectorization, or flattening, is the key technique for compiling ne ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
The work/step framework provides a high-level cost model for nested data-parallel programming languages, allowing programmers to understand the e#ciency of their codes without concern for the eventual mapping of tasks to processors. Vectorization, or flattening, is the key technique for compiling nested-parallel languages. This paper presents a formal study of vectorization, considering three low-level targets: the erew, bounded-contention crew, and crew variants of the vram. For each, we describe a variant of the cost model and prove the correctness of vectorization for that model. The models impose di#erent constraints on the set of programs and implementations that can be considered; we discuss these in detail. 1 Introduction Many complexity models (or cost models) have been proposed for parallel programs. High-level models such as Blelloch's step/work metrics for nesl [3, 2] and Skillicorn's calculus for bmf [13] are based on a rich, highly-parallel expression language with compo...
A Design Methodology For Data-Parallel Applications
- in AIP Design Meeting (12/95
, 1995
"... A methodology for the design and development of data parallel applications and components is presented. Dataparallelism is a well understood form of parallel computation, yet developing simple applications can involve substantial efforts to express the problem in low-level notations. We describe a p ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
A methodology for the design and development of data parallel applications and components is presented. Dataparallelism is a well understood form of parallel computation, yet developing simple applications can involve substantial efforts to express the problem in low-level notations. We describe a process of software development for data-parallel applications starting from high-level specifications, generating repeated refinements of designs to match different architectural models and performance constraints, enabling a development activity with cost-benefit analysis. Primary issues are algorithm choice, correctness and efficiency, followed by data decomposition, load balancing and messagepassing coordination. Development of a data-parallel multitarget tracking application is used as a case study, showing the progression from high to low-level refinements. We conclude by describing tool support for the process. 1.
Programming Languages and Systems for Prototyping Concurrent Applications
- ACM COMPUTING SURVEYS
, 2000
"... ... This paper presents a survey of programming languages and systems for prototyping concurrent applications to review the state of the art in this area. The surveyed approaches are classified with respect to the prototyping process ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
... This paper presents a survey of programming languages and systems for prototyping concurrent applications to review the state of the art in this area. The surveyed approaches are classified with respect to the prototyping process
The Proteus System for the Development of Parallel Applications
, 1994
"... Target Language In our methodology we have identified a small set of specifications that comprise the abstract target language (ATL) of the refinement system. These are specifications of types such as arrays, lists, tuples, integers, characters, etc., that commonly appear in programming languages. ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
Target Language In our methodology we have identified a small set of specifications that comprise the abstract target language (ATL) of the refinement system. These are specifications of types such as arrays, lists, tuples, integers, characters, etc., that commonly appear in programming languages. The refinement expresses a system as a definitional extension the ATL specs. Thus by associating a model---a concrete type in a specific programming language---with each ATL specification the complete system specification is compiled. 5.2.3 Proteus to DPL Translation The translation of Proteus to DPL consists of a series of major steps: 1. Expansion of iterator expressions into image and filter expressions. 2. Conversion to data-parallel form. 3. An interpretation of sequences into the nested sequence vocabulary of DPL. 4. Addition of storage management code. 5. Conversion into C. Source Mediating Target CORE-SEQ SEQ-AS-ARRAY ARRAY SEQ Component 1 System Component 2 CORE-SEQ SEQ-AS-ARRAY ...
Parallelization Agent for Legacy Codes
, 1996
"... nd lines of code. There are major hurdles in taking advantage of existing legacy codes. It is time consuming to manually parallelize (transform from sequential to parallel program) these codes. Also, the manual approach is prone to errors and debugging those errors is very difficult. As a result, th ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
nd lines of code. There are major hurdles in taking advantage of existing legacy codes. It is time consuming to manually parallelize (transform from sequential to parallel program) these codes. Also, the manual approach is prone to errors and debugging those errors is very difficult. As a result, the magnitude of manual efforts required for parallelizing legacy codes is prohibitively large. For example, the parallelization of the non-hydrostatic version of MM5 took about three and half years for a team of scientists at Argonne National Laboratory (ANL). Recently, we (in collaboration with ANL scientists) completed the parallelization of the hydrostatic version of MM5 and it took us two years. Difficulties in manual parallelization clearly point to a need for some type of automation. Several automatic and semi-automatic tools have been developed. Doreen Cheng has published an extensive survey [Cheng, 1993 ] with 94 entries for parallel programming tools out of which 9 are identified as

