Logo AND Algorithmique Numérique Distribuée

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