taskset_thisjob - Binds the current process to a processor.
proc taskset_thisjob -> -
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.
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.
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.
Diesmann
September 9th, 2006
/var/www/debian/nest/nest-simulator-2.20.0/lib/sli/processes.sli