2 XML definition of Zoltan2 parameters and their
validators.
4 This list is used to generate:
5 1. {zoltan2_build_directory}/src/Zoltan2_XML_Parameters.hpp
8 The first is a header file containing a
string which is the
9 XML definition of the parameters.
11 The second is a page of Doxygen documentation describing
12 the parameters
for users.
14 New parameters should be added to
this file.
16 In the Parameter elements, the
"value" must be a valid value
17 for the parameter. It is not a
default. We don
't have
18 default values for our parameters. If the user didn't
19 define a value
for a parameter, then that parameter doesn
't
20 appear in the parameter list and the library code at
21 run-time can decide what to do about that.
23 NOTE: Do not use the string "P a r a m e t e r L i s t" in this file
24 before the beginning of the XML parameter list. We search for that
25 string to find the start of the XML definition.
28 <ParameterList name="zoltan2ValidatingParameters">
31 id="0" name="error_check_level" type="string" validatorId="0" value="basic_assertions"
32 docString=' the amount of error checking performed
33 (If the compile flag Z2_OMIT_ALL_ERROR_CHECKING was set,
34 then error checking code is not executed at runtime.)
'
38 id="1" name="debug_level" type="string" validatorId="1" value="basic_status"
39 docString=' the amount of status/debugging/warning information to print
'
43 id="2" name="timer_type" type="string" validatorId="2" value="no_timers"
44 docString=' the type of timing information to collect
45 (If the compile flag Z2_OMIT_ALL_PROFILING was set,
46 then the timing code is not executed at runtime.)
'
50 id="3" name="debug_output_stream" type="string" validatorId="3" value="cout"
51 docString=' output stream
for debug/status/warning messages (
default cout)
'
55 id="4" name="timer_output_stream" type="string" validatorId="4" value="cout"
56 docString=' output stream
for timing report (
default cout)
'
60 id="5" name="memory_output_stream" type="string" validatorId="5" value="cout"
61 docString=' output stream
for memory usage messages (
default cout)
'
65 id="6" name="debug_output_file" type="string" validatorId="6" value="/dev/null"
66 docString=' name of file to which debug/status messages should be written
67 (process rank will be included in file name)
'
71 id="7" name="timer_output_file" type="string" validatorId="6" value="/dev/null"
72 docString=' name of file to which timing information should be written
73 (process rank will be included in file name)
'
77 id="8" name="memory_output_file" type="string" validatorId="6" value="/dev/null"
78 docString=' name of file to which memory profiling information should be written
79 (process rank will be included in file name)
'
83 id="9" name="debug_procs" type="string" validatorId="7" value="0"
84 docString=' list of ranks that output debugging/status messages (
default "0")
'
88 id="10" name="pqParts" type="string" validatorId="8" value="0"
89 docString=' list of parts
for multijagged partitioning algorithm. As many as the dimension count.
'
93 id="11" name="memory_procs" type="string" validatorId="9" value="0"
94 docString=' list of ranks that
do memory profiling information (
default "0")
'
98 id="12" name="speed_versus_quality" type="string" validatorId="10" value="balance"
99 docString=' When algorithm choices exist, opt
for speed or solution quality?
100 (Default is a balance of speed and quality)
'
104 id="13" name="memory_versus_speed" type="string" validatorId="11" value="balance"
105 docString=' When algorithm choices exist, opt
for the use of less memory
106 at the expense of runtime
107 (Default is a balance of memory conservation and speed)
'
111 id="14" name="random_seed" type="string" validatorId="12" value="0.5"
112 docString=' random seed
'
116 id="15" name="order_method" type="string" validatorId="13" value="rcm"
117 docString=' order algorithm
'
121 id="16" name="order_package" type="string" validatorId="14" value="amd"
122 docString=' package to use in ordering'
126 id="17" name="compute_metrics" type="string" validatorId="15" value="no"
127 docString=' Compute metrics after computing solution'
131 id="18" name="topology" type="string" validatorId="16" value=""
132 docString='Topology of node to be used in hierarchical partitioning
133 "2,4" for dual-socket quad-core
134 "2,2,6" for dual-socket, dual-die, six-core
135 "2,2,3" for dual-socket, dual-die, six-core but
136 with only three partitions per die'
140 id="19" name="randomize_input" type="string" validatorId="17" value="no"
141 docString=' randomize input prior to partitioning'
145 id="20" name="partitioning_objective" type="string" validatorId="18" value="balance_object_weight"
146 docString=' objective of partitioning (default depends on algorithm)'
150 id="21" name="imbalance_tolerance" type="string" validatorId="19" value="1.1"
151 docString=' imbalance tolerance, ratio of maximum load over average load (default 1.1)'
155 id="22" name="num_global_parts" type="string" validatorId="20" value="0"
156 docString=' global number of parts to compute (default is number of processes)'
160 id="23" name="num_local_parts" type="string" validatorId="21" value="0"
161 docString=' number of parts to compute for this process(default is one)'
165 id="24" name="partitioning_approach" type="string" validatorId="22" value="partition"
166 docString=' Partition from scratch, partition incrementally from current
167 partition, of partition from scratch but maximize overlap
168 with the current partition (default is "partition" from scratch)'
172 id="25" name="objects_to_partition" type="string" validatorId="23" value="graph_vertices"
173 docString=' Objects to be partitioned (defaults are "matrix_rows" for
174 matrix input, "mesh_nodes" for mesh input, and "graph_vertices"
179 id="26" name="model" type="string" validatorId="24" value="graph"
180 docString=' This is a low level parameter. Normally the library will choose
181 a computational model based on the algorithm or objective specified
186 id="27" name="algorithm" type="string" validatorId="25" value="random"
187 docString=' partitioning algorithm'
191 id="28" name="rectilinear_blocks" type="string" validatorId="26" value="no"
192 docString=' If true, then when a cut is made, all of the dots located on the cut
193 are moved to the same side of the cut. The resulting regions are then
194 rectilinear. The resulting load balance may not be as good as when
195 the group of dots is split by the cut. Default is false.'
199 id="29" name="average_cuts" type="string" validatorId="27" value="no"
200 docString=' When true, coordinates of RCB cutting planes are computed to be
201 the average of the coordinates of the closest object on each side
202 of the cut. Otherwise, coordinates of cutting planes may equal
203 those of one of the closest objects. Default is false.'
207 id="30" name="bisection_num_test_cuts" type="int" validatorId="28" value="1"
208 docString=' Experimental: number of test cuts to do simultaneously (default is 1)'
212 id="31" name="symmetrize_input" type="string" validatorId="29" value="no"
213 docString=' Symmetrize input prior to pList. If "transpose",
214 symmetrize A by computing A plus ATranspose. If "bipartite",
215 A becomes [[0 A][ATranspose 0]]. '
219 id="32" name="subset_graph" type="string" validatorId="30" value="no"
220 docString=' If "yes", the graph input is to be subsetted. If a vertex neighbor
221 is not a valid vertex, it will be omitted from the pList. Otherwise,
222 an invalid neighbor identifier is considered an error.'
226 id="33" name="force_binary_search" type="string" validatorId="31" value="no"
227 docString="If true, then regardless of the part number, cut line will be searched using binary search.\n"
231 id="34" name="force_linear_search" type="string" validatorId="32" value="no"
232 docString="If true, then regardless of the part number, cut line will be searched using linear search.\n"
236 id="35" name="parallel_part_calculation_count" type="int" validatorId="33" value="1"
237 docString="The number of parts whose cut coordinates will be calculated concurently."
242 <Validator defaultParameterName="error_check_level" integralValue="int" type="StringIntegralValidator(int)" validatorId="0">
243 <String integralValue="0" stringDoc="no assertions will be performed" stringValue="no_assertions"/>
244 <String integralValue="1" stringDoc="typical checks of argument validity (fast, default)" stringValue="basic_assertions"/>
245 <String integralValue="2" stringDoc="additional checks, i.e. is input graph a valid graph)" stringValue="complex_assertions"/>
246 <String integralValue="3" stringDoc="check for everything including logic errors (slowest)" stringValue="debug_mode_assertions"/>
249 <Validator defaultParameterName="debug_output_stream" integralValue="int" type="StringIntegralValidator(int)" validatorId="3">
250 <String integralValue="0" stringValue="std::cout"/>
251 <String integralValue="0" stringValue="cout"/>
252 <String integralValue="0" stringValue="stdout"/>
253 <String integralValue="1" stringValue="std::cerr"/>
254 <String integralValue="1" stringValue="cerr"/>
255 <String integralValue="1" stringValue="stderr"/>
256 <String integralValue="2" stringValue="/dev/null"/>
257 <String integralValue="2" stringValue="null"/>
260 <Validator defaultParameterName="debug_level" integralValue="int" type="StringIntegralValidator(int)" validatorId="1">
261 <String integralValue="0" stringDoc="library outputs no status information" stringValue="no_status"/>
262 <String integralValue="1" stringDoc="library outputs basic status information (default)" stringValue="basic_status"/>
263 <String integralValue="2" stringDoc="library outputs detailed information" stringValue="detailed_status"/>
264 <String integralValue="3" stringDoc="library outputs very detailed information" stringValue="verbose_detailed_status"/>
267 <Validator defaultParameterName="timer_type" integralValue="int" type="StringIntegralValidator(int)" validatorId="2">
268 <String integralValue="0" stringDoc="No timing data will be collected (the default)." stringValue="no_timers"/>
269 <String integralValue="1" stringDoc="Time an algorithm (or other entity) as a whole." stringValue="macro_timers"/>
270 <String integralValue="2" stringDoc="Time the substeps of an entity." stringValue="micro_timers"/>
271 <String integralValue="3" stringDoc="Run both MACRO and MICRO timers." stringValue="both_timers"/>
272 <String integralValue="4" stringDoc="Run timers added to code for testing, removed later" stringValue="test_timers"/>
275 <Validator defaultParameterName="timer_output_stream" integralValue="int" type="StringIntegralValidator(int)" validatorId="4">
276 <String integralValue="0" stringValue="std::cout"/>
277 <String integralValue="0" stringValue="cout"/>
278 <String integralValue="0" stringValue="stdout"/>
279 <String integralValue="1" stringValue="std::cerr"/>
280 <String integralValue="1" stringValue="cerr"/>
281 <String integralValue="1" stringValue="stderr"/>
282 <String integralValue="2" stringValue="/dev/null"/>
283 <String integralValue="2" stringValue="null"/>
286 <Validator defaultParameterName="memory_output_stream" integralValue="int" type="StringIntegralValidator(int)" validatorId="5">
287 <String integralValue="0" stringValue="std::cout"/>
288 <String integralValue="0" stringValue="cout"/>
289 <String integralValue="0" stringValue="stdout"/>
290 <String integralValue="1" stringValue="std::cerr"/>
291 <String integralValue="1" stringValue="cerr"/>
292 <String integralValue="1" stringValue="stderr"/>
293 <String integralValue="2" stringValue="/dev/null"/>
294 <String integralValue="2" stringValue="null"/>
297 <Validator fileMustExist="false" type="FilenameValidator" validatorId="6"/>
299 <Validator type="IntegerRangeListValidator(int)" unsorted="false" validatorId="7"/>
301 <Validator type="IntegerRangeListValidator(int)" unsorted="false" validatorId="9"/>
303 <Validator type="IntegerRangeListValidator(int)" unsorted="true" validatorId="8"/>
305 <Validator type="StringValidator" validatorId="10">
306 <String value="speed"/>
307 <String value="balance"/>
308 <String value="quality"/>
311 <Validator allowDouble="true" allowInt="true" allowString="true" prefferedType="double" type="anynumberValidator" validatorId="12"/>
313 <Validator type="StringValidator" validatorId="11">
314 <String value="memory"/>
315 <String value="balance"/>
316 <String value="speed"/>
319 <Validator type="StringValidator" validatorId="13">
320 <String value="rcm"/>
321 <String value="minimum_degree"/>
322 <String value="natural"/>
323 <String value="random"/>
326 <Validator defaultParameterName="compute_metrics" integralValue="int" type="StringIntegralValidator(int)" validatorId="15">
327 <String integralValue="1" stringValue="true"/>
328 <String integralValue="1" stringValue="yes"/>
329 <String integralValue="1" stringValue="1"/>
330 <String integralValue="1" stringValue="on"/>
331 <String integralValue="0" stringValue="false"/>
332 <String integralValue="0" stringValue="no"/>
333 <String integralValue="0" stringValue="0"/>
334 <String integralValue="0" stringValue="off"/>
337 <Validator type="StringValidator" validatorId="14">
338 <String value="amd"/>
339 <String value="package2"/>
340 <String value="package3"/>
343 <Validator defaultParameterName="randomize_input" integralValue="int" type="StringIntegralValidator(int)" validatorId="17">
344 <String integralValue="1" stringValue="true"/>
345 <String integralValue="1" stringValue="yes"/>
346 <String integralValue="1" stringValue="1"/>
347 <String integralValue="1" stringValue="on"/>
348 <String integralValue="0" stringValue="false"/>
349 <String integralValue="0" stringValue="no"/>
350 <String integralValue="0" stringValue="0"/>
351 <String integralValue="0" stringValue="off"/>
354 <Validator type="IntegerRangeListValidator(int)" unsorted="true" validatorId="16"/>
356 <Validator allowDouble="true" allowInt="true" allowString="true" prefferedType="double" type="anynumberValidator" validatorId="19"/>
358 <Validator allowDouble="true" allowInt="true" allowString="true" prefferedType="double" type="anynumberValidator" validatorId="20"/>
360 <Validator type="StringValidator" validatorId="18">
361 <String value="balance_object_count"/>
362 <String value="balance_object_weight"/>
363 <String value="multicriteria_minimize_total_weight"/>
364 <String value="multicriteria_minimize_maximum_weight"/>
365 <String value="multicriteria_balance_total_maximum"/>
366 <String value="minimize_cut_edge_count"/>
367 <String value="minimize_cut_edge_weight"/>
368 <String value="minimize_neighboring_parts"/>
369 <String value="minimize_boundary_vertices"/>
372 <Validator allowDouble="true" allowInt="true" allowString="true" prefferedType="double" type="anynumberValidator" validatorId="21"/>
374 <Validator type="StringValidator" validatorId="22">
375 <String value="partition"/>
376 <String value="repartition"/>
377 <String value="maximize_overlap"/>
380 <Validator type="StringValidator" validatorId="23">
381 <String value="matrix_rows"/>
382 <String value="matrix_columns"/>
383 <String value="matrix_nonzeros"/>
384 <String value="mesh_elements"/>
385 <String value="mesh_nodes"/>
386 <String value="graph_edges"/>
387 <String value="graph_vertices"/>
388 <String value="coordinates"/>
389 <String value="identifiers"/>
392 <Validator type="StringValidator" validatorId="24">
393 <String value="hypergraph"/>
394 <String value="graph"/>
395 <String value="geometry"/>
396 <String value="ids"/>
399 <Validator type="StringValidator" validatorId="25">
400 <String value="rcb"/>
401 <String value="multijagged"/>
402 <String value="rib"/>
403 <String value="hsfc"/>
404 <String value="patoh"/>
405 <String value="phg"/>
406 <String value="metis"/>
407 <String value="parmetis"/>
408 <String value="scotch"/>
409 <String value="ptscotch"/>
410 <String value="block"/>
411 <String value="cyclic"/>
412 <String value="random"/>
415 <Validator defaultParameterName="rectilinear_blocks" integralValue="int" type="StringIntegralValidator(int)" validatorId="26">
416 <String integralValue="1" stringValue="true"/>
417 <String integralValue="1" stringValue="yes"/>
418 <String integralValue="1" stringValue="1"/>
419 <String integralValue="1" stringValue="on"/>
420 <String integralValue="0" stringValue="false"/>
421 <String integralValue="0" stringValue="no"/>
422 <String integralValue="0" stringValue="0"/>
423 <String integralValue="0" stringValue="off"/>
426 <Validator defaultParameterName="average_cuts" integralValue="int" type="StringIntegralValidator(int)" validatorId="27">
427 <String integralValue="1" stringValue="true"/>
428 <String integralValue="1" stringValue="yes"/>
429 <String integralValue="1" stringValue="1"/>
430 <String integralValue="1" stringValue="on"/>
431 <String integralValue="0" stringValue="false"/>
432 <String integralValue="0" stringValue="no"/>
433 <String integralValue="0" stringValue="0"/>
434 <String integralValue="0" stringValue="off"/>
437 <Validator max="250" min="1" precision="0" step="1" type="EnhancedNumberValidator(int)" validatorId="28"/>
439 <Validator type="StringValidator" validatorId="29">
441 <String value="transpose"/>
442 <String value="bipartite"/>
445 <Validator defaultParameterName="subset_graph" integralValue="int" type="StringIntegralValidator(int)" validatorId="30">
446 <String integralValue="1" stringValue="true"/>
447 <String integralValue="1" stringValue="yes"/>
448 <String integralValue="1" stringValue="1"/>
449 <String integralValue="1" stringValue="on"/>
450 <String integralValue="0" stringValue="false"/>
451 <String integralValue="0" stringValue="no"/>
452 <String integralValue="0" stringValue="0"/>
453 <String integralValue="0" stringValue="off"/>
456 <Validator defaultParameterName="force_binary_search" integralValue="int" type="StringIntegralValidator(int)" validatorId="31">
457 <String integralValue="1" stringValue="true"/>
458 <String integralValue="1" stringValue="yes"/>
459 <String integralValue="1" stringValue="1"/>
460 <String integralValue="1" stringValue="on"/>
461 <String integralValue="0" stringValue="false"/>
462 <String integralValue="0" stringValue="no"/>
463 <String integralValue="0" stringValue="0"/>
464 <String integralValue="0" stringValue="off"/>
467 <Validator defaultParameterName="force_linear_search" integralValue="int" type="StringIntegralValidator(int)" validatorId="32">
468 <String integralValue="1" stringValue="true"/>
469 <String integralValue="1" stringValue="yes"/>
470 <String integralValue="1" stringValue="1"/>
471 <String integralValue="1" stringValue="on"/>
472 <String integralValue="0" stringValue="false"/>
473 <String integralValue="0" stringValue="no"/>
474 <String integralValue="0" stringValue="0"/>
475 <String integralValue="0" stringValue="off"/>
478 <Validator defaultParameterName="parallel_part_calculation_count" allowDouble="false" allowInt="true" allowString="true" prefferedType="int" type="anynumberValidator" validatorId="33"/>