Results 1 -
7 of
7
An advanced environment supporting structured parallel programming in Java
- FUTURE GENERATION COMPUTER SYSTEMS
, 2003
"... In this work we present Lithium, a pure Java structured parallel programming environment based on skeletons (common, reusable and efficient parallelism exploitation patterns). Lithium is implemented as a Java package and represents both the first skeleton based programming environment in Java and th ..."
Abstract
-
Cited by 36 (21 self)
- Add to MetaCart
In this work we present Lithium, a pure Java structured parallel programming environment based on skeletons (common, reusable and efficient parallelism exploitation patterns). Lithium is implemented as a Java package and represents both the first skeleton based programming environment in Java and the first complete skeleton based Java environment exploiting macro-data flow implementation techniques. Lithium supports a set of user code optimizations which are based on skeleton rewriting techniques. These optimizations improve both absolute performance and resource usage with respect to original user code. Parallel programs developed using the library run on any network of workstations provided the workstations support plain JRE. The paper describes the library implementation, outlines the optimization techniques used and eventually presents the performance results obtained on both synthetic and real applications.
Dynamic Run Time Support for Skeletons
- Proceedings of the International Conference ParCo99, volume Parallel Computing Fundamentals & Applications
, 1999
"... We propose a new implementation model for structured parallel programming models based on skeletons. The model is aimed at overcoming some of the problems observed in traditional, template based implementations of skeleton languages, while preserving all the positive features of structured parallel ..."
Abstract
-
Cited by 9 (8 self)
- Add to MetaCart
We propose a new implementation model for structured parallel programming models based on skeletons. The model is aimed at overcoming some of the problems observed in traditional, template based implementations of skeleton languages, while preserving all the positive features of structured parallel programming models. The proposed implementation model does not rely on static process networks like the template based implementation model for skeletons. It rather implements skeleton programs by properly scheduling macro data-flow instructions (corresponding to the sequential portions of code appearing in the skeleton code) to a set of macro data-flow interpreters running on the processing elements of the target architecture. We discuss some preliminary experimental results demonstrating the feasibility and effectiveness of our approach.
Parallel Functional Reactive Programming
- In Practical Aspects of Declarative Languages, Volume 1753 of LNCS
, 2000
"... Abstract. In this paper, we demonstrate how Functional Reactive Programming (FRP), a framework for the description of interactive systems, can be extended to encompass parallel systems. FRP is based on Haskell, a purely functional programming language, and incorporates the concepts of time variation ..."
Abstract
-
Cited by 9 (0 self)
- Add to MetaCart
Abstract. In this paper, we demonstrate how Functional Reactive Programming (FRP), a framework for the description of interactive systems, can be extended to encompass parallel systems. FRP is based on Haskell, a purely functional programming language, and incorporates the concepts of time variation and reactivity. Parallel FRP serves as a declarative system model that may be transformed into a parallel implementation using the standard program transformation techniques of functional programming. The semantics of parallel FRP include non-determinism, enhancing opportunities to introduce parallelism. We demonstrate a variety of program transformations based on parallel FRP and show how a FRP model may be transformed into explicitly parallel code. Parallel FRP is implemented using the Linda programming system to handle the underlying parallelism. As an example of parallel FRP, we show how a specification for a web-based online auctioning system can be transformed into a parallel implementation. 1
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...
An Operational Semantics for Skeletons
, 2002
"... In this work we present a schema of an operational semantics suitable for skeleton-based parallel languages that support both task and data parallelism. The semantics describes both functional and parallel behavior of the skeletal language in a uniform way by means of a labeled transition system. We ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
In this work we present a schema of an operational semantics suitable for skeleton-based parallel languages that support both task and data parallelism. The semantics describes both functional and parallel behavior of the skeletal language in a uniform way by means of a labeled transition system. We use Lithium language (namely a Java skeleton framework) as the test-bed language to describe the methodology. The proposed schema can also be used to deal with skeletons with state.
THE IMPACT OF DYNAMIC CHANNELS ON FUNCTIONAL TOPOLOGY SKELETONS
"... Parallel functional programs with implicit communication often generate purely hierarchical communication topologies during execution: communication only happens between parent and child processes. Messages between siblings must be passed via the parent. This causes inefficiencies that can be avoide ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Parallel functional programs with implicit communication often generate purely hierarchical communication topologies during execution: communication only happens between parent and child processes. Messages between siblings must be passed via the parent. This causes inefficiencies that can be avoided by enabling direct communication between arbitrary processes. The Eden parallel functional language provides dynamic channels to implement arbitrary communication topologies. This paper analyses the impact of dynamic channels on Eden’s topology skeletons, i.e. skeletons which define process topologies such as rings, toroids, or hypercubes. We compare topology skeletons with and without dynamic channels with respect to the number of messages. Our case studies confirm that dynamic channels usually decrease the number of messages by up to 50 % and can reduce runtime by up to 50%. Detailed analysis of Eden TV (trace viewer) execution profiles reveals the reasons for these substantial runtime gains. 1.

