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

Basic Concepts for a P2P Grid

The term Grid computing has originated as a metaphor for making computer power as easy to access as an electric power grid. Hence, the idea of Grid computing actually means that every peer should be able to submit tasks (jobs) regardless of its own connectivity in the P2P Grid. Especially, the location of job initiation should not have any effect on the performance of job execution. In order to decouple scheduling of jobs from the peers that initialize them our system is organized as illustrated in the figure below.


A peer can play 4 different roles in a computation:

  • Initiator: Initiator is a peer on which a user wants to submit a job to the system. Usually, this peer does not take part in the actual computation of a specified job. Only well-connected peers with adequate performance should participate to improve the total computational performance of a parallel computational job.
  • Primary Scheduler: Primary Scheduler is a peer with the best disposition value inside it cluster that is known to the Initiator. This particular peer selects other peers (Workers) regarding their disposition values to participate in a job that was submitted by the Initiator. Peers that participate in a job are managed in a hash map, that is called process descriptor table (PDT) according to the terminology used in operating systems. Additionally, the Primary Scheduler selects another peer, the Secondary Scheduler.
  • Secondary Scheduler: the Secondary Scheduler is used to avoid a single point of failure that is considered to be the Primary Scheduler. In the case that the Primary Scheduler disconnects from the system, the Secondary Scheduler continues the task of the Primary Scheduler and recruits another peer as the new Secondary Scheduler.
  • Worker: Worker is a peer that was selected by the Primary Scheduler to participate in the execution of a job. Each Workers of a job receives a single process with a unique identifier, according to the MPI specification referred to as rank.

For reasons of portability the P2P Grid is based on Java and supports message passing by a rudimentary MPJ (Message Passing Interface for Java) implementation that is called Java Message Passing Interface (JMPI). Java applications, which do not rely on native code, can run on multiple hardware platforms without any change to their code. MPJ is a MPI-like API specified by the Java Grande Forum to enhance the viability of parallel programming using Java. Typically, an MPJ API uses Java Native Interface (JNI) wrappers to native MPI software and therefore requires a native MPI library installation. By contrast, in our system a pure Java implementation is provided.

The communication between peers is established by two request/reply protocols implemented inside a communication layer. A single peer represents a finite state machine and can be started by the class Connector. The state of a peer depends on the current role a peer plays (e.g. inactive, active as a Worker, active as Primary Scheduler). In order to run a computational job the system provides a simple application, called MPI_Exec, adjusted to the MPI standard. The application is used by typing MPI_Exec -filename -n, where the parameter -filename defines the path and name of an executable bytecode file and the parameter -n sets the required number of processes. The entire system is organized in layers and packets as depicted below.



top next: process migration and checkpointing orco


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