Results 1 - 10
of
46
Components for high performance Grid programming in Grid.it
- Proc. of the Workshop on Component Models and Systems for Grid Applications, CoreGRID series
, 2005
"... Abstract This paper presents the main ideas of the high-performance component-based Grid programming environment of the Grid.it project. High-performance components are characterized by a programming model that integrates the concepts of structured parallelism, component interaction, compositionalit ..."
Abstract
-
Cited by 33 (22 self)
- Add to MetaCart
Abstract This paper presents the main ideas of the high-performance component-based Grid programming environment of the Grid.it project. High-performance components are characterized by a programming model that integrates the concepts of structured parallelism, component interaction, compositionality, and adaptivity. We show that ASSIST, the prototype of parallel programming environment currently under development at our group, is a suitable basis to capture all the desired features of the component model in a flexible and efficient manner. For the sake of interoperability, ASSIST modules or programs are automatically encapsulated in standard frameworks; currently, we are experimenting Web Services and the CORBA Component Model. Grid applications, built as compositions of ASSIST components and possibly other existing (legacy) components, are supported by an innovative Grid Abstract Machine, that includes essential abstractions of standard middleware services and a hierarchical Application Manager (AM). AM supports static allocation and dynamic reallocation of adaptive applications according to a performance contract, a reconfiguration strategy, and a performance model.
The Implementation of ASSIST, an Environment for Parallel and Distributed Programming
- Euro-Par 2003 Parallel Processing, number 2790 in LNCS
, 2003
"... We describe the implementation of ASSIST, a programming environment for parallel and distributed programs. Its coordination language is based of the parallel skeleton model, extended with new features to enhance expressiveness, parallel software reuse, software component integration and interfacing ..."
Abstract
-
Cited by 24 (17 self)
- Add to MetaCart
We describe the implementation of ASSIST, a programming environment for parallel and distributed programs. Its coordination language is based of the parallel skeleton model, extended with new features to enhance expressiveness, parallel software reuse, software component integration and interfacing to external resources. The compilation process and the structure of the run-time support of ASSIST are discussed with respect to the issues introduced by the new characteristics, presenting an analysis of the first test results.
SkIE: a heterogeneous environment for HPC applications
, 1999
"... Technological directions for innovative HPC software environments are discussed in this paper. We focus on industrial user requirements of heterogeneous multisciplinary applications, performance portability, rapid prototyping and software reuse, integration and interoperability of standard tools. Th ..."
Abstract
-
Cited by 23 (14 self)
- Add to MetaCart
Technological directions for innovative HPC software environments are discussed in this paper. We focus on industrial user requirements of heterogeneous multisciplinary applications, performance portability, rapid prototyping and software reuse, integration and interoperability of standard tools. The various issues are demonstrated with reference to the PQE2000 project and its programming environment SkIE (Skeleton-based Integrated Environment). SkIE includes a coordination language, SkIECL, allowing the designers to express, in a primitive and structured way, efficient combinations of data parallelism and task parallelism. The goal is achieving fast development and good efficiency for applications in different areas. Modules developed with standard languages and tools are encapsulated into SkIECL structures to form the global application. Performance models associated to the coordination language allow powerful optimizations to be introduced both at run time and at compile time witho...
Optimization Rules for Programming with Collective Operations
- IPPS/SPDP'99. 13th Int. Parallel Processing Symp. & 10th Symp. on Parallel and Distributed Processing
, 1999
"... We study how several collective operations like broadcast, reduction, scan, etc. can be composed efficiently in complex parallel programs. Our specific contributions are: (1) a formal framework for reasoning about collective operations; (2) a set of optimization rules which save communications by fu ..."
Abstract
-
Cited by 19 (6 self)
- Add to MetaCart
We study how several collective operations like broadcast, reduction, scan, etc. can be composed efficiently in complex parallel programs. Our specific contributions are: (1) a formal framework for reasoning about collective operations; (2) a set of optimization rules which save communications by fusing several collective operations into one; (3) performance estimates, which guide the application of optimization rules depending on the machine characteristics; (4) a simple case study with the first results of machine experiments.
Towards Parallel Programming by Transformation: The FAN Skeleton Framework
, 2001
"... A Functional Abstract Notation (FAN) is proposed for the specification and design of parallel algorithms by means of skeletons - high-level patterns with parallel semantics. The main weakness of the current programming systems based on skeletons is that the user is still responsible for finding the ..."
Abstract
-
Cited by 16 (8 self)
- Add to MetaCart
A Functional Abstract Notation (FAN) is proposed for the specification and design of parallel algorithms by means of skeletons - high-level patterns with parallel semantics. The main weakness of the current programming systems based on skeletons is that the user is still responsible for finding the most appropriate skeleton composition for a given application and a given parallel architecture. We describe a transformational framework for the development of skeletal programs which is aimed at filling this gap. The framework makes use of transformation rules which are semantic equivalences among skeleton compositions. For a given problem, an initial, possibly inefficient skeleton specification is refined by applying a sequence of transformations. Transformations are guided by a set of performance prediction models which forecast the behavior of each skeleton and the performance benefits of different rules. The design process is supported by a graphical tool which locates applicable transformations and provides performance estimates, thereby helping the programmer in navigating through the program refinement space. We give an overview of the FAN framework and exemplify its use with performance-directed program derivations for simple case studies. Our experience can be viewed as a first feasibility study of methods and tools for transformational, performance-directed parallel programming using skeletons.
Stream Parallel Skeleton Optimization
- in proceedings of the 11th IASTED International Conference on Parallel and Distributed Computing and Systems, MIT
, 1999
"... We discuss the properties of the composition of stream parallel skeletons such as pipelines and farms. By looking at the ideal performance gures assumed to hold for these skeletons, we show that any stream parallel skeleton composition can always be rewritten into an equivalent \normal form" skeleto ..."
Abstract
-
Cited by 14 (12 self)
- Add to MetaCart
We discuss the properties of the composition of stream parallel skeletons such as pipelines and farms. By looking at the ideal performance gures assumed to hold for these skeletons, we show that any stream parallel skeleton composition can always be rewritten into an equivalent \normal form" skeleton composition, delivering a service time which is equal or even better to the service time of the original skeleton composition, and achieving a better utilization of the processors used. The normal form is dened as a single farm built around a sequential worker code. Experimental results are discussed that validate this normal form. Keywords: skeletons, rewriting, stream parallelism. 1 Introduction Skeleton based programming models represent an interesting subject in the eld of parallel programming models. Cole introduced the skeleton concept in the late 80's [1]. Cole's skeletons represented parallelism exploitation patterns that can be used (instantiated) to model common parallel ap...
A Transformational Framework for Skeletal Programs: Overview and Case Study
- Parallel and Distributed Processing. IPPS/SPDP’99 Workshops Proceedings. Lecture Notes in Computer Science 1586
, 1999
"... A structured approach to parallel programming allows to construct applications by composing skeletons, i.e., recurring patterns of task- and data-parallelism. First academic and commercial experience with skeleton-based systems has demonstrated both the benefits of the approach and the lack of a spe ..."
Abstract
-
Cited by 13 (2 self)
- Add to MetaCart
A structured approach to parallel programming allows to construct applications by composing skeletons, i.e., recurring patterns of task- and data-parallelism. First academic and commercial experience with skeleton-based systems has demonstrated both the benefits of the approach and the lack of a special methodology for algorithm design and performance prediction. In the paper, we take a first step toward such a methodology, by developing a general transformational framework named FAN, and integrating it with an existing skeleton-based programming system, P3L. The framework includes a new functional abstract notation for expressing parallel algorithms, a set of semantics-preserving transformation rules, and analytical estimates of the rules' impact on the program performance. The use of FAN is demonstrated on a case study: we design a parallel algorithm for the maximum segment sum problem, translate the algorithm in P3L, and experiment with the target C+MPI code on a Fujitsu AP1000 parallel machine.
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.
A Framework for Experimenting With Structured Parallel Programming Environment Design
, 2003
"... ASSIST is a parallel programming environment aimed at providing programmers of complex parallel application with a suitable and e ective programming tool. Being based on algoritmical skeletons and coordination languages technologies, the programming environment relieves the programmer from a number ..."
Abstract
-
Cited by 11 (9 self)
- Add to MetaCart
ASSIST is a parallel programming environment aimed at providing programmers of complex parallel application with a suitable and e ective programming tool. Being based on algoritmical skeletons and coordination languages technologies, the programming environment relieves the programmer from a number of cumbersome, error prone activities that are required when using traditional parallel programming environments. ASSIST has been speci cally designed to be easily customizable in order to experiment different implementation techniques, solutions, algorithms or back-ends any time new features are required or new technologies become available. In this work we discuss how this goal has been achieved and how the current ASSIST programming environment has been already used to experiment solutions not implemented in the rst version of the tool.
Efficient High-Level Parallel Programming
- Theoretical Computer Science
, 1997
"... Algorithmic skeletons are polymorphic higher-order functions representing common parallelization patterns and implemented in parallel. They can be used as the building blocks of parallel and distributed applications by integrating them into a sequential language. In this paper, we present a new appr ..."
Abstract
-
Cited by 11 (0 self)
- Add to MetaCart
Algorithmic skeletons are polymorphic higher-order functions representing common parallelization patterns and implemented in parallel. They can be used as the building blocks of parallel and distributed applications by integrating them into a sequential language. In this paper, we present a new approach to programming with skeletons. We integrate the skeletons into an imperative host language enhanced with higher-order functions and currying, as well as with a polymorphic type system. We thus obtain a high-level programming language which can be implemented very efficiently. We then present a compile-time technique for the implementation of the functional features which has an important positive impact on the efficiency of the language. After describing a series of skeletons which work with distributed arrays, we give two examples of parallel algorithms implemented in our language, namely matrix multiplication and Gaussian elimination. Run-time measurements for these and other applicat...

