Project Page

P2P Grid

Introduction

Scheduling

Basic concepts

Process migration

Java MPI

System overview

Simulations





Organic Computing as a concept to control parallel computations in P2P Grids

System Overview

The figure below presents the Java packages of the P2P Grid, depicted as colored boxes. In addition a further package grid.models exists that consists of the classes PeerData, RemotePeer, PeerAddress, JobDescriptor and ProcessDescriptor, which are also shown in the figure. All these classes define data structures that constitute the framework for the entire system, whereas in the classes Peer, ProcesssManagement, and ExecutionManagement the implementation of specific tasks is defined.


A single peer represents a finite state machine that is implemented in the class Peer of the package grid.peer and can be started by the class Connector. The state of a peer depends on the particular role a peer currently plays. If the peer was assigned to be a Primary or Secondary Scheduler methods and threads of the class ProcessManagement in the package grid.scheduling are executed. If the peer plays the role of a Worker, then the JavaGo migration server has started an independent JMPI process induced by the Primary Scheduler from remote via a migrationCall. A JMPI process frequently calls MPI methods of the package grid.MPI, which in turn access methods provided by the ExecutionManagement in the package grid.worker. Since the JMPI process is managed as a separate process, all communication between the JMPI process and the local peer is based on the communication layer in the package grid.com, while MPI classes used by the JMPI process have direct access on methods of the execution management. The later holds the r2nTable and provides methods to classes of the MPI package, which translate ranks into IP addresses, pass port addresses to MPI classes and handle timeout exceptions.

Information about the local peer is stored in an object of the class PeerData. The constructor of this class expects a unique identifier (id); the address of the local peer and its performance as parameters. For the purpose of storage and easy exchange of addresses a serializable object of the class PeerAddress is defined that includes the IP address and certain ports of the peer. During the startup of the system the hash map knownPeers is filled with a set of friends that are read from the file settings/friends.tab. This hash map is an instance of the class RemotePeer and linked to the PeerData object. The same holds true for the hash map availablePeers, which holds topological information in terms of round trip times and disposition values. This hash map is managed and frequently updated by the class topological information service inside the package grid.scheduling. The class ProcessManagement in the same package accomplishes the checkpointing and the disposition based process scheduling. It is used by the Primary and Secondary Scheduler. In contrast to the the class ExecutionManagement used by the Workers, it is constructed by the class peer with a reference to the PeerData object. Therefore the process management has direct access to the hash map availablePeers and thus to the disposition values stored inside the hash map.


top orco


Last modified: Thu Feb 05 20:33:00 CET 2009