Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
d38b719acd419ff0d64bd652240bd84e57dc2213
[gpc2011.git] / xwch.tex
1 %-----------------------------------------------------------------------------------------------------------------------------
2 % The XtremWeb-CH environment
3 %-----------------------------------------------------------------------------------------------------------------------------
4 XtremWeb-CH (XWCH) is a volunteer computing inspired, large-scale computing platform for distributed applications. It consist of three 
5 components: one coordinator, a set of workers and at least one warehouse. Client programs utilise these components.
6
7 The coordinator is the main component of the XWCH platform. It controls user access and schedules jobs to workers. It provides a web 
8 interface for managing jobs and users, and a set of web services. These are user service and worker/warehouse services implemented using 
9 WSDL \cite{WebServ2002}.
10
11 A worker is a  Java daemon that runs on the user machine. Assumed to be volatile, the workers reports periodically 
12 themselves to the coordinator, accept jobs, retrieve input, compute jobs, and store the results of the computation on warehouses. If the 
13 coordinator does not receive a signal from a worker, it will simply remove it from the scheduling list, and if a job had been assigned to that 
14 worker, it will be re-assigned to another one. A schema of the architecture is shown in Figure 4.
15
16 \begin{figure}[hb]
17  \begin{centering}
18     \includegraphics [scale=0.2]{figures/xwcharchitecture.pdf}
19     \caption{The XWCH Architecture}
20    % \label{Figure 4: The XWCH Architecture}
21  \end{centering}
22 \end{figure}
23
24 A warehouse is a file server that acts as a data storage system for workers and client programs. 
25 Workers may not necessarily be able to communicate directly with each other, due to firewalls and NAT subnetworks. 
26 For these reasons, warehouses are used as intermediaries to exchange, store and retrieve data.
27
28 Job submission is done by a client program which is written using a flexible API, available for Java and C/C++ programs. The client program 
29 runs on a  “client node” and calls the user services to submit  jobs (Figure 1, (1)). The main flexibility provided by the use of this
30 architecture is to control and generate dynamically jobs especially when their number can not be known in advance. Communications between 
31 the coordinator and the workers are always initiated by the workers following a pull model (Figure 1, (2)):
32 \begin{itemize}
33  \item Workers receive jobs (Figure 1, (3)) only if they send a “work request” signal. 
34  \item When a worker finishes its job, it stores its output file on warehouse and  sends a “work result” signal to the coordinator. 
35  \item During its execution, a worker (respectively warehouse) periodically sends “work alive” to the worker service (respectively warehouse service) 
36 to report itself to the coordinator.
37 \end{itemize}
38 As a whole, XWCH is easy to install, maintain ans use. Its components are programmed mainly using Java, and their process memory sizes in a typical 32-bit Linux computer are shown below.
39 \begin{itemize}
40  \item Coordinator 190 MB including the Glassfish Java container
41  \item Worker 40 MB
42  \item Warehouse 80 MB 
43 \end{itemize}
44  
45 Experiments, presented in \cite{ccgridpaper}, shows that the performance of XWCH is comparable with Condor \cite{Condor1988}, another 
46 non-intrusive computing system that has similar functionality but is somewhat more difficult to install .
47
48 The main characteristics of the new version of XWCH, compared to its previous versions, are: dynamic job generation, flexible data 
49 sharing (data replication) and persistent jobs. These features are presented in \cite{VEZGrid} and will not be detailed in this paper.
50
51
52
53