mirror of https://github.com/BOINC/boinc.git
154 lines
5.0 KiB
HTML
154 lines
5.0 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
|
|
<html lang="en">
|
|
<head>
|
|
<title>Introduction to BOINC</title>
|
|
<meta name="generator" content="BBEdit 6.1.2">
|
|
</head>
|
|
<body>
|
|
<h2>Introduction to BOINC</h2>
|
|
<p>
|
|
Berkeley Open Infrastructure for Network Computing (BOINC) is a
|
|
software platform for public-participation distributed computing
|
|
projects like distributed.net and SETI@home. BOINC supports applications
|
|
that can be divided into large parallel parts with few data
|
|
dependencies; it is not presently intended for fine-grained parallel
|
|
applications.
|
|
</p>
|
|
<p>
|
|
The features of BOINC include:
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
<b>Multiple Independent Projects</b>
|
|
<br>
|
|
BOINC allows multiple independent projects to share
|
|
participants. Participants download a single <b>core client</b> program,
|
|
which in turn downloads and executes project-specific executables.
|
|
Participants can control how their resources are divided among the
|
|
projects and which projects they participate in. Participants may also
|
|
control how many applications are running at once, thereby taking
|
|
advantage of multiple CPU systems. Since the projects are independent,
|
|
any downtime for one project will merely result in temporary extra
|
|
processing power for another.
|
|
<br>
|
|
<br>
|
|
</li>
|
|
<li>
|
|
<b>Comprehensive Security</b>
|
|
<br>
|
|
All file transfers to the host computer are validated with an
|
|
MD5 checksum, and all executable files are signed with RSA
|
|
public/private key encryption (1024 bit default). See the <a
|
|
href="security.html">security</a> page for more details.
|
|
<br>
|
|
<br>
|
|
</li>
|
|
<li>
|
|
<b>Host Work Caching</b>
|
|
<br>
|
|
The BOINC core client will download enough work to keep the host
|
|
busy for a user specifiable amount of time. This will allow the client
|
|
to continue to function during project downtimes, as well as decrease
|
|
the frequency of connections to servers.
|
|
<br>
|
|
<br>
|
|
</li>
|
|
<li>
|
|
<b>Multiple Platform Support</b>
|
|
<br>
|
|
The BOINC core client can run on almost any platform (Mac OS X,
|
|
Windows 95 and later, Linux and other Unix systems) and provides OpenGL
|
|
based graphics support on Mac OS X, Windows 95 and up, and X Windows.
|
|
<br>
|
|
<br>
|
|
</li>
|
|
<li>
|
|
<b>Multiple Server Support</b>
|
|
<br>
|
|
The BOINC architecture supports multiple scheduling and data
|
|
servers. If one server is temporarily unavailable, clients will
|
|
automatically try alternate servers. If all servers are unavailable,
|
|
clients will perform random exponential backoff to avoid flooding the
|
|
server.
|
|
<br>
|
|
<br>
|
|
</li>
|
|
<li>
|
|
<b>Open Source</b>
|
|
<br>
|
|
BOINC is fully open source and is distributed under the Mozilla
|
|
Public License version 1.0. Under this license, projects that utilize
|
|
BOINC are not required to release the source code of their project
|
|
specific applications, though they are encouraged to do so. This means
|
|
BOINC is well suited for private, commercial, or public distributed
|
|
computing projects.
|
|
<br>
|
|
<br>
|
|
</li>
|
|
<li>
|
|
<b>Support for Large Data Computations</b>
|
|
<br>
|
|
BOINC supports applications that produce or consume large
|
|
amounts of data (on the order of gigabytes). It allows data distribution
|
|
and collection to be spread across many servers, and it allows
|
|
participant hosts to do large data transfers unobtrusively. Users are
|
|
able to specify maximum storage usage so that BOINC doesn't fill up
|
|
their disk. BOINC also handles network disconnections and allows
|
|
user-specifiable network bandwidth restrictions.
|
|
<br>
|
|
<br>
|
|
</li>
|
|
<li>
|
|
<b>Extreme Resource Requirement Support</b>
|
|
<br>
|
|
BOINC supports applications with extreme requirements for
|
|
memory, disk, cache or other resources. Work is dispatched only to hosts
|
|
able to handle it.
|
|
<br>
|
|
<br>
|
|
</li>
|
|
<li>
|
|
<b>Application Program Interface</b>
|
|
<br>
|
|
An Application Program Interface (API) is provided to
|
|
application developers to ease integration with BOINC. See the <a
|
|
href="api.html">API page</a> for details.
|
|
<br>
|
|
<br>
|
|
</li>
|
|
<li>
|
|
<b>Support for Applications in any Language</b>
|
|
<br>
|
|
BOINC applications can be developed in any language (C++,
|
|
Fortran, Perl). An application can consist of several files (e.g.
|
|
multiple programs and a coordinating script). New versions of
|
|
applications can be deployed without requiring participants to download.
|
|
|
|
<br>
|
|
<br>
|
|
</li>
|
|
<li>
|
|
<b>Web Based User and Administrative Interfaces</b>
|
|
<br>
|
|
A set of PHP scripts is included to provide interfaces for user
|
|
and administrative tasks. These include preference editing, account
|
|
creation and user information display.
|
|
<br>
|
|
<br>
|
|
</li>
|
|
<li>
|
|
<b>Database and Server Architecture</b>
|
|
<br>
|
|
BOINC provides a SQL schema, database functions, a simple server
|
|
architecture, web based user interfaces and server administration tools.
|
|
Each project must provide and maintain its own server systems and
|
|
backend result processing but these systems can be set up easily and
|
|
require only open-source components (MySQL, PHP, Apache, and Linux). The
|
|
BOINC scheduling server also supports FastCGI for enhanced server
|
|
performance.
|
|
</li>
|
|
</ul>
|
|
</body>
|
|
</html>
|