Berkeley Open Infrastructure for Network Computing

From Freepedia

(Redirected from BOINC)

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 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.

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.

Contents

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

The major parts include the backend server, which 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 structure for distributing work and 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 advanced features including homogonous redundancy (sending work units only to computers of the same platform), work unit trickling (sending information to the server before the work unit completes), and 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:

  • boinc (or boinc.exe), the core client. The core client is a process which takes care of communications between the client and the server. It 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. On UNIX the core client is generally run as a daemon (or occasionally as a cron job); on Windows it is not a Windows service, but an ordinary application. Depending on how the BOINC client software was installed, it can either run in the backround 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.
  • boinkmgr (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 ot 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

Main article: BOINC Credit System

Projects using BOINC

Current projects

Projects under development

Future projects

Retired projects

References

See also

External links



Views
Personal tools
In other languages
Similar Links