Update BoincIntro.md file

Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
Vitalii Koshura 2023-04-06 11:10:16 +02:00
parent 8f40b8ede4
commit 146666c55c
No known key found for this signature in database
GPG Key ID: CE0DB1726070A5A3
1 changed files with 22 additions and 24 deletions

@ -1,35 +1,33 @@
BOINC is a software platform for [volunteer computing](wiki:VolunteerComputing) and [desktop Grid computing](wiki:DesktopGrid). Its features include: # BOINC's support for volunteer computing
*Project autonomy*:: Many projects use BOINC. Projects are independent; each one operates its own servers and databases. There is no central directory or approval process. BOINC provides a number of features that address the specific needs of volunteer computing:
*Volunteer flexibility*:: Volunteers can participate in multiple projects; they control which projects they participate in, and how their resources are divided among these projects. When a project is down or has no work, the resources of its volunteers are divided among other projects. ### **Project autonomy**
Many projects use BOINC. Projects are independent; each one operates its own servers and databases. There is no central directory or approval process.
*Flexible application framework*:: Existing applications in common languages (C, C++, Fortran) can run as BOINC applications with little or no modification. An application can consist of several files (e.g. multiple programs and a coordinating script). New versions of applications can be deployed without needing any action by volunteers. ### **Volunteer flexibility**
Volunteers can participate in multiple projects; they control which projects they participate in, and how their resources are divided among these projects. When a project is down or has no work, the resources of its volunteers are divided among other projects.
*Security*:: BOINC protects against several types of attacks. For example, digital signatures based on public-key encryption protect against the distribution of viruses. ### **Flexible application framework**
Existing applications in common languages (C, C++, Fortran) can run as BOINC applications with little or no modification. An application can consist of several files (e.g. multiple programs and a coordinating script). New versions of applications can be deployed without needing any action by volunteers.
*Server performance and scalability*:: The BOINC server software is extremely efficient, so that a single mid-range server can dispatch and handle millions of jobs per day. The server architecture is also highly scalable, making it easy to increase server capacity or availability by adding more machines. ### **Security**
BOINC protects against several types of attacks. For example, digital signatures based on public-key encryption protect against the distribution of viruses.
*Source code availability*:: BOINC is distributed under the [General Public License](Lesser)(http://www.gnu.org/copyleft/lesser.html). However, BOINC applications need not be open source. ### **Server performance and scalability**
The BOINC server software is extremely efficient, so that a single mid-range server can dispatch and handle millions of jobs per day. The server architecture is also highly scalable, making it easy to increase server capacity or availability by adding more machines.
*Support for large data*:: BOINC supports applications that produce or consume large amounts of data, or that use large amounts of memory. Data distribution and collection can be spread across many servers, and participant hosts transfer large data unobtrusively. Users can specify limits on disk usage and network bandwidth. Work is dispatched only to hosts able to handle it. ### **Source code availability**
BOINC is distributed under the [Lesser General Public License](http://www.gnu.org/copyleft/lesser.html). However, BOINC applications need not be open source.
*Multiple participant platforms*:: The BOINC core client is available for most common platforms (Mac OS X, Windows, Linux and other Unix systems). The client can use multiple CPUs. ### **Support for large data**
BOINC supports applications that produce or consume large amounts of data, or that use large amounts of memory. Data distribution and collection can be spread across many servers, and participant hosts transfer large data unobtrusively. Users can specify limits on disk usage and network bandwidth. Work is dispatched only to hosts able to handle it.
*Open, extensible software architecture*:: BOINC provides documented interfaces to many of its key components, making it possible for third-party developers to create software and web sites that extend BOINC. ### **Multiple participant platforms**
The BOINC core client is available for most common platforms (Mac OS X, Windows, Linux and other Unix systems). The client can use multiple CPUs.
*Volunteer community features*:: BOINC provides web-based tools, such as message boards, user profiles, and private messaging, that encourage volunteers to form online communities. ### **Open, extensible software architecture**
BOINC provides documented interfaces to many of its key components, making it possible for third-party developers to create software and web sites that extend BOINC.
# Which applications are suitable for BOINC? #suitable-apps ### **Volunteer community features**
BOINC is designed to support applications that have large computation requirements, storage requirements, or both. The main requirement of the application is that it be divisible into a large number (thousands or millions) of jobs that can be done independently. BOINC provides web-based tools, such as message boards, user profiles, and private messaging, that encourage volunteers to form online communities.
If the project is going to use volunteered resources, there are additional requirements:
*Public appeal*:: An application must be viewed as interesting and worthwhile by the public in order to gain large numbers of participants. A project must have the resources and commitment to maintain this interest, typically by creating a compelling web site and by generating interesting graphics in the application.
*Low data/compute ratio*:: Input and output data are sent through commercial Internet connections, which may be expensive and/or slow. As a rule of thumb, if your application produces or consumes more than a gigabyte of data per day of CPU time, then it may be cheaper to use in-house cluster computing rather than volunteer computing.
# What resources are needed to create a BOINC project? #resources
If you have an existing application, figure on about three man-months to create the project: one month of an experienced sys admin, one month of a programmer, and one month of a web developer (these are very rough estimates). Once the project is running, budget a 50% FTE (mostly system admin) to maintain it. In terms of hardware, you'll need a mid-range server computer (e.g. Dell Poweredge) plenty of memory and disk. Budget about $5,000 for this. You'll also need a fast connection to the commercial Internet (T1 or faster).
It may be difficult for some scientists to provide these resources. In this case, it may be possible to create a BOINC project at a higher organizational level, to serve the needs of multiple scientists. For example, such a project might be created at the [university campus](wiki:VirtualCampusSupercomputerCenter) level. Several U.S. funding agencies (NSF, NIH) have programs that could support this.