Changes between Initial Version and Version 1 of BackendPrograms


Ignore:
Timestamp:
Apr 24, 2007, 2:01:47 PM (17 years ago)
Author:
Nicolas
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BackendPrograms

    v1 v1  
     1= Work-handling daemons =
     2
     3A 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:
     4
     5 -d N::
     6        Sets the verbosity level. 1 = critical messages only, 2 = normal messages, 3 = detailed debugging info.
     7 -one_pass::
     8        Process all available items, then quit.
     9 -mod n i::
     10        Handle only workunits for which mod(id, n) = i. This lets you run the daemon on arbitrarily many machines. (available for feeder, transitioner, validator).
     11 -sleep_interval N::
     12        How long to sleep when there's nothing to do.
     13
     14== Work generator ==
     15
     16There 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.
     17
     18During testing, you can create a single workunit using [WorkGeneration create_work], then use the daemon program [http://boinc.berkeley.edu/busy_work.php make_work] to copy this workunit as needed to maintain a given supply of work.
     19
     20== Feeder ==
     21
     22This 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:
     23
     24 -random_order ::
     25        Enumerate work items in order of increasing result.random
     26 -priority_order::
     27        Enumerate work items in order of decreasing result.priority
     28 -priority_order_create_time::
     29        Enumerate work items in order of decreasing result.priority, then increasing workunit.create_time
     30 -sleep_interval N::
     31        Sleep N seconds if nothing to do
     32 -allapps::
     33        Interleave work items from all applications. Weight applications according to the value of their 'weight' field; if all weights are zero, results are interleaved uniformly. Without this option, runnable results are enumerated in an indeterminate order, and there may be periods when only results from one application are available for sending.
     34 -purge_stale X::
     35        remove work items from the shared memory segment that have been there for longer then x minutes but haven't been assigned
     36
     37If a user's project preferences include elements of the form `<app_id>N</app_id>` then the scheduler will send the user work only from those applications.
     38
     39== Transitioner ==
     40
     41This program is supplied by BOINC and is application independent. It handles state transitions of workunits and results. It generates initial results for workunits, and generates more results when timeouts or errors occur.
     42
     43== Validator ==
     44
     45There 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 develop a customized validator; [ValidationIntro details are here].
     46
     47== Assimilator ==
     48
     49There 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.
     50
     51== File deletion ==
     52
     53The application-independent program [FileDeleter file_deleter] deletes input and output files when they are no longer needed.
     54
     55== Database purging ==
     56
     57The 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.