Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] RFC: make predefined handles extern to pointers
From: Terry Dontje (Terry.Dontje_at_[hidden])
Date: 2008-12-18 08:38:38

Terry Dontje wrote:
> Richard Graham wrote:
>> Terry,
>> Is there any way you can quantify the cost ? This seems
>> reasonable, but
>> would be nice to get an idea what the performance cost is (and not
>> within a
>> tight loop where everything stays in cache).
>> Rich
> Ok, I guess that would eliminate any of the simple perf tests like
> IMB, netperf, and such. So do you have something else in mind, maybe

I retract the above. HPCC and IMB probably doesn't use the predefines
that much. One might be able to just do a lot of MPI_Comm_rank calls
but then you run into the caching problems you mention above. Though I
wonder if we do enough runs and compare the first call if that might be

> --td
>> On 12/16/08 10:41 AM, "Terry D. Dontje" <Terry.Dontje_at_[hidden]> wrote:
>>> WHAT: To make predefined handles extern to pointers instead of an
>>> address of an extern to a structure.
>>> WHY: To make OMPI more backwards compatible in regards to changes to
>>> structures that define predefined handles.
>>> WHERE: In the trunk. ompi/include/ and places in ompi that
>>> directly use the predefined handles.
>>> WHEN: 01/24/2009
>>> TIMEOUT: 01/10/2009
>>> ____________________
>>> The point of this change is to improve the odds that an MPI application
>>> does not have to recompile when changes are made to the OMPI library.
>>> In this case specifically the predefined handles that use the
>>> structures
>>> for communicators, groups, ops, datatypes, error handlers, win, file,
>>> and info.
>>> An example of the changes for the communicator predefined handles
>>> can be
>>> found in the hg tmp workspace at
>>> ssh://
>>> Note, the one downfall that Jeff and I could think of by doing this is
>>> you potentially add one level of indirection but I believe that will be
>>> a small overhead and if you use one of the predefined handles
>>> repetitively (like in a loop) that the address will probably be stored
>>> in a register once and no additional over should be seen due to this
>>> change.
>>> _______________________________________________
>>> devel mailing list
>>> devel_at_[hidden]
>> _______________________________________________
>> devel mailing list
>> devel_at_[hidden]
> _______________________________________________
> devel mailing list
> devel_at_[hidden]