Understanding Job Types
Applies To: Windows HPC Server 2008
The most common types of parallel computing jobs that you can run in Windows HPC Server 2008 are: MPI jobs, parametric sweep jobs, and task flow jobs. The following sections describe these three job types:
MPI job
Parametric sweep job
Task flow job
Note
The three types of jobs are not mutually exclusive. A job can contain many tasks, some of which are parametric, some serial, and some parallel. For example, you can create a task flow job consisting of MPI and parametric tasks.
MPI job
MS-MPI, a Microsoft implementation of Message Passing Interface (MPI) developed for Windows, allows MPI applications to run as tasks on an HPC cluster.
An MPI task is intrinsically parallel. A parallel task can take a number of forms, depending on the application and the software that supports it. For an MPI application, a parallel task usually consists of a single executable that is running concurrently on multiple cores, with communication occurring between the processes.
The following diagram illustrates a parallel task:
For a task that runs an MPI application, the task command must be preceded by mpiexec
: therefore, commands for parallel tasks must be in the following format: mpiexec [mpi_options] <myapp.exe> [arguments]
, where myapp.exe
is the name of the application to run. The mpiexec
command takes a number of arguments which allow you to control MPI process placement, networking affinity, and other run time parameters. For more details on these parameters, see the Windows HPC Server 2008 Command Line Reference (https://go.microsoft.com/fwlink/?LinkId=120724).
Note
For parallel tasks, Windows HPC Server 2008 includes an MPI package based on Argonne National Laboratory's MPICH2 standard. Microsoft’s implementation of MPI, called MS-MPI, includes the launcher mpiexec
, an MPI service for each node, and a Software Development Kit (SDK) for user application development. Windows HPC Server 2008 also supports applications that provide their own parallel processing mechanisms. For more information about the SDK, see Microsoft HPC Pack (https://go.microsoft.com/fwlink/?linkid=123849).
For information about how to create a single-task or MPI job, see Create a Single-Task or MPI Job.
Parametric sweep job
A parametric sweep job consists of multiple instances of the same application, usually a serial application, running concurrently, and with input supplied by an input file and output directed to an output file. The input and output are usually a set of indexed files (for example, input1, input2, input3…, output1, output2, output3…) set up to reside in a single common folder or in separate common folders. There is no communication or interdependency among the tasks. The tasks may or may not run in parallel, depending on the resources that are available on a cluster when the job is running.
The following diagram illustrates a parametric sweep job:
For information about how to create a parametric sweep job, see Create a Parametric Sweep Job.
Task flow job
In a task flow job, a set of unlike tasks are run in a prescribed order, usually because one task depends on the result of another task. You can establish the order in which tasks are run by defining dependencies between the tasks.
The following diagram illustrates a task flow job:
Task 1 runs first. Note that only Tasks 2 and 3 may run in parallel, because neither is dependent on the other. Task 4 runs after Tasks 2 and 3 have both completed.
For information about how to create a task flow job, see Create a Task Flow Job.