W O L F G A N G   B L O C H I N G E R  :: 

Cohesion P2P Grid Platform

Desktop Grid systems harness underutilized resources of end-user computers for tackling computationally hard problems. This approach to Grid Computing is gaining momentum, since it is able to deliver considerable computing power at virtually no extra cost. Small scale installations, e.g. comprising the workstations of a department, and also large scale, Internet-wide approaches (also known as Global Computing) have been successfully implemented. However, Desktop Grids differ significantly from traditional parallel systems. Particularly, resources exhibit a high degree of volatility and heterogeneity: Depending on the usage patterns of the participating desktop computers, resources with considerably differing capabilities join and leave the grid in an unpredictable manner. Delivering sustained computing power in such environments poses enormous challenges to system and application designers.

Cohesion is a novel Peer-to-Peer based Desktop Grid computing platform. It integrates methods from high performance computing with state-of-the-art concepts from the realm of distributed systems. By implementing the microkernel architectural pattern, Cohesion is especially suited for extension and customization even at the system level and thus can satisfy a wide variety of application-specific requirements. Cohesion was specifically designed to provide a rich set of functionality for realizing parallel programming models and application specific frameworks which require a P2P style communication model. We especially focus on methods for irregularly structured task-parallel problems, which require fully dynamic problem decomposition. Subsequently, we give a brief overview of the basic concepts and components of Cohesion.

Architecture

  • Virtualization Layer
    This layer is responsible for virtualizing resources contributed by the hosts of a Desktop Grid. Hosts become visible within the grid by joining a group. A group’s primary purpose is to define a scope for resource management. Resources contributed by the nodes are published in a distributed directory service within a group. To establish an accurate view of the available resource set, an efficient failure detection algorithm is employed, which detects unexpected host departures and updates the nodes’ views of the group. Application designers can express relations among groups (e.g. parent/child, sibling) in accordance with the application’s domain model.
  • Communication Layer
    This layer provides a highly configurable communication subsystem that enables higher-level virtualization services and programming models to instantiate custom communication primitives. The concept of composable channels allows to assemble communication channels from modularized quality of service (QoS) aspects, e.g. reliability, encryption, or compression. Communication channels are established between endpoints. The communication layer provides several unicast and groupcast endpoints with different performance characteristics.
  • Host System Integration Layer
    This layer provides functionality to embed Cohesion into the hosting environment. A sensor-driven container-controlled application lifecycle ensures most effective resource utilization while at the same time preventing interference with the hosting environment’s intended use. Sensors for CPU load, input devices (i.e. mouse and keyboard) and system time can be combined in arbitrary ways to control when applications can be executed.

Cohesion leverages the Open Services Gateway Interface (OSGi) specification. This approach establishes a high degree of modularization and extensibility. All essential components of Cohesion (e.g. group models or communication endpoints) can be extended or replaced in a transparent and straightforward manner.


Selected Publications: