[[PageOutline]] = 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 == #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 ... 4=high. --mod n i:: Handle only results for which mod(id, n) = i. This lets you run the feeder on arbitrarily many machines. --wmod 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 --random_order_db :: Use ''rand(sysdate())'' to order work items from the DB (only available in MySQL 5+) --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. --by_batch:: Interleave work items uniformly across batches. --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 `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 .. 4 = most verbose) --mod n i:: process only workunits with (id mod n) == i