Workshop hosted by the International Academic Network of Geneva (GIAN), with additional support by IBM. Organized by the University of California Berkley, CERN, GIAN, ICVolunteers, University of Geneva.
The 7th BOINC workshop will take place in Geneva on 5 and 6 September 2007.
The workshop follows the First and Second Pan-Galactic BOINC Workshops.
The objective of this workshop is to share information about BOINC and projects running on BOINC through short presentations and informal discussions, in a relaxed, open and friendly atmosphere. The workshop aims to stimulate new developments and activities related to BOINC, by allowing users to share their experience and requirements, giving developers the opportunity to outline their plans, and stimulating new collaborations between participants.
Who should attend? Anyone who is actively involved with BOINC is encouraged to attend. This includes anyone operating a BOINC project, developing BOINC, deploying BOINC, or interested in volunteer computing.
BOINC is an acronym for the Berkeley Open Infrastructure for Network Computing. The software was developed by the University of California at Berkeley, and it provides a framework for distributing compute-intensive applications across multiple processors. It does this by breaking up the data into discrete chunks, which it then makes available for download from a BOINC server.
What separates BOINC computing from more "traditional" distributed computing is where the computing is done. Volunteers can register for BOINC projects they find interesting, and thereby offer idle CPU cycles on their computer(s) to run BOINC applications.
Once a volunteer has registered with a BOINC project and installed the BOINC client software on his (or her) computer, the client communicates with the BOINC project's server and requests a "work unit" that it will download and execute. When the work unit has been treated results are sent to the server and it requests another work unit. All this happens essentially in the background of the volunteer's computer, although the BOINC client can display diverse status information.
The BOINC server takes care of issues such as communication with client computers, scheduling work, validation of results (by sending the same work unit to multiple clients and comparing the results), generating statistics, and attribution of the (highly sought-after) volunteer credits for the number of hours of client CPU time donated. The BOINC server runs on the Linux operating system. Client software exists for Linux, Windows, Mac OS X and Solaris.
In order to create a BOINC application, a scientist will typically start with a compute-intensive and inherently parallel algorithm, implement it in a programming language, and then make modifications in order to run in the BOINC client environment. These modifications consist of adding procedure calls to the BOINC library for starting, stopping, making intermediate checkpoints, and indicating "percent completed" values that are shown to the volunteer. Early client applications were written in FORTRAN, C or C++, but steady progress is being made towards supporting interpreted languages such as Java and Python.
Although the BOINC server offers a standard environment for generic server tasks like job scheduling and client communication, some application-specific administrative codes must also be written for the BOINC server. This can include checking results (validation), summarizing the results (assimilation), and possibly modifying input data for future work units based on the results of completed work units (generation).