Changes between Version 4 and Version 5 of JobIntro


Ignore:
Timestamp:
Apr 12, 2014, 1:10:34 PM (11 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • JobIntro

    v4 v5  
    11= Introduction to job processing =
    22
    3 Most distributed processing systems let you submit jobs -
    4 you supply an executable and some input files,
    5 and the system runs the job on a remote computer and
     3In conventional distributed processing systems a job consists of
     4an executable and some input files.
     5The system runs the job on a remote computer and
    66gives you the output files when it's done.
     7
    78You can do this type of [SingleJob single job submission] in BOINC.
    8 
    9 However, BOINC is designed for different types of situation, in particular those where:
     9However, BOINC is designed for situations where
    1010
    1111 * You need to process thousands or millions of jobs, using only a few applications.
    1212 * You want jobs to be '''platform-independent''', i.e. you don't have to specify what kind of computer to use.
    13  * You want job results to be validated by replication.
     13 * You don't trust remote computers, so you want to to "validate" their results.
    1414
    1515To handle these requirements, BOINC defines an architecture
    16 in which jobs are processed in a pipeline consisting
    17 of the following programs:
     16in which jobs are processed in a pipeline consisting of the following steps:
    1817
    19  * A '''work generator''' creates jobs.
    20  * A '''validator''' compares replicated results and selects one of them as 'canonical', or correct.
    21  * An '''assimilator''' handles validated results, storing them in an archive or database.
     18 * You submit jobs.
     19 * The jobs are executed on remote hosts.
     20    In some cases, jobs may be "replicated", i.e. executed on multiple hosts.
     21 * A [ValidationIntro '''validator'''] examines replicas and selects one of them as 'canonical', or correct.
     22 * An [AssimilateIntro '''assimilator'''] handles validated results, storing them in an archive or database.
    2223
    23 Typically these programs are application-specific,
    24 and you will need to develop them (usually in C++) using
     24Typically validators and assimilators are application-specific,
     25and you'll need to develop them (usually in C++) using
    2526frameworks supplied by BOINC.
    2627In some cases you may be able to use sample versions that are part of BOINC.
    2728Each program should be listed as a [ProjectDaemons daemon] in the [ProjectConfigFile config.xml] file.
    2829
    29 == Submitting jobs locally ==
     30== Submitting jobs ==
    3031
    31 To submit a job:
     32To set up for submitting jobs, you must
    3233
     34 1. Create an [XaddTool app] and [AppVersionNew app versions].
    3335 1. Write XML [JobTemplates template files] that describe the job's input and output files
    3436  (typically the same template files can be used for many jobs).
    35  1. [JobStage Stage] the job's input file(s)
    36  1. Invoke a [JobSubmission BOINC function or script] that submits the job.
     37 1. Set up a validator and assimilator for the application.
     38
     39Then, for each job, you must
     40 1. Stage the job's input file(s) on the BOINC server.
     41 1. Submit the job, using any of several methods (see below).
    3742
    3843Once this is done, BOINC takes over: it creates one or more instances of the job,
    3944distributes them to client hosts, collects the output files.
    40 It [ValidationIntro validates] and
    41 [AssimilateIntro processes] the results,
    42 and deletes the input and output files.
     45It validates and assimilates the results, and deletes the input and output files.
    4346
    44 Steps 2) and 3) may be done by a [WorkGeneration work generator] program
    45 that creates lots of jobs.
     47=== Local submission ===
    4648
    47 == Submitting jobs remotely ==
     49In this approach, jobs are submitted by programs or scripts run on the BOINC server.
     50The job submitter, of course, must have login access to the server.
    4851
    49 Submitting jobs locally requires being logged in to the BOINC server.
    50 In some cases you may want to allow jobs to be submitted
    51 without logging in - e.g., via a web interface.
    52 This is discussed [RemoteOverview here].
     52=== Web-based submission ===
     53
     54In this approach, jobs are submitted via web pages running on the BOINC server.
     55The job submitter need not have login access to the server.
     56
     57=== Remote submission ===
     58
     59In this approach, jobs are submitted by programs or web pages running
     60outside the BOINC server.