Results 1 -
3 of
3
Skil: An Imperative Language with Algorithmic Skeletons for Efficient Distributed Programming
- In Proceedings of the Fifth International Symposium on High Performance Distributed Computing (HPDC5
, 1996
"... In this paper we present Skil, an imperative language enhanced with higher-order functions and currying, as well as with a polymorphic type system. The high level of Skil allows the integration of algorithmic skeletons, i.e. of higherorder functions representing parallel computation patterns. At the ..."
Abstract
-
Cited by 35 (5 self)
- Add to MetaCart
In this paper we present Skil, an imperative language enhanced with higher-order functions and currying, as well as with a polymorphic type system. The high level of Skil allows the integration of algorithmic skeletons, i.e. of higherorder functions representing parallel computation patterns. At the same time, the language can be efficiently implemented. After describing a series of skeletons which work with distributed arrays, we give two examples of parallel programs implemented on the basis of skeletons, namely shortest paths in graphs and Gaussian elimination. Runtime measurements show that we approach the efficiency of message-passing C up to a factor between 1 and 2.5. 1. Introduction Although parallel and distributed systems gain more and more importance nowadays, the state-of-the-art in the field of parallel software is far from being satisfactory. Not only is the programming of such systems a tedious and time-consuming task, but its outcome is usually machinedependent and hen...
Algorithmic Skeletons in an Imperative Language for Distributed Programming
, 1995
"... Algorithmic skeletons are 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 ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Algorithmic skeletons are 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, which leads to important gains in efficiency. At the same time, we enhance the host language with some functional features, like higher-order functions and currying, as well as with a polymorphic type system, in order to allow high-level programming. After describing a series of skeletons which work with distributed arrays, we give two examples of parallel algorithms written as sequential programs, namely shortest paths in graphs and Gaussian elimination. Run-time measurements show that we approach the efficiency of message-passing C up to a factor between 1 and 2.5.

