George,

i understand the logic (even if i still find it counter intuitive, but this
is an other story)

if a rule for zero-sized messages is not needed, then there is a bug ...
                if (!nms && MS) {
                    OPAL_OUTPUT((ompi_coll_tuned_stream,"All algorithms
must specify a rule for message size of zero upwards always first!\n"));
                    OPAL_OUTPUT((ompi_coll_tuned_stream,"Message size was
%lu for collective ID %d com rule %d msg rule %d at around line %d\n", MS,
CI, ncs, nms, fileline));
                    goto on_file_error;
                }

Cheers,

Gilles

On Thu, May 21, 2015 at 12:04 PM, George Bosilca <bosi...@icl.utk.edu>
wrote:

> Gilles,
>
> There is no need to define a rule for zero-sized messages, it is
> implicitly matched by the first rule. To be extremely pedantic the
> selection logic for the communicator size and message size are identical
> albeit written differently. Both start by selecting rule 0, and then
> working their way up in the corresponding sizes (communicator or messages),
> moving the matched rule until the condition fails (size <  rule size).
>
> Hopefully this clarifies why in your example the 2 proc communicators are
> using the rule for 4.
>
> Using 0 as index for an algorithm selection redirect the decision to the
> default, hard-coded, coll_tuned decision function, allowing the dynamic
> rules to fall back to the predefined behavior.
>
>   George.
>
>
>
> On Wed, May 20, 2015 at 8:10 PM, Gilles Gouaillardet <gil...@rist.or.jp>
> wrote:
>
>>  George,
>>
>> first i'd like to amend my initial message.
>> i previously wrote the same algo is used to parse rules per communicator
>> size and per message size.
>> this is true, but i missed the part where it is mandatory to define a
>> rule for zero size message.
>> consequently, a given message is either in an interval or its size is
>> more or equal the size of the last rule for a given communicator.
>>
>> there is no such thing for communicator size.
>> for example, if the config file is
>> comm size 4 => rules A
>> comm size 8 => rules B
>> communicators of size 2, 4 and 6 will all use rule A.
>> this is very intuitive for comm size 4 and 6, but at first glance, comm
>> size 2 is in a grey area.
>>
>> an other option would be to force the rule file to have a rule for
>> communicators of size 0 (or 1 or two).
>>
>> bottom line, the rules must be sorted by comm size and message size by
>> design, and that looks fair to me.
>> however, there is a grey area for small communicators and i think it
>> should be cleared.
>>
>> Cheers,
>>
>> Gilles
>>
>>
>> On 5/21/2015 1:04 AM, George Bosilca wrote:
>>
>> Each rule define an interval with the previous rule, and everything in an
>> interval will be bound the the rule with the next message size. You cannot
>> define a rule for a specific amount. Thus, the fact that the rules must be
>> ordered by message size was done by design.
>>
>> Returning a NULL rule as suggested by Howard is even more confusing as
>> with this approach you don't even know what is used (as it will
>> automatically fall back to the default decision).
>>
>>    George.
>>
>>
>> On Tue, May 19, 2015 at 11:57 PM, Howard Pritchard <hpprit...@gmail.com>
>> wrote:
>>
>>> HI Gilles,
>>>
>>>  First a disclaimer - I do not know what the intended design was nor
>>> where the design document
>>> for this feature is located.
>>>
>>>  However, I would certainly prefer that if the communicator size wasn't
>>> specifically specified
>>>  in the rule file, a fall back do-no-harm algorithm would be selected.
>>>
>>>  Following the KISS principal I would go with 2) returning a NULL rule
>>> when
>>> there is no matching size in the rule file for the communicator in
>>> question.
>>>
>>>  Howard
>>>
>>>
>>> 2015-05-19 20:05 GMT-06:00 Gilles Gouaillardet <gil...@rist.or.jp>:
>>>
>>> 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
>>>> _______________________________________________
>>>> devel mailing list
>>>> de...@open-mpi.org
>>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>>> Link to this post:
>>>> http://www.open-mpi.org/community/lists/devel/2015/05/17425.php
>>>>
>>>
>>>
>>> _______________________________________________
>>> devel mailing list
>>> de...@open-mpi.org
>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>> Link to this post:
>>> http://www.open-mpi.org/community/lists/devel/2015/05/17426.php
>>>
>>
>>
>>
>> _______________________________________________
>> devel mailing listde...@open-mpi.org
>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>
>> Link to this post: 
>> http://www.open-mpi.org/community/lists/devel/2015/05/17433.php
>>
>>
>>
>> _______________________________________________
>> devel mailing list
>> de...@open-mpi.org
>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
>> Link to this post:
>> http://www.open-mpi.org/community/lists/devel/2015/05/17438.php
>>
>
>
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
> Link to this post:
> http://www.open-mpi.org/community/lists/devel/2015/05/17439.php
>

Reply via email to