Main Page

From XtremWebCH Wiki

Jump to: navigation, search

The XtremWeb-CH (http://www.xtremwebch.net) project aims to build an effective Peer-To-Peer System for CPU time consuming applications.

Initially, XWCH is an upgraded version of a Global Computing environment called XtremWeb (XW): http://www.xtremweb.net. Major improvements have been brought in order to obtain a reliable and efficient system. The software’s architecture was completely re-designed. The communication routines based initially on Remote Procedure Calls (Java RMI) were replaced by socket communications. New modules were added in order to enrich the system by new functionalities.

A typical XtremWeb-CH platform is composed of one coordinator and several workers (remote resources). The coordinator is a three-tier layer allowing “connection” between the users and the workers. XtremWeb-CH supports four functionalities:

  1. Volatility of workers: When a worker voluntarily or involuntarily disappears, the task allocated to it is automatically assigned to another worker.
  2. Automatic execution of Parallel and Distributed Applications: a high performance application is generally composed of a set of communicating tasks. XtremWeb-CH insures the automatic transfer of data between workers executing communicating tasks.
  3. Direct communication between workers: Communication between tasks can take place without passing through the coordinator. The coordinator keeps only the responsibility of assigning tasks to workers.
  4. Load balancing: XtremWeb-CH optimizes the granularity of the application according to the “state” of the platform. During a “compilation” step, the number of tasks and the workload (quantity of data to be processed) of each task are fixed according to the number of the available workers and their performance. During the execution, a scheduling algorithm assigns tasks to workers according to the workload of the former and the performance of the latter.

Fig.1 XtremWeb-CH architecture

XtremWeb-CH (XWCH) is composed of four modules: coordinator, worker, warehouse and broker. Several modules can be installed on the same node. A typical XWCH platform is composed of one coordinator and a set of workers, warehouses and brokers (Fig. 1). The coordinator module is the main component of XWCH. It is considered as the master of the XWCH system; it has the responsibility of managing communication between the clients (users) and the workers (resource providers).

The worker module is installed on each provider node. It manages execution of tasks and the transfer of data from/to the worker. Workers are considered as the slaves of the XWCH system.

When two communicating tasks are executed by two workers that can not reach each other (firewalls, NAT addresses, etc.), a warehouse node is used as a depository: the producer worker stores the result of its execution while the consumer worker fetches for the input data he needs to launch its execution.

A broker module is a “compiler” which transforms the user request (application submission) into a set of tasks compliant to the “format” recognized by XWCH. Every family of applications has its own broker. The XWCH broker module can be compared to the Globus broker which is responsible of transforming a high level RSL (Request Specification Language) request into a low level RSL request.

Personal tools