Resource Mapping

As the vovservers determines which tasker is most suited to execute a particular job, it performs a mapping of the job resources, followed by a matching of the mapped resources.

When dispatching a job, the vovservers does the following:
  • Gets the list of resources required by a job.
  • Appends the resource associated with the priority level, such as Priority:normal.
  • If it exists, it appends the resource associated with the name of the tool used in the job (reminder: the tool of a command is the tail of the first command argument after the wrappers). The tool resource has type Tool and looks like this: Tool:toolname.
  • Appends the resource associated with the owner of the job, such as User:john.
  • Appends the resource associated with the group of the job, such as Group:time_regression.
  • Expands any special resource, i.e. any resource that starts with a "$".
  • For each resource in the list, the vovservers looks for it in the resource maps. If the resource map is found and there is enough of it, that is, the resource is available, the vovservers maps the resource. This step is repeated until one of the following conditions is met:
    • The resource is not available. In this case, the job cannot be dispatched and is left in the job queue.
    • A cycle in the mapping is detected; in this case the job cannot be dispatched at all and is removed from the job queue.
    • The resource is not in the resource map.
  • VOV appends the resource associated with the expected job duration to the final resource list. For example, if the job is expected to take 32 seconds, the resource TIMELEFT#32 will be appended.
  • Finally, the vovservers compares the resulting resource list with the resource list of each tasker. If there is a match - all resources in the list are offered by the tasker - the tasker is labeled as eligible. If there is no eligible tasker, the job cannot be dispatched at this time and remains in the queue; otherwise, the server selects the eligible tasker with the greatest effective power.

Local Resource Maps

Resource maps can be designated as local, using the local flag.

Important: This flag is only available and supported for a FlowTracer installation, utilizing vovwxd and an LSF interface.

Resource maps designated as local will be managed on the "local" (FT) side of the vovwxd connection instead of the normal case where resource specifications are expected to be managed on the base queue side.

For example, to limit jobs to running 5 at a time from a specific FlowTracer project, do the following:
  1. Enable local resources with run: vovservermgr configure vovwxd.localresources 1
    Note: Alternatively, you can add the following to the policy.tcl file:
    set config(vovwxd.localresources) 1
  2. Create the local resource.
    1. Run vovresourcemgr set mylocallimit -max 5 -local
      Note: Alternatively, you can add the following to the resource.tcl file:
      vtk_resourcmap_set mylocallimit -total 5 -local

This results in limiting running jobs with the local resource mylocallimit to a maximum of 5 jobs at a time.

For example, FDL to use a local resource named "mylocallimit:
R mylocallimit

J vov /bin/sleep 0