| 1 | = Introduction to job processing = |
| 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 and |
| 6 | gives you the output files when it's done. |
| 7 | 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: |
| 10 | |
| 11 | * You need to process thousands or millions of jobs, using only a few applications. |
| 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. |
| 14 | |
| 15 | To handle these requirements, BOINC defines an architecture |
| 16 | in which jobs are processed in a pipeline consisting |
| 17 | of the following programs: |
| 18 | |
| 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. |
| 22 | |
| 23 | Typically these programs are application-specific, |
| 24 | and you will need to develop them (usually in C++) using |
| 25 | frameworks supplied by BOINC. |
| 26 | In some cases you may be able to use sample versions that are part of BOINC. |