The Shared Scientific Toolbox is a library that facilitates development of efficient, modular, and robust scientific/distributed computing applications in Java. It features multidimensional arrays with extensive linear algebra and FFT support, an asynchronous, scalable networking layer, and advanced class loading, message passing, and statistics packages.
Makeflow is a workflow engine for executing large complex applications on clusters, clouds, and grids. It can be used to drive several different distributed computing systems, including Condor, SGE, and the included Work Queue system. It does not require a distributed filesystem, so you can use it to harness whatever collection of machines you have available. It is typically used for scaling up data-intensive scientific applications to hundreds or thousands of cores.
WOSH (Wide Open Smart Home) is a message-oriented middleware for controlling and automating a smart home. It comes with working services and devices. WOSH is an open multi-platform C++ framework. Its architecture is service (bundles) oriented and designed for distributed (cloud) computing. WOSH ships with library source, many services, and some applications (a server, a trayicon remote controller, and a GUI full-controller). Some features provided by its micro-kernel are a multi-user system with access policies, a centralized database manager and system monitor, and automatic network management and masquerading (on TCP). Some of the implemented services are: multimedia audio playback, monitor and control of X10 devices, remote control using instant messaging, and a remote control using SMS and call notification.
Dapper, or "Distributed and Parallel Program Execution Runtime", is a tool for taming the complexities of developing for large-scale cloud and grid computing, enabling the user to create distributed computations from the essentials: the code that will execute, along with a dataflow graph description. It supports rich execution semantics, carefree deployment, a robust control protocol, modification of the dataflow graph at runtime, and an intuitive user interface.
Parrot and Chirp are user-level tools that make it easy to rapidly deploy wide area filesystems. Parrot is the client component: it transparently attaches to unmodified applications, and redirects their system calls to various remote servers. A variety of controls can be applied to modify the namespace and resources available to the application. Chirp is the server component: it allows an ordinary user to easily export and share storage across the wide area with a single command. A rich access control system allows users to mix and match multiple authentication types. Parrot and Chirp are most useful in the context of large scale distributed systems such as clusters, clouds, and grids where one may have limited permissions to install software.
Executor is a small but perfectly functional Java (1.5 or higher) JAR executable that is used to run programs in shared computer resources like a pool of computers that you and your friends own. Moreover, it can be used as a simple file sharing program: you can access the files of your home computer from your office computer. Executor uses a shared or synchronized file system. The user creates a task in one computer (just by uploading a file), and another computer that has the required program will execute the task.
StarCluster is a utility for creating traditional computing clusters used in research labs or for general distributed computing applications on Amazon's Elastic Compute Cloud (EC2). It uses a simple configuration file provided by the user to request cloud resources from Amazon and to automatically configure them with a queuing system, an NFS shared /home directory, passwordless SSH, OpenMPI, and ~140GB scratch disk space. It consists of a Python library and a simple command line interface to the library. For end-users, the command line interface provides simple intuitive options for getting started with distributed computing on EC2 (i.e. starting/stopping clusters, managing AMIs, etc). For developers, the library wraps the EC2 API to provide a simplified interface for launching/terminating nodes, executing commands on the nodes, copying files to/from the nodes, etc.
DAC (Dynamic Agent Computations) is a novel software framework designed for implementing multi-agent systems that describe parallel computations. The whole system is easy to configure and extend, but also very efficient and scalable. Moreover, the technology that is used (JMS, Cajo, JMX) ensures high reliability of the framework, which can be used in a production environment.