Manage Tasker Lists

A tasker list is a named, ordered list of taskers. Tasker lists can be used to enhance performance or restrict usage.

Examples include:
  • Make the scheduler more efficient on large farms.
  • Pack jobs more tightly on the farm machines.
  • Restrict jobs to selected taskers.

Every vovserver has at least one tasker list named default, which includes all the taskers in the system. The order of the taskers is determined by the connection order unless modified by the commands shown below. The default list cannot be deleted or recreated; taskers can be reordered in the default list.

A tasker list can contain all taskers or a subset of taskers. A tasker list can also be empty.
Note: Typically, a small number of tasker lists are setup for a system, approximately 20. A large number of tasker lists may result in inefficient searches for available resources.

An administrator can create, modify and delete tasker lists with the utility vovtaskerlist.

vovtaskerlist

Manipulate tasker lists.


vovtaskerlist: Usage Message

DESCRIPTION:
    Manipulate tasker lists.

USAGE:
    % vovtaskerlist ACTION [OPTIONS] 

OPTIONS:
    -h                  -- This help
    -v                  -- Increase verbosity
 
   Actions:
    create               -- Create a new list
    append
    first 
    last 
    get                 -- Get taskers in a list
    list                -- List all tasker lists
    delete              -- Delete specified tasker list
    bigram              -- Create list of taskers with a lot of ram
    smallram            -- Create list of taskers with little ram

   Note: actions can also have a dash (list and -list)

EXAMPLES:
    % vovtaskerlist create planets "pluto jupiter uranus"
    % vovtaskerlist get  planets
    % vovtaskerlist list 
    % vovtaskerlist first planets jupiter 
    % vovtaskerlist last planets jupiter 
    % vovtaskerlist delete  planets
    % vovtaskerlist -bigram 10000      ;; Make a list of taskers with more
                                         than 10GB of RAM
    % vovtaskerlist -smallram 2000     ;; Make list of all taskers with less
                                         than 2GB of RAM

nc taskerlist

Any user can view the tasker lists with the nc taskerlist command.


nc: Usage Message


    NC SLAVELIST
        Support slave lists.
        SlaveLists are named, ordered lists of slaves.

    USAGE:
        % nc slavelist [OPTIONS]

    OPTIONS:
        -h        -- This help
        -v        -- Increase verbosity,
        -list     -- List all available slavelists
        -get LIST -- Get the ordered slaves in the
                     specified LIST

    ADDITIONAL INFO:
      To manage the slave lists, you have to be ADMIN
      and you can use the vovslavelist utility.


    EXAMPLES:
        % nc slavelist -list
        % nc slavelist -get NAMEOFLIST
        % nc run -r SlaveList:NAMEOFLIST ...  -- myjob
    

Create and Delete Taskerlists

The following example creates a taskerlist named big that contains five machines:
% vovproject enable vnc
% vovtaskerlist create big "lnxbig01 lnxbig02 lnxbig03"
% vovtaskerlist append big "lnxbig04 lnxbig05"
To delete the list, use the following command:
% vovtaskerlist delete big
A list can be reordered by moving selecting taskers first or last: to the beginning or to the end of the list, respectively. These commands can also be used on the default list.
% vovtaskerlist first big lnxbig05
% $VOVDIR last  big lnxbig01

The vtk API for Tasker Lists

vtk_taskerlist_create LISTNAME "list of taskers"
vtk_taskerlist_append LISTNAME "list of taskers"
vtk_taskerlist_first  LISTNAME "list of taskers"
vtk_taskerlist_last   LISTNAME "list of taskers"
vtk_taskerlist_get    LISTNAME
vtk_taskerlist_delete LISTNAME 
vtk_taskerlist_list
The following example uses the vtk AP to create a vovtaskerlist that is in the reverse order of the default list.
% vovsh -x 'vtk_taskerlist_create reverse [lreverse [vovtaskerlist_get default]]'

Choose a Tasker List for a Job

To choose a tasker list, use the resource "TaskerList:LISTNAME" when submitting the job.
% nc run -r TaskerList:big -- sleep 100

If the specified list does not exist, the job will not run.