Berkeley Open Infrastructure for Network Computing

From Free net encyclopedia

{{Infobox Software |name =
BOINC |logo = Image:Boinc.png |caption = |developer = University of California, Berkeley |latest_release_version = 5.2.13 |latest_release_date = November 29, 2005 |operating_system = Linux, Mac OS X, Solaris, Windows |genre = Supply of computing power |license = LGPL |website = boinc.berkeley.edu }}

The Berkeley Open Infrastructure for Network Computing (BOINC) is a distributed computing infrastructure, originally developed out of the SETI@home project, but intended to be useful to fields beyond SETI. This software platform is open in that it is free and open source software released under the GNU Lesser General Public License. Currently BOINC is being developed by a team based at the University of California, Berkeley led by David Anderson, the project director of SETI@home - a project which uses this software. As a "quasi-supercomputing" platform BOINC has over 360,000 active computers worldwide processing on average 418 TFLOPS of data as of April 13th 2006[1]. This is 49% more powerful than Blue Gene, the world's fastest computer.

Contents

SETI@home origins of the BOINC platform

Image:BOINCManager.png SETI@home is one of the better known projects that utilizes the BOINC distributed platform.

The success of SETI@home—which after its launch in 1999 quickly became the most powerful computing network ever assembled — made it clear that distributed computing could be used for many other computing-intensive scientific projects.

The intent of BOINC is to make it possible for researchers in areas as diverse as molecular biology, climatology, and astrophysics to tap into the enormous but under-utilized calculating power of personal computers world-wide. In essence BOINC is software that can use the unused CPU cycles on a computer, to analyse scientific data—what you don't use of your computer, it uses.

BOINC is funded by the National Science Foundation through awards SCI/0221529, SCI/0438443 and SCI/0506411.

Design and structure of BOINC

BOINC is designed to be a free structure for anyone wishing to start a distributed computing project. Most BOINC projects are considered to be nonprofit and rely heavily, if not completely, on volunteers. However, this does not mean BOINC cannot be used for profit. BOINC consists of a server system and client software that communicate with each other to distribute, process, and return work units.

Server structure

A major part of BOINC is the backend server. The server can be run on one or many machines to allow BOINC to be easily scalable to projects of any size. BOINC servers run on Linux based computers and use Apache, PHP, and MySQL as a basis for its web and database systems.

BOINC is simply the information technology infrastructure for distributing work in the form of work units and downloading the distributed applications that process them. BOINC does no useful scientific work itself. Scientific computations are run on user computers and results are analyzed after they are validated and transferred from BOINC into a scientific database.

BOINC servers also provide these advanced features

  • homogeneous redundancy (sending work units only to computers of the same platform -- ie: Win XP SP2 only.)
  • work unit trickling (sending information to the server before the work unit completes)
  • locality scheduling (sending work units to computers that already have the necessary files and creating work on demand)

Client structure

Image:BOINC screenshot.png

BOINC on the client is structured into a number of separate applications. These intercommunicate using the BOINC remote procedure call (RPC) mechanism. These component applications are:

  • The program boinc (or boinc.exe) is the core client.
  • The core client is a process which takes care of communications between the client and the server.
  • The core client also downloads science applications, provides a unified logging mechanism, makes sure science application binaries are up-to-date, and schedules CPU resources between science applications (if several are installed).
  • Although the core client is capable of downloading new science applications, it does not update itself. BOINC's authors felt doing so posed an unacceptable security risk, as well all of the risks that automatic update procedures have in computing.
  • On Unix, the core client is generally run as a daemon (or occasionally as a cron job).
  • On Windows, BOINC initially was not a Windows service, but an ordinary application. BOINC Client for Windows, Versions 5.2.13 and higher add, during installation, the option of "Service Installation".
  • Depending on how the BOINC client software was installed, it can either run in the background like a daemon, or starts when an individual user logs in (and is stopped when the user logs out). The software version management and work-unit handling provided by the core client greatly simplifies the coding of science applications.
  • One or several science applications. Science applications perform the core scientific computation. There is a specific science application for each of the distributed computation projects which use the BOINC framework. Science applications use the BOINC daemon to upload and download work units, and to exchange statistics with the server.
  • boincmgr (or boincmgr.exe), a GUI which communicates with the core application over RPC. By default a core client only allows connections from the same computer, but it can be configured to allow connections from other computers (optionally using password authentication); this mechanism allows one person to manage a farm of BOINC installations from a single workstation.
  • The GUI is written using the cross-platform WxWidgets toolkit, providing the same user experience on different platforms. Users can connect to BOINC core clients, can instruct those clients to install new science applications, can monitor the progress of ongoing calculations, and can view the BOINC system message logs.
  • The BOINC screensaver. This provides a framework whereby science applications can display graphics in the user's screensaver window. BOINC screensavers are coded using the BOINC graphics API, Open GL, and the GLUT toolkit. Typically BOINC screensavers show animated graphics detailing the work underway, perhaps showing graphs or charts or other data visualisation graphics.
  • Some science applications do not provide screensaver functionality (or stop providing screensaver images when they are idle). In this circumstance the BOINC screensaver shows a small BOINC logo which bounces around the screen.

BOINC Credit System

Template:Main

Projects using BOINC

Current projects

Projects under development

These projects are considered to be in the Alpha or Beta development stages. Some may be totally safe for your computer, while others may cause minor damage under select circumstances. Join these projects with caution. It is generally recommended that you only join these projects if you have XP SP2 (or hardened Linux) with CPU hardware (and OS software) that prevents malicous program behavior.

Future projects

Proposed projects

There are several proposals for distributed computing projects on the web

Retired projects

References

See also

External links

Template:Commons

da:Berkeley Open Infrastructure for Network Computing de:Berkeley Open Infrastructure for Network Computing fr:Berkeley Open infrastructure for Network Computing it:Berkeley Open Infrastructure for Network Computing hu:Berkeley Open Infrastructure for Network Computing nl:Berkeley Open Infrastructure for Network Computing ja:Berkeley Open Infrastructure for Network Computing pl:BOINC pt:BOINC ru:BOINC sk:BOINC fi:BOINC sv:Berkeley Open Infrastructure for Network Computing zh:BOINC