wiki:BoincOverview

Version 1 (modified by davea, 6 years ago) (diff)

--

Computing with BOINC

BOINC is a platform for distributed "high throughput computing", i.e. large numbers of independent compute-intensive jobs, where there performance goal is high rate of job completion rather than low turnaround time of individual jobs. It also offers low-level mechanisms for distributed data storage.

BOINC has a client/server architecture. The server distributes jobs. The client runs on worker nodes, which execute jobs.

BOINC was originally designed for "volunteer computing", where the worker nodes are consumer devices (desktop and laptop computers, tables, smartphones) volunteered by their owners. It addresses the various challenges inherent in this environment (heterogeneity, host churn and unreliability, scale, security, and so on).

In this arena, there are many servers, operated by various "BOINC projects" such as SETI@home, LHC@home, IBM World Community Grid, and so on. The BOINC client can be "attached" to one or many of these; it processes jobs for the projects to which it is attached.

BOINC can also be used for in-house computing within an organization (e.g. a company). In this case case the worker nodes would be are cluster nodes or other organizational computers, and they would be attached to the organization's server.

BOINC is distributed under the LGPL v3 open-source license. It can be used for any purpose (academic, commercial, or private) and can be used with applications that are not open-source.

Getting started

To compute using BOINC, you will need to set up a BOINC server and configure your applications to run under BOINC. Instructions for doing this are here.

If you're doing in-house computing, install the BOINC client on your computers, and you're done. We won't discuss this case further.

Next, you'll need to get clients to attach to your server. There are several ways to do this:

  1. Create a public-facing web site for your project.

Announce it and publicize it in whatever channels are available to you: mass media, social media, newletters, paid advertising, etc.

  1. Contact David Anderson? and ask to have your project listed by BOINC.

You'll need to convince me that a) your project is doing what you claim it is, and b) you're following a set of security practices. Your project will then a) be announced on the BOINC web site news column, b) listed on the BOINC web site, and c) appear in the list of projects shown in the BOINC client GUI.

  1. Contact David Anderson? and ask to have your project

listed in Science United. You'll need to tell me what type of research your project is doing, and then you'll automatically get computing power from volunteers who have registered an interest in that area. This has the advantage that you don't have to create a public-facing web site or do any publicity. In addition, you can ask to be listed in Science United even before you've created your project. At that point I can tell roughly how much computer power you'll get, and you can decide whether this justified the investment in creating a project.

These approaches are not mutually exclusive; you can do any or all of them.

Organizational structures

If you want to use volunteer computing, you have two options:

# C

k .'<p></p>'.

tra("%1 Universities%2: use BOINC to create a %3Virtual Campus Supercomputing Center%4.",

"<b>", "</b>", "<a href=\"trac/wiki/VirtualCampusSupercomputerCenter\">", "</a>"

) .'<p></p>'. tra("%1Companies%2: use BOINC for %3desktop Grid computing%4.",

"<b>", "</b>", "<a href=https://boinc.berkeley.edu/trac/wiki/DesktopGrid>", "</a>"

) .'<p></p>

<a class="btn btn-xs btn-primary" href=trac/wiki/BoincDocker>'.tra("BOINC and Docker").'</a>