Results 1 - 10
of
19
The programming model of ASSIST, an environment for parallel and distributed portable applications
, 2002
"... A software development system based uponin0/----E30 skeleton technology (ASSIST)i a proposal of a new programmi/ enviammi/ oriiam to the development of parallel and di0 tri0C/3 hiC/3C/0:/EEC90 applii0:/E accordi to auniCfl approach. The mai goals are: hi:0CCP--C programmabiQQ9 and softwareproductiC/ ..."
Abstract
-
Cited by 73 (19 self)
- Add to MetaCart
A software development system based uponin0/----E30 skeleton technology (ASSIST)i a proposal of a new programmi/ enviammi/ oriiam to the development of parallel and di0 tri0C/3 hiC/3C/0:/EEC90 applii0:/E accordi to auniCfl approach. The mai goals are: hi:0CCP--C programmabiQQ9 and softwareproductiC/Q for complexmulti0PC/PE0:/33 appli0 tipli ipli0P data-iPC/PE0: andi0/fl3C90:/ software; performance portabince across dioss ent platforms,i partims,0 large-scale platforms andgri/Q e#ecti-- reuse of parallel software; e#ciwa evoluti; ofappli30:/CC through versih0 that scaleaccordi9 to theunderlyi: technologiCC The purpose ofthi paperi to show the pri99fl30: of the proposed approachi terms of the programmifl model(successi0 paperswie deal wil theenvi39--0:/ ivi39--0:/flfl# andwiE performance evaluatice0 The features and thecharacteri###3 of the ASSIST programmiC model aredescri3fl accordifl to anoperati:flQ semanti style andusiP examples todrifl the presentati3Q to show the expressi: power and todiP--#-- the research iesear Accordih to ourpreviC9 experi90: i structured parallelprogrammi3C i ASSIST we wi0 to overcome some li0fl3--PE0: of theclassi--fl skeletog approach toi0P--Q/ generalifl and flexi/0:flPP expressiP power ande#ci/CE fori0/3--Qfl0: dynami andi0P--39--0:fl appli39 tipli as well as for complexcombi0flEQ3C of task and dataparalleli:fl A newparadi#/ www.elsevi r.com/locate/parco Parallel Computi0 28 (2002) 1709--1732 qThi work has been supported by the Italian Space Agency: ASI-PQE2000 Project on "Development of Earth Observatis Applit0flP ns by means of Systems and Tools forHiPfl--P--0:Q# anceComputiQ0:Q and by theNatio3fl ResearchCoearc :Agenzi 2000 Project on "DevelopmentEnviPC#3 nt forMulti3E0:3 rm and Multi/0: uageHi0fl9fl--Q0 rmanceAppli/flQ-- ns, Based up...
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.
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.
AssistConf: a Grid configuration tool for the ASSIST parallel programming environment
- In Proceedings of the Eleventh Euromicro Conference on Parallel, Distributed and Network-Based Processing
, 2003
"... This paper presents AssistConf, a graphical user interface designed to configure an ASSIST program and to run it on a Grid platform. ASSIST (A Software development System based upon Integrated Skeleton Technology) is a new programming environment for the development of parallel and distributed high- ..."
Abstract
-
Cited by 12 (7 self)
- Add to MetaCart
This paper presents AssistConf, a graphical user interface designed to configure an ASSIST program and to run it on a Grid platform. ASSIST (A Software development System based upon Integrated Skeleton Technology) is a new programming environment for the development of parallel and distributed high-performance applications. The main goals of ASSIST are allowing high-level programmability and software productivity for complex multidisciplinary applications, and performance portability across different platforms, including homogenous parallel machines and cluster/Beowulf systems, heterogeneous clusters, and computational Grids. AssistConf is used to configure the ASSIST program and establish a mapping between the program modules and the most suitable machines in the Grid candidate to execute them. It simplifies the creation of the XML ASSIST configuration file, giving users the machines to be used for execution. Finally, the configuration program over the Grid.
Skeletons and Transformations in an Integrated Parallel Programming Environment
, 1999
"... . We sketch an integrated environment for the systematic development of parallel and distributed programs. Our approach allows the user to construct complex applications by composing and transforming skeletons, i.e., recurring patterns of task and data parallelism. First academic and commercial ..."
Abstract
-
Cited by 10 (2 self)
- Add to MetaCart
. We sketch an integrated environment for the systematic development of parallel and distributed programs. Our approach allows the user to construct complex applications by composing and transforming 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 but also the lack of a dedicated set of methods for algorithm design and performance prediction. We take a first step towards such a set of methods by proposing an environment which integrates a transformational framework, called FAN, with two existing skeleton-based programming systems: P3L and SkIE. 1 Introduction Current difficulties in low-level parallel and distributed programming using, e.g., the MPI (Message Passing Interface) standard [14] can be addressed by high-level programming models together with convenient programming environments. A number of parallel programming environments ar...
A Data and Task Parallel Image Processing Environment
- Parallel Computing
, 2001
"... The paper presents a data and task paxallel environment for parallelizing low-level image processing applications on distributed memory systems. Image processing operators axe paxallelized by data decomposition using algorithmic skeletons. At the application level we use task decomposition, base ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
The paper presents a data and task paxallel environment for parallelizing low-level image processing applications on distributed memory systems. Image processing operators axe paxallelized by data decomposition using algorithmic skeletons. At the application level we use task decomposition, based on the Image Application Task Graph.
SKiPPER - A Skeleton-Based Parallel Programming Environment for Real-Time Image Processing Applications
, 1999
"... . This paper presents SKiPPER, a programming environment dedicated to the fast prototyping of parallel vision algorithms on MIMDDM platforms. SKiPPER is based upon the concept of algorithmic skeletons, i.e. higher order program constructs encapsulating recurring forms of parallel computations and h ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
. This paper presents SKiPPER, a programming environment dedicated to the fast prototyping of parallel vision algorithms on MIMDDM platforms. SKiPPER is based upon the concept of algorithmic skeletons, i.e. higher order program constructs encapsulating recurring forms of parallel computations and hiding their low-level implementation details. Each skeleton is given an architecture-independent functional (but executable) specification and a portable implementation as a generic process template. The source program is a purely functional specification of the algorithm in which all parallelism is made explicit by means of composing instances of selected skeletons, each instance taking as parameters the application specific sequential functions written in C. SKiPPER compiles this specification down to a process graph in which nodes correspond to sequential functions and/or skeleton control processes and edges to communications. This graph is then mapped onto the target topology using a thi...
A Compiler for HDC
- Fakultt fr Mathematik und Informatik
, 1999
"... We present a compiler for the functional language HDC, which aims at the generation of efficient code from high-level programs. HDC, which is syntactically a subset of the widely used language Haskell, facilitates the clean integration of skeletons with a predefined efficient parallel implementation ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
We present a compiler for the functional language HDC, which aims at the generation of efficient code from high-level programs. HDC, which is syntactically a subset of the widely used language Haskell, facilitates the clean integration of skeletons with a predefined efficient parallel implementation into a functional program. Skeletons are higher-order functions which represent program schemata that can be specialized by providing customizing functions as parameters. The only restriction on customizing functions is their type. Skeletons can be composed of skeletons again. With HDC, we focus on the divide-and-conquer paradigm, which has a high potential for an efficient parallelization. We describe the most important phases of the compiler: desugaring, elimination of higher-order functions, generation of an optimized directed acyclic graph and code generation, with a focus on the integration of skeletons. The effect of the transformations on the target code is demonstrated on the examp...
Automap: A Parallel Coordination-based Programming System
, 1997
"... High Performance Computing (HPC) has been defined as a key enabling technology for industrial competitiveness. The successful use of parallel computer technology requires the development of techniques to substantially reduce the complexity and cost of software development. In particular in commercia ..."
Abstract
-
Cited by 4 (4 self)
- Add to MetaCart
High Performance Computing (HPC) has been defined as a key enabling technology for industrial competitiveness. The successful use of parallel computer technology requires the development of techniques to substantially reduce the complexity and cost of software development. In particular in commercial or industrial applications the required parallel structures tend to be complex, dynamic, or irregular, and in this environment the time to produce and modify software is as important as ultimate execution speed. Therefore, the fairly regular structures often found in the so called "Grand Challenge" applications (often used as benchmark applications for parallel compilation systems) are not very representative of `real life' applications. In response to that, AUTOMAP will develop a high-level, application-oriented parallel programming system based on coordination-based structured programming. The parallel language in the system will be aimed at defining coarse grained tasks and control flow...

