Folks,

this is a follow-up of a discussion on the user ML started at http://www.open-mpi.org/community/lists/users/2015/05/26882.php

1) it turns out the dynamic rule filename must be "sorted" :
- rules must be sorted by communicator size
- within a given communicator size, rules must be sorted by message size

if not, some rules are silently skipped, which is counter intuitive imho.


2) the algo picks the rule with the higher communicator size less or equal than the current communicator size (same thing for message size).
The exception is if there are no such rule, the first rule is selected.
for example, if the config file has rules for comm size 4, 8 and 16
comm size 4 => pick rule for comm size 4
comm size 5 => pick rule for comm 4
comm size 8 => pick rule for comm 8
*but*
comm size 2 => pick rule for comm size 4 (!)
imho, this is also counter intuitive.
i would have expected no rule is picked and the default behaviour is used.

Same thing applies for message sizes.

Is this the intended design ?

1) can be solved by inserting some qsort calls after parsing the config file. 2) can be solved by returning a NULL rule instead of the first rule ( or by automatically inserting a rule for comm size 0 (and message size 0) if no such rule is present in the config file).

any thoughts ?

Cheers,

Gilles

Reply via email to