[[PageOutline]] = Job-processing daemons = The job-processing pipeline involves several other daemons that are application-independent: i.e., there's part of BOINC, and you don't have to modify them. == Feeder == #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. If a user's project preferences include elements of the form `N` then the scheduler will send the user work only from those applications. == Transitioner == #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