Preparing a desktop grid to accept EGEE jobs
Overview
On each DG (BOINC or XtremWeb) that is to be bridged to EGEE the following 3G Bridge components have to be installed on the DG side:- the queue manager with the DC-API-Single or XtremWeb plugin which handles jobs and converts them to BOINC work units or XtremWeb jobs respectively,
- the web service submitter service which accepts jobs over the network from an EDGeS CE, then handles downloading the input files of jobs and putting the job in the 3g-bridge queue when all input files are downloaded. (A web service monitoring service is also installed where available to get information about the DG.)
Installing from packages on Debian
IMPORTANT NOTICE:These binary packages are only supported with the SZDG BOINC server packages. Due to incompatibilities between BOINC versions this will probably not work with other BOINC installations. In case you compiled BOINC yourself go to the Installing from source section below.- 3g-bridge packages are available in the SZDG apt repository:
deb http://www.desktopgrid.hu/debian/ lenny szdg
- Install the necessary 3g-bridge packages:
apt-get install 3g-bridge
- Proceed to Deploying the bridge under a BOINC project section below to install and configure the bridge under your BOINC project.
Installing from source
- Download the latest 3g-bridge source release from the EDGeS grid deployment page
- Compile it and for BOINC create the package as described below
- Install the compiled 3g-bridge queue manager for XtremWeb or deploy the package created in the previous step under your BOINC project as a master application
- Configure the bridge as described below and start the queue manager and wssubmitter services
Prerequisites
We assume you have a working DG installation. For installation instructions of the supported DG systems see their web sites: BOINC, SZDG, XtremWeb.For successful compilation of the 3G Bridge, the list of 3rd party software that has to be installed before you begin is shown below. The list contains the minimum required versions, make sure you have at least these versions.
| MySQL | 5.0 | |
| glib | 2.6 | |
| libcurl | 7.12.0 | (for the web service interface) |
| gsoap | 2.7.9l | (for the web service interface) |
| BOINC | 6.1.5 | (for the DC-API plugin) |
| DC-API | 0.9 | (for the DC-API plugin) |
| xsltproc | 1.1.16 | (for building the documentation) |
| DocBook XSL stylesheets | 4.5 | (for building the documentation) |
Note: If installing from packages of your Linux distribution make sure that development packages are also installed which are needed to compile software using these libraries (they often called the same as the package suffixed with -devel or -dev). The packaged gsoap version in Debian 4.0 Etch (2.7.6d-1) is less than the required version and known not to work. If you have this version you should compile gsoap from source first.
Compiling
The 3G Bridge uses GNU autoconf and automake. See the file INSTALL for generic building and installation instructions, but in a nutshell:$ ./configure --with-gsoap [--with-dcapi] [--with-xtremweb] $ make $ make installSee the output of ./configure --help for more information about the available configuration options. At least one plugin should be specified: for BOINC select --with-dcapi for XtremWeb select --with-xtremweb.
To create the 3g-bridge BOINC master package make sure you configured 3g-bridge with the --with-dcapi flag. Then type make package, which will create an archive named 3g-bridge-package.tar.gz that will be needed below.
Deploying the bridge under a BOINC project
The 3G Bridge queue manager works as a generic DC-API master application for BOINC and should be deployed as any other DC-API master application under a BOINC project, where it has access to the BOINC database and the file systems of the upload and download directories. See the DC-API BOINC backend documentation for explanation of terms and required configuration options. The wssubmitter and wsmonitor components are also deployed as daemons controlled by BOINC.
To deploy the 3g-bridge and its WS components follow these steps:
Note: All following steps must be performed under the BOINC project administrative user account (not root) and should be done after stopping the project by issuing stop
- To deploy under a BOINC project
- If you installed 3g-bridge from packages on SZDG you can use the
installed descriptor file as follows:
$ boinc_appmgr --add /usr/share/3g-bridge/master-ws.xml
- If you compiled 3g-bridge from source the package created can be
directly used by boinc_appmgr on SZDG as follows:
$ boinc_appmgr --add /path/to/3g-bridge-package.tar.gz
The 3G Bridge will be installed into the $HOME/master/3g-bridge directory of the project administrative user.
- If not using SZDG you must deploy the bridge by hand (see the on-line documentation). The description of what to deploy is in master.xml within the package.
- If you installed 3g-bridge from packages on SZDG you can use the
installed descriptor file as follows:
- After deploying the bridge you must
edit $HOME/master/3g-bridge/3g-bridge.conf (see its manual page
which was installed with 3g-bridge for details) and do some other
configuration. Do not skip any of the following steps, all of them
are needed for correct operation:
- In the [database] section of 3g-bridge.conf, insert the user, database name, and password needed to connect to the BOINC database. You can find these in your BOINC config.xml
- In the [bridge] section, set the log-target key to stdout to make logging compatible with the other BOINC components
- For the web service interface, you should set log-target similarly in the [wssubmitter] and [wsmonitor] sections as well. You should also set the port keys to the TCP ports on which the web service components should listen.
- Additionally, you should set input-dir to a location where the web service interface can store files it downloads; it is a good idea to create a sub-directory under $HOME/master/3g-bridge for this. Note that this directory should be on the same file system as the BOINC download directory.
- You should also set output-dir to a directory where the
finished jobs' output files are to be stored. This directory must be on the
same file system as the BOINC upload directory. You must also configure the
web server (Apache) to make the output-dir available over the web,
and set the appropriate base URL as the value
of output-dir-prefix. For example, if output-dir
is $HOME/master/3g-bridge/ws-upload, and you have added
Alias /ws-upload/ <BOINC project root>/master/3g-bridge/ws-upload/
then output-dir-prefix should be http://<hostname>/ws-upload (or https://<hostname>/ws-upload if you use SSL).Note: Make sure to add the appropriate access control rules in the Apache configuration if you do not want anyone on the planet to be able to download the results. In particular you should only allow the EGEE CEs that can submit jobs here.
- Configure the DC-API-Single plugin which is used by the EDGeS
EGEE ⇒ DG bridge, so you should enable only this plugin and
disable or remove all other plugin configuration sections. A sample of 3G
Bridge configuration fragment for enabling the DC-API-Single plugin is:
################ ## Sample grid using the DC-API-Single plugin [DG] handler = DC-API-Single dc-api-config = /path/to/dc-api.conf
- After finishing with 3g-bridge.conf, you should load the 3G Bridge
schema into the BOINC database by executing
$ mysql <BOINC database name> <${prefix}/share/doc/3g-bridge/db/schema.sqlwhere ${prefix} refers to the value you passed to the --prefix=... option of configure (or /usr/share/3g-bridge/schema.sql if installed from Debian packages). - Then appropriate queues have to be added the the bridge database for the
configured backend and installed client applications. Note that in the
future when installing new client applications that are to be supported by
3G Bridge it is necessary to add them as allowed algorithms in the bridge
database. This is achieved using the following SQL command:
mysql> INSERT INTO cg_algqueue(grid, alg, batchsize) VALUES ("DG", "<appname>", 1);where grid is the name of the plugin you configured, alg is the name of the application and batchsize is currently unused and should be set to 1. - Edit $HOME/master/3g-bridge/dc-api.conf and configure your client applications. The DC-API-Single plugin itself does not require any configuration other than what is normally needed for DC-API applications (which is automatically set by boinc_appmgr on SZDG, see the DC-API documentation for more information about dc-api.conf). If client specific keys are required for bridged applications then they should be added to the dc-api.conf of the bridge.
- If everything is ready, issue start to start the project and let BOINC launch the 3G Bridge Queue Manager and WS components.
- Check the logs in $HOME/project/log_* for errors and check again that you performed all previous step correctly.
Deploying applications from the EDGeS Application Repository
Next you should deploy some client applications from the EDGeS Application Repository (AR), test that they work via 3g-bridge and then register your DG in the AR as supporting these applications. You can use (edges-aradm _at_ mail.edges-grid.eu) for correspondence regarding the AR. If you deploy the application under a different name than what is used in the AR then do not forget to notify (edges-bridgeadm _at_ mail.edges-grid.eu) about this so the bridge CEs can be configured correctly. To access the EDGeS Application Repository you can either: