Changes between Version 2 and Version 3 of BasicConcepts


Ignore:
Timestamp:
Jun 9, 2008, 9:21:54 AM (16 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BasicConcepts

    v2 v3  
     1[[PageOutline]]
     2
    13= Basic concepts =
    24
    3 1) BOINC high-level architecture
    4                 projects, URLs
    5                 accounts
    6                 clients, attachment
    7                 preferences
    8                 applications
    9                 app version
    10                 platforms
     5== Project ==
     6
     7A '''project''' is an entity that does distributed computing using BOINC.
     8Projects are independent; each one has its own applications, database, web site, and servers,
     9and is not affected by the status of other projects.
     10Each project is identified by a [ServerComponents#ThemasterURL master URL],
     11the URL of its web site.
     12
     13It the implementation level, a project consists of
     14 * a directory tree, containing files related to the project, and
     15 * a MySQL database.
     16
     17Multiple projects can coexist on a single server computer.
     18
     19The components of a project include:
     20
     21=== Application ===
     22
     23An '''application''' includes several programs (for different platforms)
     24and a set of [JobIn workunits] and [JobOut results].
     25A project can include multiple applications.
     26
     27=== Platform ===
     28
     29A '''platform''' is a compilation target - typically a combination of a CPU architecture and an operating system.
     30BOINC defines a set of standard platforms, but a project can define its own.
     31
     32=== Application versions ===
     33
     34An application program may go through a sequence of versions.
     35A particular version, compiled for a particular platform,
     36is called an '''application version'''.
     37An application version consists of one or more files.
     38
     39=== Workunit ===
     40
     41A '''workunit''' is a computation to be performedi, i.e. a "job".
     42It may include any number of input files.
     43It has various attributes, such as resource requirements and deadline.
     44
     45A work is associated with an application, not with an application version.
     46In other words, you don't specify what platform the job is to be run on.
     47
     48=== Result ===
     49
     50A '''result''' describes an instance of a computation, either unstarted, in progress, or completed.
     51Each result is associated with a workunit.
     52In some cases there may be several instances, or "replicas", of a given workunit.
     53
     54=== Account ===
     55
     56Each volunteer in a project has an '''account''', identified by an email address and password.
     57An account has an associated amount of '''credit''',
     58a numerical measure of the work done by that volunteer's computers.
     59
     60== Client and attachment ==
     61
     62Volunteers run a program called the '''BOINC client''';
     63this is the only software they manually download.
     64
     65A given computer running the BOINC client can be '''attached''' to
     66accounts on one or more project.
     67Each attachment has a '''resource share'''.
     68If a computer is attached to multiple projects,
     69its resources are divided among them in proportion
     70to their resource shares.
     71
     72== BOINC in a nutshell ==
     73
     74The overall flow of BOINC:
     75
     76 * When a BOINC client runs low on work, it issues a '''scheduler request''' to one of its attached projects.  The request message specifies the client's platform.
     77 * The project's '''scheduler''' (a daemon running on its server) scans the project's database for jobs that can be handled by the client, and returns one or more.
     78 * The client downloads the files associated with the application versions and workunits, and executes the programs.
     79 * When the jobs are completed, the client uploads the resulting output files.
     80
     81This cycle is repeated indefinitely.