Wednesday Exercise 3
From AIMSWiki
| Table of contents |
Overview
BOINC projects have to provide project specific server components to validate, assimilate, and generate workunits.
Objective
Understand the function of the malariacontrol.net server components and setup a malariacontrol.net test server.
Procedure
- Open the src/Makefile.am file to see which source files we need to build the server side components.
- Build the daemons and tasks.
- Update your config.xml to run daemons and tasks.
- Add your application and application version.
- Initialize the backend database
- Install all necessary templates and datafile
- Load a simulation run to create work
- Attach your clients
- Monitor your server using server_status.php, the admin website, and the log files.
Prerequisites and Hints
Copy the mcdnServer sources to your workspace dir.
Create a project root directory and a malariacontrol project
$sudo mkdir -p /malaria/malaria $sudo chown -R boincadm:boincadm /malaria
$tools/make_project --project_root /malaria/malaria --delete_prev_inst
--drop_db_first malariacontrol 'malaria control.net test'
Build the daemons and tasks in mcdn/mcdnServer. Follow the procedure of the client build.
Add assimilator,generator,parameterizer,validator to the PROJECT_ROOT/bin directory.
Update the PROJECT_ROOT/config.xml:
<task>
<cmd>
generator -db_name malariaModel -template_name ../templates/generator_template.xml -d 3
</cmd>
<period>
1 min
</period>
</task>
<task>
<cmd>
parameterizer -app malariacontrol -db_name malariaModel -min_results_ready 9 -template_name ../templates/generator_template.xml -d 3
</cmd>
<period>
1 min
</period>
</task>
<daemon>
<cmd>
assimilator -d 2 -app malariacontrol -db_name malariaModel -template_name ../templates/generator_template.xml -min_results_ready 14
</cmd>
</daemon>
<daemon>
<cmd>
validator -d 3 -app malariacontrol
</cmd>
</daemon>
Update project.xml
<app>
<name>malariacontrol</name>
<user_friendly_name>malcont</user_friendly_name>
</app>
$bin/xadd
Create the app dir and add the science application
$mkdir -p apps/malariacontrol/malariacontrol_5.01_i686-pc-linux-gnu
Now it's time to copy and sign the science application.
Compile the malaria science app in mcdn/malariaModel/cpp/malaria to the application dir. Note: the application name must be the same as the directory name.
cp /home/boincadm/mcdn/malariaModel/test/sandbox/malaria /malaria/malaria/apps/malariacontrol/malariacontrol_5.01_i686-pc-linux-gnu/malariacontrol_5.01_i686-pc-linux-gnu
crypt_prog -sign /malaria/malaria/apps/malariacontrol/malariacontrol_5.01_i686-pc-linux-gnu/malariacontrol_5.01_i686-pc-linux-gnu /malaria/malaria/keys/code_sign_private > /malaria/malaria/apps/malariacontrol/malariacontrol_5.01_i686-pc-linux-gnu/malariacontrol_5.01_i686-pc-linux-gnu.sig
crypt_prog -verify /malaria/malaria/apps/malariacontrol/malariacontrol_5.01_i686-pc-linux-gnu/malariacontrol_5.01_i686-pc-linux-gnu /malaria/malaria/apps/malariacontrol/malariacontrol_5.01_i686-pc-linux-gnu/malariacontrol_5.01_i686-pc-linux-gnu.sig /malaria/malaria/keys/code_sign_public
Update your application version
$bin/update_versions
Initialize the backend db:
Create a database named malariaModel, then
$mysql -p malariaModel<~/mcdnServer/templates/mmDBInit.sql
Copy template files
cp /home/boincadm/mcdn/mcdnServer/templates/*xml /malaria/malaria/templates/
Copy datafiles:
mkdir /malaria/malaria/files cp /home/boincadm/mcdn/mcdnServer/data/densities.csv /malaria/malaria/files/ cp /home/boincadm/mcdn/mcdnServer/data/lossWeightVector.txt /malaria/malaria/tmp_HOSTNAME cp /home/boincadm/mcdn/mcdnServer/data/fieldData.txt /malaria/malaria/tmp_HOSTNAME
Then you need to restart the BOINC server:
bin/stop bin/start
Add run1
$mysql -p malariaModel <~/mcdnServer/data/run1.sql
Note that you have to go all the necessary steps again to make this project accessible from clients (copy apache.conf, etc, consult your notes of yesterday)
For example, make your web dirs and the scheduler visible:
$sudo cp /malaria/malaria/malariacontrol.httpd.conf /etc/apache2/sites-available/ $sudo ln -s /etc/apache2/sites-available/malariacontrol.httpd.conf /etc/apache2/sites-enabled/malariacontrol.httpd.conf $sudo /etc/init.d/apache2 restart
We now need to fix the crontab file. To do this, copy information from yesterdays crontab file which can be edited using
$crontab -e
to the contents of PROJECT_ROOT/malariacontrol.cronjob which should look something like
# m h dom mon dow command */5 * * * * /malaria/malaria/bin/start --cron
afterwards.
Phew...

