wiki:BackendPrograms

Version 13 (modified by davea, 10 years ago) (diff)

--

Job-processing daemons

The job-processing pipeline involves several other daemons that are application-independent: i.e., they're part of BOINC, and you don't have to modify them.

Feeder

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:

-d N
Sets the verbosity level. 1=low ... 3=high.
-mod n i
Handle only workunits for which mod(id, n) = i. This lets you run the feeder on arbitrarily many machines.
-random_order
Enumerate work items in order of increasing result.random
-priority_order
Enumerate work items in order of decreasing result.priority
-priority_order_create_time
Enumerate work items in order of decreasing result.priority, then increasing workunit.id
-sleep_interval N
Sleep N seconds if nothing to do
-allapps
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.
-purge_stale X
remove work items from the shared memory segment that have been there for longer than x minutes but haven't been assigned
-appids N1, N2, …
Get work only for the given apps. Useful if your project uses both locality and job-cache scheduling. Can't be used in combination with -allapps, but you can get the same effect by using -allapps and assigning nonzero weights only to the apps you want.

If 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.

Transitioner

It handles state transitions of workunits and results. It generates initial results for workunits, and generates more results when timeouts or errors occur. Options:

-sleep_interval N
sleep N seconds if nothing to do (default 5)
-one_pass
do one pass, then exit
-d N
debug level N (1, 2, 3=most verbose)
-mod n i
process only WUs with (id mod n) == i