Skip to content

Commit 10e2e23

Browse files
author
Burlen Loring
committed
update user guide for coll tuned rules file v2
Signed-off-by: Burlen Loring <[email protected]>
1 parent 594e29a commit 10e2e23

File tree

1 file changed

+38
-12
lines changed

1 file changed

+38
-12
lines changed

docs/tuning-apps/coll-tuned.rst

Lines changed: 38 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ Dynamic Decisions and the Rules File
8282

8383
Given that the best choice of algorithm for a given collective depends on a
8484
number of factors only known at run time, and that some of these factors may
85-
vary with in a run, setting an algorithm on the command line often is an
85+
vary within a run, setting an algorithm on the command line often is an
8686
ineffective means of tuning. The rules file provides a means of choosing
8787
an algorithm at run time based on communicator and message size. The rules
8888
file can be specified on the command line, or the other usual ways to set MCA
@@ -104,13 +104,29 @@ Dynamic tuning files are organized in this format:
104104
.. code-block:: sh
105105
:linenos:
106106
107-
1 # Number of collectives
108-
1 # Collective ID
109-
1 # Number of comm sizes
110-
2 # Comm size
111-
2 # Number of message sizes
112-
0 1 0 0 # Message size 0, algorithm 1, topo and segmentation at 0
113-
1024 2 0 0 # Message size 1024, algorithm 2, topo and segmentation at 0
107+
rule-file-version-2
108+
1 # num of collectives
109+
3 # collective id
110+
1 # number of comm sizes
111+
#=====================
112+
64 # comm size
113+
14 # number of rules
114+
# Bytes alg topo segs reqs
115+
#----------------------
116+
0 0 0 0 0
117+
512000 4 0 0 64
118+
1536000 4 0 0 64
119+
3072000 4 0 0 64
120+
6144000 4 0 0 64
121+
12288000 4 0 0 16
122+
24576000 4 0 0 16
123+
49152000 4 0 0 16
124+
98304000 4 0 0 16
125+
196608000 4 0 0 8
126+
393216000 4 0 0 8
127+
786432000 4 0 0 1
128+
1572864000 4 0 0 1
129+
2621440000 0 0 0 0
114130
115131
The rules file effectively defines, for one or more collectives, a function of
116132
two variables, which given communicator and message size, returns an algorithm
@@ -128,10 +144,20 @@ for details.
128144
One may provide rules for as many collectives, communicator sizes, and message
129145
sizes as desired. Simply repeat the sections as needed and adjust the relevant
130146
count parameters. One must always provide a rule for message size of zero.
131-
Message size rules are expected in ascending order. The last two parameters in
132-
the rule may or may not be used and have different meaning depending on the
133-
collective and algorithm. As of writing not all of the relevant control
134-
parameters can be set by the rules file (See issue #12589).
147+
Message size rules are expected in ascending order. The last parameters in the
148+
message size rule may or may not be used and have different meaning depending
149+
on the collective and algorithm. The first two parameters in the rule following
150+
the algorithm id, `topo` and `segment size`, are always required. In version 2
151+
of the file format a third parameter, `max requests`, may also be provided. A
152+
release of OpenMPI at least v5.0.7 or v4.1.8 is required for version 2 features.
153+
154+
The file format version specifier, `rule-file-version-N` where N is an integer
155+
greater or equal to 1, should appear on the first line of the file. If the
156+
version specifier is not present, the file format is assumed to be version 1.
157+
Version 2 or greater is required to use the `max requests` parameter. OpenMPI
158+
releases older than v5.0.7 and v4.1.8 do not support the file format version
159+
identifier. When using older releases of OpenMPI do not include a version
160+
specifier and do not use the `max requests` parameter in message size rules.
135161

136162
.. _CollectivesAndAlgorithms:
137163

0 commit comments

Comments
 (0)