[mpich-discuss] Faster MPI_Attr_get?

Dave Goodell goodell at mcs.anl.gov
Fri May 11 16:45:45 CDT 2012


On May 11, 2012, at 4:38 PM CDT, Jed Brown wrote:

> On Fri, May 11, 2012 at 4:20 PM, Jeff Hammond <jhammond at alcf.anl.gov> wrote:
> 
>> "--enable-error-checking=runtime --enable-error-messages=all" would
>> seem to be the kind of thing Dave is talking about that affect
>> performance.

Indeed, this is exactly the type of option I was thinking of.

> Right, so should I turn that off? This is a development environment, so I
> definitely want those options. I can build a different MPI for profiling,
> but it's been irrelevant in other tests. Can't the overhead of run-time
> error checking amount to a few unlikely conditionals?

They can be.  I see some duplicated work going on here when you are using the legacy MPI_Attr_get path, so there's low hanging fruit right there.

> I could also build MPICH2 with all error checking turned off, but with
> debugging symbols so that I can determine which lines are sucking up the
> time?

No real need to rebuild.  Just set "MPICH_ERROR_CHECKING=0" in your environment and re-run to get a sense of the performance impact of the current (admittedly lousy) error checking code.

Separate question for you: how many attributes is petsc setting on this communicator?  It looks like there's a linear search for user-defined attributes right now, so if that number is large for some reason then performance could be impacted by that choice.

-Dave



More information about the mpich-discuss mailing list