Changes between Version 10 and Version 11 of BackendPrograms


Ignore:
Timestamp:
Sep 18, 2009, 4:10:59 PM (15 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BackendPrograms

    v10 v11  
    11[[PageOutline]]
    22
    3 = Work-handling daemons =
     3= Job-processing daemons =
    44
    5 A BOINC project includes of a set of daemons for generating and handling work. Each program should be listed as a [ProjectDaemons daemon] in the [ProjectConfigFile config.xml] file. Most daemons have the command-line options:
    6 
    7  -d N::
    8         Sets the verbosity level. 1 = critical messages only, 2 = normal messages, 3 = detailed debugging info.
    9  -one_pass::
    10         Process all available items, then quit.
    11  -mod n i::
    12         Handle only workunits for which mod(id, n) = i. This lets you run the daemon on arbitrarily many machines. (available for feeder, transitioner, validator).
    13  -sleep_interval N::
    14         How long to sleep when there's nothing to do.
    15 
    16 == Work generator == #workgen
    17 
    18 There is one work generator per application. It creates workunits and the corresponding input files. It is application-specific, and uses [WorkGeneration BOINC library functions] for registering the workunits in the database.
    19 
    20 During testing, you can create a single workunit using [WorkGeneration create_work], then use the daemon program [WorkGeneration#make_work make_work] to copy this workunit as needed to maintain a given supply of work.
     5The job-processing pipeline involves several other daemons
     6that are application-independent: i.e., there's part of BOINC,
     7and you don't have to modify them.
    218
    229== Feeder == #feeder
    2310
    24 This program is supplied by BOINC and is application independent. It creates a shared-memory segment used to pass database records to CGI scheduler processes. This data includes applications, application versions, and 'work items' (an unsent result and its corresponding workunit). It has the following command-line options:
     11This program is supplied by BOINC and is application independent.
     12It creates a shared-memory segment used to pass database records to CGI scheduler processes.
     13This data includes applications, application versions, and 'work items' (an unsent result and its corresponding workunit).
     14It has the following command-line options:
    2515
     16 -d N::
     17        Sets the verbosity level. 1=low ... 3=high.
     18 -mod n i::
     19        Handle only workunits for which mod(id, n) = i. This lets you run the feeder on arbitrarily many machines.
    2620 -random_order ::
    2721        Enumerate work items in order of increasing result.random
     
    4337== Transitioner == #transitioner
    4438
    45 This program is supplied by BOINC and is application independent.
    4639It handles state transitions of workunits and results.
    4740It generates initial results for workunits,
     
    5346 -d N:: debug level N (1, 2, 3=most verbose)
    5447 -mod n i:: process only WUs with (id mod n) == i
    55 
    56 
    57 == Validator == #validator
    58 
    59 There is one validator per application. It compares redundant results and selects a canonical result representing the correct output, and a canonical credit granted to users and hosts that return the correct output. Depending on your application, you may be able to use a BOINC-supplied validator, or you may have to [ValidationIntro develop a customized validator].
    60 
    61 == Assimilator == #assimilator
    62 
    63 There is one assimilator per application. It handles workunits that are 'completed': that is, that have a canonical result or for which an error condition has occurred. Handling a successfully completed result might involve record results in a database and perhaps generating more work. See [AssimilateIntro more details].
    64 
    65 == File deletion == #file_deleter
    66 
    67 The application-independent program [FileDeleter file_deleter] deletes input and output files when they are no longer needed. Unlike the rest, this daemon isn't strictly necessary; the server will still work without it, but unneeded data will accumulate in download and upload directories.
    68 
    69 == Database purging == #db_purge
    70 
    71 The application-independent program [DbPurge db_purge] removes work-related database entries when they are no longer needed. This keeps your database at a constant size even when your project runs for a long time.