Preparing a desktop grid to accept EGEE jobs

These are the steps necessary to connect a BOINC or XWHEP based desktop grid to EDGeS in EGEE ⇒ DG direction. This is for you if you are an administrator of such a desktop grid and want to support EDGeS applications on your DG to accept jobs from EGEE VOs.

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: To install these components on a Linux machine the following steps are necessary:

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.
  1. 3g-bridge packages are available in the SZDG apt repository:
    deb http://www.desktopgrid.hu/debian/ lenny szdg
    
  2. Install the necessary 3g-bridge packages:
    apt-get install 3g-bridge
    
  3. Proceed to Deploying the bridge under a BOINC project section below to install and configure the bridge under your BOINC project.

Installing from source

  1. Download the latest 3g-bridge source release from the EDGeS grid deployment page
  2. Compile it and for BOINC create the package as described below
  3. 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
  4. 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.

MySQL5.0
glib2.6
libcurl7.12.0(for the web service interface)
gsoap2.7.9l(for the web service interface)
BOINC6.1.5(for the DC-API plugin)
DC-API0.9(for the DC-API plugin)
xsltproc1.1.16(for building the documentation)
DocBook XSL stylesheets4.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 install
See 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

  1. 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.
  2. 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.sql
      
      where ${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.
  3. 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: