 |
Design
The design of the adaptive system is shown in the following figure:
The system consists of three components (the red boxes): the Delphoi
Web service frontend, the Delphoi module itself and the Pythias.
The web service frontend provides an interface to query the adaptive system.
The WSDL file that describes the service is here.
The Delphoi module is the centralized component that contains the
intelligence to convert high level questions into low level
metrics. For instance, when Delphoi is asked to predict the time it
takes to transfer a file from A to B, it knows that the time depends
on the network bandwidth between A and B. Next, it will ask the Pythia
on machine A what it's bandwidth to machine B is. Given this bandwidth,
Delphoi predicts the transfer time.
Furthermore, Delphoi contains an TCP frontend module. This frontend
basically provides the same functionality as the web service frontend
(see above). However, TCP is orders of magnitude faster than web
services, and does not suffer from the restrictions that are inherent
to the web services model. It is possible to transfer complete
network graphs annotated with latency and bandwidth with one call, for
instance.
The detailed Delphoi API can be found here.
The Pythias are components that are installed on machines
throughout the grid. Pythias are internal components in the Delphoi
system, and are not exported to the outside. Users of the Delphoi
system only use either the TCP or the web service frontend.
The Pythias perform all local measurements on metrics like CPU load,
disk speed, and network performance. The Pythias use the GridLab
monitoring system (shown in blue), to continuously collect data about
the resource and applications running on it. This data is processed
and may be stored locally for future reference. Since the amount of
data transferred between the Pythia and the monitoring system can be
large, it is important that they are 'co-located'. Therefore, like
the monitoring system, the Pythia generally runs on the resource
itself (the frontend machine of a cluster, for example).
The Pythia gathers information about the machine (or site) on which it is
installed and the about the network connections to other machines. For the
gridlab testbed, only a single Pythia installation per site is required.
This Pythia will typically run on the frontend machine of a cluster, as a
single process on a shared memory machine, or on a stand-alone machine that
is 'close' to the machine for information needs to be gather (by 'close' we
mean that the stand-alone machine uses the same wide-area connections as the
'real' machine, so that any network measurements done to the stand-alone
machine are also representative for the 'real' machine).
Next to the
GridLab monitoring system, the Pythias can use external tools like
pathrate, pathchirp, traceroute, etc.
back
|