Grid computing with BOINC
Grid versus volunteer computing
Grid computing is a form of distributed computing in which an organization (business, university, etc.) uses its existing computers (desktop and/or cluster nodes) to handle its own long-running computational tasks. This differs from volunteer computing in several ways:
- The computing resources can be trusted; i.e. one can assume that the PCs don't return results that are intentionally wrong, and that they don't falsify credit. Hence there is typically no need for replication.
- There is no need for screensaver graphics; in fact it may be desirable to have the computation be completely invisible and out of the control of the PC user.
- Client deployment is typically automated.
Using BOINC as a grid platform
Although it was originally designed for volunteer computing, BOINC works very well for grid computing. The steps in creating a BOINC-based grid are:
- Set up a BOINC server, develop or port applications, and test them. Set workunit parameters to disable redundancy.
- Create an account with the general preferences that you want enforced on your desktop grid.
- Configure your project to disable account creation.
- Create a custom installer that includes the desired configuration files?. Typically, this would include an account file that would attach each client to the account on your project. You might also want to include files that allow clients to be remotely monitored and controlled.
- Deploy your installer; on Windows networks this can be done using Active Directories.
To ensure that outside hosts can't participate in your project or access its files, configure your firewall to prevent HTTP access to your BOINC server.
- The SZTAKI desktop grid project has developed software allowing hierarchical organizations to share resources in a way that reflects the hierarchy.
- The University of Extremadura is using BOINC to allow a group of peer organizations to form a computational grid. They have developed an open-source system called Jarifa for this purpose.
Integrating BOINC with other grid platforms
- The Einstein@OSG project for LIGO at Caltech (http://www.opensciencegrid.org/Case_Study_-_Einstein_at_OSG). Initially developed at the AEI in Germany, our project enables BOINC to be executed in Grid Environments through Condor-G, Globus GRAM as well as GRAM-WS. In particular we are using ~40 grid resources on the Open Science Grid (http://www.opensciencegrid.org/) and ~20 grid resources on D-Grid (http://www.d-grid-gmbh.de/index.php?id=56&L=1) to contribute approx. 150,000 cpu hours daily to the Einstein@Home project since 2008.
- Researchers at CERN have set up a system where submitted jobs are sent either to a BOINC project or to a GRAM job manager. They developed two utilities, kill_wu and poll_wu, to support this. They are in the boinc/tools directory. Contact Christian Søttrup (chrulle at fatbat.dk) for more info.
- The Lattice project from the University of Maryland has developed a Grid system that integrates Globus, BOINC, and several other software components.
- The SuperLink project from Technion University developed a system that dynamically assigns jobs to a central server, a local cluster, the EGEE grid, or a BOINC project, based on their estimated runtime.
- The MindModeling@Home project has incorporated two United States Air Force Department of Defence LSF clusters and an additional Beowulf cluster in their beta project. Tools to facilitate this included: LSF submission scripts, control scripts to dynamically clean up potentially reschedule clients upon node time out and a multiple BOINC instance installer.