From 9960141aa398eeea0a20e46fbd440f0b93ff37af Mon Sep 17 00:00:00 2001
From: Morris Jette <jette@schedmd.com>
Date: Mon, 14 Jul 2014 09:47:04 -0700
Subject: [PATCH] Clarify cpu binding operation

Note that the map/mask specified applies to all allocated nodes.
---
 doc/man/man1/salloc.1 | 10 ++++++++--
 doc/man/man1/sbatch.1 | 10 ++++++++--
 doc/man/man1/srun.1   | 10 ++++++++--
 3 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/doc/man/man1/salloc.1 b/doc/man/man1/salloc.1
index fa3e641de13..955dc7d110b 100644
--- a/doc/man/man1/salloc.1
+++ b/doc/man/man1/salloc.1
@@ -280,7 +280,7 @@ To ensure that distinct CPUs are allocated to each job step, use the
 If the job step allocation includes an allocation with a number of
 sockets, cores, or threads equal to the number of tasks to be started
 then the tasks will by default be bound to the appropriate resources.
-Disable this mode of operation by explicitly setting "-\-cpu\-bind=none".
+Disable this mode of operation by explicitly setting "-\-cpu_bind=none".
 
 Note that a job step can be allocated different numbers of CPUs on each node
 or be allocated CPUs not starting at location zero. Therefore one of the
@@ -308,12 +308,15 @@ Do not bind tasks to CPUs (default)
 .TP
 .B rank
 Automatically bind by task rank.
-Task zero is bound to socket (or core or thread) zero, etc.
+The lowest numbered task on each node is bound to socket (or core or thread) zero, etc.
 Not supported unless the entire node is allocated to the job.
 .TP
 .B map_cpu:<list>
 Bind by mapping CPU IDs to tasks as specified
 where <list> is <cpuid1>,<cpuid2>,...<cpuidN>.
+The mapping is specified for a node and identical mapping is applied to the
+tasks on every node (i.e. the lowest task ID on each node is mapped to the
+first CPU ID specifed in the list, etc.).
 CPU IDs are interpreted as decimal values unless they are preceded
 with '0x' in which case they are interpreted as hexadecimal values.
 Not supported unless the entire node is allocated to the job.
@@ -321,6 +324,9 @@ Not supported unless the entire node is allocated to the job.
 .B mask_cpu:<list>
 Bind by setting CPU masks on tasks as specified
 where <list> is <mask1>,<mask2>,...<maskN>.
+The mapping is specified for a node and identical mapping is applied to the
+tasks on every node (i.e. the lowest task ID on each node is mapped to the
+first mask specifed in the list, etc.).
 CPU masks are \fBalways\fR interpreted as hexadecimal values but can be
 preceded with an optional '0x'. Not supported unless the entire node is
 allocated to the job.
diff --git a/doc/man/man1/sbatch.1 b/doc/man/man1/sbatch.1
index 7273c774117..38cddb3275a 100644
--- a/doc/man/man1/sbatch.1
+++ b/doc/man/man1/sbatch.1
@@ -305,7 +305,7 @@ To ensure that distinct CPUs are allocated to each job step, use the
 If the job step allocation includes an allocation with a number of
 sockets, cores, or threads equal to the number of tasks to be started
 then the tasks will by default be bound to the appropriate resources.
-Disable this mode of operation by explicitly setting "-\-cpu\-bind=none".
+Disable this mode of operation by explicitly setting "-\-cpu_bind=none".
 
 Note that a job step can be allocated different numbers of CPUs on each node
 or be allocated CPUs not starting at location zero. Therefore one of the
@@ -333,12 +333,15 @@ Do not bind tasks to CPUs (default)
 .TP
 .B rank
 Automatically bind by task rank.
-Task zero is bound to socket (or core or thread) zero, etc.
+The lowest numbered task on each node is bound to socket (or core or thread) zero, etc.
 Not supported unless the entire node is allocated to the job.
 .TP
 .B map_cpu:<list>
 Bind by mapping CPU IDs to tasks as specified
 where <list> is <cpuid1>,<cpuid2>,...<cpuidN>.
+The mapping is specified for a node and identical mapping is applied to the
+tasks on every node (i.e. the lowest task ID on each node is mapped to the
+first CPU ID specifed in the list, etc.).
 CPU IDs are interpreted as decimal values unless they are preceded
 with '0x' in which case they are interpreted as hexadecimal values.
 Not supported unless the entire node is allocated to the job.
@@ -346,6 +349,9 @@ Not supported unless the entire node is allocated to the job.
 .B mask_cpu:<list>
 Bind by setting CPU masks on tasks as specified
 where <list> is <mask1>,<mask2>,...<maskN>.
+The mapping is specified for a node and identical mapping is applied to the
+tasks on every node (i.e. the lowest task ID on each node is mapped to the
+first mask specifed in the list, etc.).
 CPU masks are \fBalways\fR interpreted as hexadecimal values but can be
 preceded with an optional '0x'. Not supported unless the entire node is
 allocated to the job.
diff --git a/doc/man/man1/srun.1 b/doc/man/man1/srun.1
index d0d4d673766..6acd971f4ba 100644
--- a/doc/man/man1/srun.1
+++ b/doc/man/man1/srun.1
@@ -277,7 +277,7 @@ If the job step allocation includes an allocation with a number of
 sockets, cores, or threads equal to the number of tasks to be started
 then the tasks will by default be bound to the appropriate resources (auto
 binding). Disable this mode of operation by explicitly setting
-"-\-cpu\-bind=none".
+"-\-cpu_bind=none".
 
 Note that a job step can be allocated different numbers of CPUs on each node
 or be allocated CPUs not starting at location zero. Therefore one of the
@@ -305,12 +305,15 @@ Do not bind tasks to CPUs (default unless auto binding is applied)
 .TP
 .B rank
 Automatically bind by task rank.
-Task zero is bound to socket (or core or thread) zero, etc.
+The lowest numbered task on each node is bound to socket (or core or thread) zero, etc.
 Not supported unless the entire node is allocated to the job.
 .TP
 .B map_cpu:<list>
 Bind by mapping CPU IDs to tasks as specified
 where <list> is <cpuid1>,<cpuid2>,...<cpuidN>.
+The mapping is specified for a node and identical mapping is applied to the
+tasks on every node (i.e. the lowest task ID on each node is mapped to the
+first CPU ID specifed in the list, etc.).
 CPU IDs are interpreted as decimal values unless they are preceded
 with '0x' in which case they are interpreted as hexadecimal values.
 Not supported unless the entire node is allocated to the job.
@@ -318,6 +321,9 @@ Not supported unless the entire node is allocated to the job.
 .B mask_cpu:<list>
 Bind by setting CPU masks on tasks as specified
 where <list> is <mask1>,<mask2>,...<maskN>.
+The mapping is specified for a node and identical mapping is applied to the
+tasks on every node (i.e. the lowest task ID on each node is mapped to the
+first mask specifed in the list, etc.).
 CPU masks are \fBalways\fR interpreted as hexadecimal values but can be
 preceded with an optional '0x'. Not supported unless the entire node is
 allocated to the job.
-- 
GitLab