Table of Contents

I still need to complete this page …

The concept

Muskel is a parallel programming library providing users with structured parallel constructs (skeletons) that can be used to implement efficient parallel applications. Muskel applications run on networks/clusters of workstations equipped with Java (1.5 or greater). The skeletons are implemented exploiting macro data flow technology.

Currently, muskel supports the following pre-defined skeletons:

Recently, another skeleton has been added:

In addition, muskel allows users to define their own skeletons. Exploiting the macro data flow implementation, users can define new skeletons by providing the data flow graph implementing the skeleton. The graph may be provided using proper Java code or compiled using a GUI.

Download the code

Two versions of code are available at the moment:

All versions of muskel can be downloaded and used under the GPL license.

Both versions work perfectly on clusters and network of workstations supporting Java (1.6 is required for the new, last version, 1.5 is enough to run the original muskel) without firewalls blocking RMI accesses.

Sample applications

I collect there the code of some sample applications using muskel (last version). The purpose is to demonstrate the expressive power of the library and to provide some hints on how “classical” muskel applications can be written to novices.

Related papers

muskel is being discussed (in several different ways) in the following papers:

* Marco Danelutto, Dynamic Run Time Support for Skeletons, in: Proc. of Intl. PARCO 99: Parallel Computing, pages 460-467, Imperial College Press, 1999 (this is the paper introducing macro data flow implementation for skeleton based programming environments)

Documentation