taskset_thisjob

Command: taskset_thisjob


Synopsis

proc taskset_thisjob -> -

File
lib/sli/processes.sli
Parameters

proc - This integer value identifies a certain processing unit of the
system the current job is running on. On a system with multi-core
processors each core is assigned a different integer.

Author
Diesmann
Description

This function is a SLI interface to the UNIX command taskset.
The command is particularly useful for assigning the different jobs
of a distributed simulation to different processors or computing cores
independent of the MPI implementation used. Binding of jobs is helpful
in benchmarking to quantify the effects of hardware shared by computing
cores and the influence of the job scheduling og the operating system.

FirstVersion
September 9th 2006
Examples

Consider a particular computer system with 4 processors with 2 computing
cores each. The operating system assigns the identifiers 0 to 7
to the 8 cores starting with 0 for the first core on the first processor
1 for the second core on the first processor followed by 2 for the
first core on the second processor and so on. The task now is to
make sure that a distributed simulation with 4 MPI jobs uses only a
single core on each processor. This can be achieved by inserting the
following command as the first line of the simulation script:


[1 3 5 7] Rank get taskset_thisjob

or alternatively

Rank 2 mul 1 add taskset_thisjob

In this examples only odd core identifiers are used because it
is assumed that the operating system has a tendency to interrogate
core 0 for availability.

Following this strategy more general schemes can be designed to
minimize the use of shared hardware on the basis of the architecture
of a given computer system.