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.
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
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.
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.
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.
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 clusterwide task file is used to augment the systemwide file. The user’s task file is used to augment the systemwide and clusterwide task files.
LSF combines the systemwide, clusterwide, 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 clusterwide list overrides the systemwide list, and the user-specific list overrides both.
Systemwide task list applies to all clusters and all users.
This file is used in a MultiCluster environment.
Clusterwide task list applies to all users in the same cluster.
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.
Only the LSF administrator can modify the systemwide task list (lsf.task) and the clusterwide task list (lsf.task.cluster_name).
A user can modify his own task list(.lsftask) with the lsrtasks and lsltasks commands.
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.
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.
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.
See Administering IBM Platform LSF for information about resource requirement strings. If the resource requirement string is not specified for a remote task, the default is "select[type==local] order[r15s:pg]".