wiki:AssignedWork

Version 11 (modified by Nicolas, 16 years ago) (diff)

Removed bold from link (it doesn't work there)

Assigned work

This mechanism lets you assign a job to:

  • a particular host.
  • one or all of the hosts belonging to a user.
  • one or all of the hosts belonging to a team.
  • all hosts (this could be used to run application-specific benchmarks, test for hardware or software features, or test CPUs).

A host with assigned jobs won't get any other jobs until the assigned ones are finished and reported.

Assigned jobs are not validated or assimilated. You must develop your own scripts or programs to process and clean up finished jobs.

To enable this feature you must add

<enable_assignment>1</enable_assignment>

to your config.xml file.

Creating assigned work

The create_work script take the following optional arguments:

--assign_all
assign the job to all hosts
--assign_host ID
assign the job to the given host
--assign_user_one ID
assign the job to one host of the given user
--assign_user_all ID
assign the job to all hosts of the given user
--assign_team_one ID
assign the job to one host of the given team
--assign_team_all ID
assign the job to all hosts of the given team

The names of work units for assigned jobs must include the string asgn (this prevents them from being validated or assimilated).

After creating an assigned job, you must let the feeder know. You can do this by doing either of:

  • stop and start the project
  • touch the file reread_db in the project directory

Management tools

The assign.php script (in ops/) manages assigned work. It shows a list of assignments and their status, and lets you remove assignments (the WU and result records remain in the database).

Implementation

Results for assigned work units are created on demand (in the scheduler) rather than by the transitioner.

Assignments are stored in an assignments table.

If <enable_assignment> is set in the config file, the scheduler checks for assignments for the given host. If it finds any for which the result has not already been reported and the job is not in progress, it creates a result record and sends it to the host.