Tutorial on Setting up a BOINC Project

This page is a tutorial for the setup of a BOINC project on the basis of the boinc-server-maker package soon to ship with Debian and Ubuntu. It is currently (12/2012) being updated and that recent version of the boinc-server-maker package is not yet publicly availalble. Contact us about it. Also, the tutorial is not consistent in the amount of insights in Linux that is required from the reader. Some obvious-to-many bits are explained, some less obvious pointers may not be given. At some point, it should be understood by anyone with sincere interest in computing and sufficient time to follow things up. Feedback helps.

http://boinc.berkeley.edu/logo/www_logo.gif

Overview

The path towards a complete BOINC project we see four major components.

  1. With the project initialisation, the basis of everything, comes the setup of the web pages.
  2. The web page is contacted by clients of the volunteers asking for applications to run. Those need to be set up for many platforms, like 32 and 64 bit environments, Windows, Mac and Linux, whatever the volunteer's community is equipped with and the software is available for.
  3. Work units that are shipped to the clients to make up compute tasks need to be created. This is not required to happen in one go. It is OK (some may say preferable, this depends on the problem) to have the generation of later workunits depend on the results sent back for the early ones.
  4. Validation and archiving of results.

This tutorial supports an order like the above. This introduction works closely with what the BOINC developers already provide and as such also use their example projects. Its ends with a complete BOINC project and the reader will know what parts to substitute for its own project.

What you need: disk space and internet connection

The hardware you need depends on the problem you address. When distributing many jobs, you need strong upload bandwidth, which means that with the typical asymmetric DSL connects at home this is difficult. Universities obviously will not have such a problem. In clinical or other strongly firewalled setups find an external hoster or a collaborating non-clinical institute with a demilitarised zone. You may also decide to use the Cloud or just rent some external machine. A regular 32 bit machine is likely to be sufficient if that machine can concentrate on distributing the job and does not need too much of work for post-processing of results.

To just learn and get started, and fix bugs of this tutorial, just use what you have. If on a non-Debian machine, consider running a virtual machine with 512MB memory and 10 GB of disk sapce, leaving some room for many binaries and work units / results.

How to read this tutorial

The tutorial is split into a series of sections which (to some degree) may be read on their own.

/Initialisation

/AppDeployment

/WorkUnitGeneration

/ResultManagement

Project and Website Initialisation

Application Deployment

Work Unit Generation

Result Management

Installation of Debian package (or manual compilation of BOINC sources) and the execution of 'make_project' to set the basic website up.

The 'upper case' binaries shipping with Debian for multiple architectures are collected, described for the BOINC Wrapper and placed into appropriate directories of the BOINC project.

Description of input files for volunteers to run.

/AdaptForYourOwn

/Virtualisation

Adapt for your own project

Virtualisation

Loosely nit collection of text fragments to present an overview of changes to be performed for this default project for one's own runs. Pointer to projects built along this setup.

Instruction for clients of arbitrary platforms to run BOINC in a virtual machine.


Disclaimer

This section is not yet complete. While the instructions on how to get your project up are basically fine, albeit extendable, there are a few issues that frankly we don't know how to solve exactly, yet, i.e.:

See also


BOINC. BOINC/Server, BOINC/Development, BOINC/Development/GitUsage,