RISC-Linz logo

A Toolkit for the Simulation of Distributed Algorithms in Java

We describe a toolkit for designing, implementing, testing, simulating, and visualizing distributed algorithms in Java. The toolkit consists of a Java class library with a simple programming interface that allows to develop distributed algorithms based on a message passing model. The resulting programs may be executed in standalone mode using a Java interpreter or embedded as applets into HTML pages and executed by Web browsers. The goal of the toolkit is to provide an universally accessible platform for research and education in the area of distributed algorithms. The toolkit is freely available over the World Wide Web.

This page is translated to Serbo-Croatian language by Anja Skrba from Webhostinggeeks.com.
This article is translated to Polish language by Patricia Motosan.
This article is translated to Italian language by William from SOS Search
This article is translated to Belarussian language by Vicky Rotarova.
This article is translated to Ukrainian by Alisa Bagrii from Everycloudtech
This article is translated to Russian by Sergey Ivanov.
Execute distributed programs as applets in your Web browser.
3 Nodes in a Ring
A trivial distributed program. Computer Algorithms
Distributed Snapshots
An application of the Chandy-Lamport algorithm for finding consistent global snapshots of a network.
Parallel Convex Hull Construction
An implementation of a parallel algorithm for the conputation of the convex hull of a set of points.
Termination Detection
An implementation of a distributed termination detection algorithm described by Dijkstra.
Breadth First Search (Other Solution)
The construction of a spanning tree of minimum height.
Invitation Algorithm
The invitation algorithm for leader election.
Maekawa's Mutual Exclusion Algorithm
A voting approach to the mutual exclusion problem.
LyHudak Mutual Exclusion
Mutual exclusion by a token with path compression.
RicartAgrawala Mutual Exclusion (Another Solution)
Mutual exclusion by use of logical time to synchronize access to critical region.
Dijkstra Scholten Termination Detection
Termination detection by maintaining a tree of active processes.
Totally Ordered Broadcast (Sources | Presentation)
Totally ordered broadcasting based on point-to-point communication.
Software (Help) (Problems) (Copying) (Installation) (Release)
Online help for the visualization interface; known problems; copyright conditions; how to install the toolkit; release information.
Documentation (Online) (Printing) (Unix) (Windows) (French Translation)
The documentation for online browsing (HTML), for printing (GNU zipped PostScript), and for local installation of the online version under Unix (GNU zipped tar) or Windows (PKZIP).
Download the Toolkit for JDK 6.0
Ported from the original source by Roman Weidlich (thanks!).
  1. assert() is renamed to test().
  2. Class Main must implement resetStatistics().
Toolkit Base
(Java archive format)
Toolkit AWT Binding
(Java archive format)
(Source code, feel free to use it for your own purposes but please cite the original software).
Download the Toolkit 1.0.2 for JDK 1.1
Use this version if you use JDK 1.1.x.
Toolkit Base
Download one of the following files.
Toolkit AWT Binding
Download one of the following files.
Download Toolkit 1.0.2 for JDK 1.0
Use this version for JDK 1.0.x and/or if you want to write applets for outdated browsers.
Toolkit Base
Download one of the following files.
Toolkit AWT Binding
Download one of the following files.
Installation at RISC-Linz

Maintained by: Wolfgang Schreiner
Last Modification: April 11, 2013