Changes between Version 4 and Version 5 of JobIntro
- Timestamp:
- Apr 12, 2014, 1:10:34 PM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
JobIntro
v4 v5 1 1 = Introduction to job processing = 2 2 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 and3 In conventional distributed processing systems a job consists of 4 an executable and some input files. 5 The system runs the job on a remote computer and 6 6 gives you the output files when it's done. 7 7 8 You 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: 9 However, BOINC is designed for situations where 10 10 11 11 * You need to process thousands or millions of jobs, using only a few applications. 12 12 * 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. 14 14 15 15 To handle these requirements, BOINC defines an architecture 16 in which jobs are processed in a pipeline consisting 17 of the following programs: 16 in which jobs are processed in a pipeline consisting of the following steps: 18 17 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. 22 23 23 Typically these programs are application-specific,24 and you will need to develop them (usually in C++) using24 Typically validators and assimilators are application-specific, 25 and you'll need to develop them (usually in C++) using 25 26 frameworks supplied by BOINC. 26 27 In some cases you may be able to use sample versions that are part of BOINC. 27 28 Each program should be listed as a [ProjectDaemons daemon] in the [ProjectConfigFile config.xml] file. 28 29 29 == Submitting jobs locally==30 == Submitting jobs == 30 31 31 To s ubmit a job:32 To set up for submitting jobs, you must 32 33 34 1. Create an [XaddTool app] and [AppVersionNew app versions]. 33 35 1. Write XML [JobTemplates template files] that describe the job's input and output files 34 36 (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 39 Then, 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). 37 42 38 43 Once this is done, BOINC takes over: it creates one or more instances of the job, 39 44 distributes 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. 45 It validates and assimilates the results, and deletes the input and output files. 43 46 44 Steps 2) and 3) may be done by a [WorkGeneration work generator] program 45 that creates lots of jobs. 47 === Local submission === 46 48 47 == Submitting jobs remotely == 49 In this approach, jobs are submitted by programs or scripts run on the BOINC server. 50 The job submitter, of course, must have login access to the server. 48 51 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 54 In this approach, jobs are submitted via web pages running on the BOINC server. 55 The job submitter need not have login access to the server. 56 57 === Remote submission === 58 59 In this approach, jobs are submitted by programs or web pages running 60 outside the BOINC server.