Jobs and Tasks Overview
Updated: May 20, 2009
Applies To: Windows HPC Server 2008
A Windows HPC Server 2008 job is a resource request. A job requests “X number of Y resources for a Z amount of time.” For example, a job might request eight nodes in the “Have Big Memory” group for two hours.
How long a job waits in the scheduler queue depends on a number of factors, including:
What resources the job needs
What jobs are currently running
What other jobs are in the queue
The scheduling policies configured by the cluster administrator
The amount of time a job must wait in the queue can be decreased by:
Submitting the job with high priority
Specifying an accurate maximum run time for the job
Requesting the minimum resources possible
Being unspecific about the types of resources required
When resources are allocated to a job, the scheduler uses those resources to execute the tasks in the job. A task is a command to execute, along with some associated information about how that command needs to run.
A job may contain one task, many tasks, or no tasks (interpreted as: “Reserve some resources for me and I’ll figure out what to do with them later”). The tasks within a job can be entirely independent, or they might depend on each other and need to run in a specific order. You can establish the order in which tasks are run by defining dependencies between tasks.
There are two types of tasks:
Basic task A command line with some metadata about how to run it. For example, to run a Message Passing Interface (MPI) application, create a basic task in which the command is
mpiexec [mpi_options] <myapp.exe> [arguments], and the task requests a number of resources that span many nodes.
Parametric task A command that includes the wildcard character (*). For example,
<myapp.exe * > [arguments]. The command runs multiple times, with each instance using a different value to replace the wildcard.