Results 1 -
8 of
8
HDC: A Higher-Order Language for Divide-and-Conquer
, 2000
"... We propose the higher-order functional style for the parallel programming of algorithms. The functional language HDC, a subset of the language Haskell, facilitates the clean integration of skeletons into a functional program. Skeletons are prede ned programming schemata with an ecient parallel imple ..."
Abstract
-
Cited by 13 (2 self)
- Add to MetaCart
We propose the higher-order functional style for the parallel programming of algorithms. The functional language HDC, a subset of the language Haskell, facilitates the clean integration of skeletons into a functional program. Skeletons are prede ned programming schemata with an ecient parallel implementation. We report on our compiler, which translates HDC programs into C+MPI, especially on the design decisions we made. Two small examples, the n queens problem and Karatsuba's polynomial multiplication, are presented to demonstrate the programming comfort and the speedup one can obtain.
Comparing Parallel Functional Languages: Programming and Performance
, 2002
"... This paper presents a practical evaluation and comparison of three stateof -the-art parallel functional languages. The evaluation is based on implementations of three typical symbolic computation programs, with performance measured on a Beowulf-class parallel architecture. ..."
Abstract
-
Cited by 9 (1 self)
- Add to MetaCart
This paper presents a practical evaluation and comparison of three stateof -the-art parallel functional languages. The evaluation is based on implementations of three typical symbolic computation programs, with performance measured on a Beowulf-class parallel architecture.
A Transformational Approach which Combines Size Inference and Program Optimization
- Semantics, Applications, and Implementation of Program Generation (SAIG’01), Lecture Notes in Computer Science 2196
, 2001
"... If functional programs are to be used for high-performance computing, efficient data representations and operations must be provided. Our contribution is a calculus for the analysis of the lengths of (nested) lists and a transformation into a form which is liberated from the chain of cons-operations ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
If functional programs are to be used for high-performance computing, efficient data representations and operations must be provided. Our contribution is a calculus for the analysis of the lengths of (nested) lists and a transformation into a form which is liberated from the chain of cons-operations and which sometimes permits array implementations even if the length depends on run-time values. A major advantage of functional programs vs. imperative programs is that dependence analysis is much easier, due to the absence of reassignments. One severe disadvantage of functional programs as of yet is that efficient, machine-oriented data structures (like the array) absolutely necessary for high-performance computing play a minor role in many language implementations since they do not harmonize with functional evaluation schemata (like graph reduction), which are at a higher level of abstraction. We propose to construct programs by composition of skeletons, i.e., functi...
Program optimization in the domain of high-performance parallelism
- In this volume
, 2004
"... Abstract. I consider the problem of the domain-specific optimization of programs. I review different approaches, discuss their potential, and sketch instances of them from the practice of high-performance parallelism. Readers need not be familiar with high-performance computing. 1 ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Abstract. I consider the problem of the domain-specific optimization of programs. I review different approaches, discuss their potential, and sketch instances of them from the practice of high-performance parallelism. Readers need not be familiar with high-performance computing. 1
Eskimo: Experimenting Skeletons On The Shared Address Model
- Parallel Processing Letters 13(3
, 2003
"... We discuss the lack of expressivity in some skeleton-based parallel programming frameworks. The problem is further exacerbated when approaching irregular problems and dealing with dynamic data structures. Shared memory programming has been ar- gued to have substantial ease of programming advantages ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
We discuss the lack of expressivity in some skeleton-based parallel programming frameworks. The problem is further exacerbated when approaching irregular problems and dealing with dynamic data structures. Shared memory programming has been ar- gued to have substantial ease of programming advantages for this class of problems. We present eskimo library which represents an attempt to merge the two programming models by introducing skeletons in a shared memory framework.
eskimo: Experimenting with Skeletons in the Shared Address Model
, 2003
"... We discuss the lack of expressivity in some skeleton-based parallel programming frameworks. The problem is further exacerbated when approaching irregular problems and dealing with dynamic data structures. Shared memory programming has been argued to have substantial ease of programming advantages fo ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
We discuss the lack of expressivity in some skeleton-based parallel programming frameworks. The problem is further exacerbated when approaching irregular problems and dealing with dynamic data structures. Shared memory programming has been argued to have substantial ease of programming advantages for this class of problems. We present the eskimo library which represents an attempt to merge the two programming models by introducing skeletons in a shared memory framework.
Lifting Sequntial Functions to Parallel Skeletons
"... This paper describes the transformation of (almost arbitrary) sequential functions on covers to parallel, collective operations (skeletons). This allows the direct re-use of existing, but sequential, code on parallel machines without the necessity to handcode the desired parallel operations. A neces ..."
Abstract
- Add to MetaCart
This paper describes the transformation of (almost arbitrary) sequential functions on covers to parallel, collective operations (skeletons). This allows the direct re-use of existing, but sequential, code on parallel machines without the necessity to handcode the desired parallel operations. A necessary pre-requisite for this skeleton lifting is the availability of a cover which holds the mapping information of the local subobjects, including their topology information. The lifting transformation distinguishes sequential values, which are available on each processor, from parallel values, which are only stored once. Accesses to parallel values are either ignored locally if they will be computed on another processor, or they induce communication messages to transfer the necessary data, depending on the behavior of the original function.
Chapter 5 Grid Programming with Java, RMI, and Skeletons
"... Grid systems aim to combine different kinds of computational resources connected by the Internet and make them easily available to the user community. Initial research on grid computing focused, quite naturally, on developing the enabling infrastructure, systems like Globus, Legion, and Condor being ..."
Abstract
- Add to MetaCart
Grid systems aim to combine different kinds of computational resources connected by the Internet and make them easily available to the user community. Initial research on grid computing focused, quite naturally, on developing the enabling infrastructure, systems like Globus, Legion, and Condor being the prominent examples presented in the “Gridbook ” [17]. Other efforts have

