lsf.task
Users should not have to specify a resource requirement each time they submit a job. LSF supports the concept of a task list. This chapter describes the files used to configure task lists: lsf.task, lsf.task.cluster_name, and .lsftask.
Changing task list configuration
After making any changes to the task list files, run the following commands:
- lsadmin reconfig to reconfigure LIM
- badmin reconfig to reload the configuration files
About task lists
A task list is a list in LSF that keeps track of the default resource requirements for different applications and task eligibility for remote execution.
The term task refers to an application name. With a task list defined, LSF automatically supplies the resource requirement of the job whenever users submit a job unless one is explicitly specified at job submission.
LSF takes the job's command name as the task name and uses that name to find the matching resource requirement for the job from the task list. If a task does not have an entry in the task list, LSF assumes the default resource requirement; that is, a host that has the same host type as the submission host will be chosen to run the job.
- A local task is typically an application or command that it does not make sense to run remotely such as ls.
- A remote task is an application or command that can be run on another machine in the LSF cluster. The compress command is an example of a remote task.
Some applications require resources other than the default. LSF can store resource requirements for specific applications in remote task list files, so that LSF automatically chooses candidate hosts that have the correct resources available.
For frequently used commands and software packages, the LSF administrator can set up cluster–wide resource requirements that apply to all users in the cluster.
Users can modify and add to these requirements by setting up additional resource requirements that apply only to their own jobs.
Cluster-wide resource requirements
The resource requirements of applications are stored in the remote task list file.
LSF automatically picks up a job’s default resource requirement string from the remote task list files, unless you explicitly override the default by specifying the resource requirement string on the command line.
User-level resource requirements
You may have applications that you need to control yourself. Perhaps your administrator did not set them up for load sharing for all users, or you need a non-standard setup. You can use LSF commands to find out resource names available in your system, and tell LSF about the needs of your applications. LSF stores the resource requirements for you from then on.
You can specify resource requirements when tasks are added to the user's remote task list. If the task to be added is already in the list, its resource requirements are replaced.
lsrtasks + myjob/swap>=100 && cpu
This adds myjob
to
the remote tasks list with its resource requirements.
Task files
- lsf.task - system-wide defaults apply to all LSF users, even across multiple clusters if MultiCluster is installed
- lsf.task.cluster_name - cluster-wide defaults apply to all users in the cluster
- $HOME/.lsftask - user-level defaults apply to a single user. This file lists applications to be added to or removed from the default system lists for your jobs. Resource requirements specified in this file override those in the system lists.
The cluster-wide task file is used to augment the system-wide file. The user’s task file is used to augment the system-wide and cluster-wide task files.
LSF combines the system-wide, cluster-wide, and user-specific task lists for each user's view of the task list. In cases of conflicts, such as different resource requirements specified for the same task in different lists, the cluster-wide list overrides the system-wide list, and the user-specific list overrides both.
LSF_CONFDIR/lsf.task
System-wide task list applies to all clusters and all users.
This file is used in a multicluster environment.
LSF_CONFDIR/lsf.task.cluster_name
Cluster-wide task list applies to all users in the same cluster.
$HOME/.lsftask
User task list, one per
user, applies only to the specific user. This file is automatically
created in the user’s home directory whenever a user first updates
his task lists using the lsrtasks or lsltasks commands.
For details about task eligibility lists, see the ls_task
(3)
API reference man page.
Permissions
Only the LSF administrator can modify the system-wide task list (lsf.task) and the cluster-wide task list (lsf.task.cluster_name).
A user can modify his own task list(.lsftask) with the lsrtasks and lsltasks commands.
Format of task files
LocalTasks
and
RemoteTasks
. For example:Begin LocalTasks
ps
hostname
uname
crontab
End LocalTasks
Begin RemoteTasks
+ "newjob/mem>25"
+ "verilog/select[type==any && swp>100]"
make/cpu
nroff/-
End RemoteTasks
Tasks are listed one per line. Each line in a
section consists of a task name, and, for the RemoteTasks
section,
an optional resource requirement string separated by a slash (/).
A
plus sign (+) or a minus sign (-) can optionally precede each entry.
If no +
or -
is
specified, +
is assumed.
A +
before
a task name means adding a new entry (if non-existent) or replacing
an entry (if already existent) in the task list. A -
before
a task name means removing an entry from the application's task
lists if it was already created by reading higher level task files.
LocalTasks section
The section starts with Begin LocalTasks
and ends with
End LocalTasks
.
This section lists tasks that are not eligible for remote execution, either because they are trivial tasks or because they need resources on the local host.
RemoteTasks section
The section starts with Begin RemoteTasks
and ends with
End RemoteTasks
.
This section lists tasks that are eligible for remote execution. You can associate resource requirements with each task name.