Command: taskset_thisjob

NEST HelpDesk Command Index NEST Quick Reference

Name:
 taskset_thisjob - Binds the current process to a processor.
Synopsis:
 proc taskset_thisjob -> -

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.

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.
 
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.

Author:
 Diesmann
FirstVersion:
 September 9th, 2006
SeeAlso:taskset Rank NumProcesses
Source:
 /home/abuild/rpmbuild/BUILD/nest-2.4.1/lib/sli/processes.sli

NEST HelpDesk Command Index NEST Quick Reference

© 2000-2010 The NEST Initiative