Jobs and Tasks Overview

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.

Additional references