About | Contact |

Presentation

Skandium is a Java based Algorithmic Skeleton library for high-level parallel programming of multicore architectures. Skandium provides basic nestable parallelism patterns, which can be composed to program more complex applications. The supported parallelism patterns are: farm, pipe, for, while, if, map, fork, and divide and conquer.

More info »

Programming Model

The programming model's constructs are of two categories. The skeleton patterns which represent a generic parallelization strategy, and the muscles which are provided by programmers and fill the pattern to transform it into a specific application.

Skeleton Patterns

A skeleton pattern represents a parallelization strategy, which can be combined by nesting a pattern inside another. Currently the supported skeleton patterns are:

Muscles

Muscle codes are responsible for providing the application specific code to the skeleton pattern. There are four types of Muscle codes: Condition, Split, Merge and Execute. Muscles are identified with an interface, which defines an homonym method used for computation.

It is important to note that muscle methods will likely be executed concurrently. Hence if the method's implementation is not stateless, it must be guarded with the synchronized keyword.

However, using synchronized will serialize all access to the method, thus disabling parallelism in skeletons such as Farm. Therefore, synchronized should be avoided, and if required, finer grained synchronization (i.e. in sub method calls from inside the muscle) should be preferred.