@@ -82,7 +82,7 @@ Dynamic Decisions and the Rules File
82
82
83
83
Given that the best choice of algorithm for a given collective depends on a
84
84
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
86
86
ineffective means of tuning. The rules file provides a means of choosing
87
87
an algorithm at run time based on communicator and message size. The rules
88
88
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:
104
104
.. code-block :: sh
105
105
:linenos:
106
106
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
114
130
115
131
The rules file effectively defines, for one or more collectives, a function of
116
132
two variables, which given communicator and message size, returns an algorithm
@@ -128,10 +144,20 @@ for details.
128
144
One may provide rules for as many collectives, communicator sizes, and message
129
145
sizes as desired. Simply repeat the sections as needed and adjust the relevant
130
146
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.
135
161
136
162
.. _CollectivesAndAlgorithms :
137
163
0 commit comments