[mpich-devel] proposed changes to function enter/exit logging

Raffenetti, Kenneth J. raffenet at mcs.anl.gov
Thu Jan 16 10:15:24 CST 2020


[UPDATE]

An alternative approach to the function enter/exit logging changes has 
been posted here:

   https://github.com/pmodels/mpich/pull/4276

The previous -finstrument-functions PR only supported Linux for 
address->func_name conversion in log files, which was problematic for 
some. The new approach uses scripts to add/remove the enter/exit macros 
on-demand. The benefit is that it will work on all systems, and be less 
error-prone than manually adding the macros by hand. Please comment on 
the PR or this thread if you have thoughts.

Thanks,
Ken

On 11/7/19 9:35 AM, Raffenetti, Kenneth J. via devel wrote:
> I should also note that currently the address->function translation
> scripts will only work on Linux.
> 
> Ken
> 
> On 11/7/19 8:30 AM, Ken Raffenetti wrote:
>> Here's what I've found so far:
>>
>> XL compilers support -qfunctrace with slightly different user-supplied
>> tracing function signatures. Should be trivial to add support to MPICH.
>>
>> https://www.ibm.com/support/knowledgecenter/SSGH2K_12.1.0/com.ibm.xlc121.aix.doc/compiler_ref/opt_functrace.html
>>
>>
>> PGI supports -Minstrument with the same tracing function signatures as
>> GCC and Clang.
>>
>> Intel supports -finstrument-functions.
>>
>> I do not see any support in Oracle suncc.
>>
>> Ken
>>
>> On 11/7/19 4:08 AM, Finkel, Hal J. via devel wrote:
>>> Clang does support -finstrument-functions (and also provides
>>> -finstrument-functions-after-inlining and XRay-based options:
>>> https://llvm.org/docs/XRay.html).
>>>
>>>    -Hal
>>>
>>> On 11/6/19 6:22 PM, Jeff Hammond via devel wrote:
>>>> Do you have a list of what compilers support this?  Is this just GCC,
>>>> just GCC and Clang, or a bigger list?  If Clang supports it, do you
>>>> know if all of the Clang derivatives (e.g. IBM XLC) support it?
>>>>
>>>> Thanks,
>>>>
>>>> Jeff
>>>>
>>>> On Wed, Nov 6, 2019 at 2:04 PM Raffenetti, Kenneth J. via devel
>>>> <devel at mpich.org <mailto:devel at mpich.org>> wrote:
>>>>
>>>>      Folks,
>>>>
>>>>      I want to draw attention to a pull request posted to the MPICH
>>>> github.
>>>>
>>>>      https://github.com/pmodels/mpich/pull/4139
>>>>
>>>>      This proposes to remove all MPIR_FUNC_VERBOSE_ENTER and
>>>>      MPIR_FUNC_VERBOSE_EXIT macros from MPICH and instead use compiler
>>>>      function instrumentation when configured for debug logging:
>>>>      https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html.
>>>>
>>>>      There are 2 main benefits:
>>>>
>>>>      1. De-clutter the code. PR stats show a net deletion of >10,000
>>>> lines!
>>>>      2. Less error-prone. The compiler will reliably instrument *all*
>>>>      functions, and will not suffer from copy/paste errors or typos.
>>>>
>>>>      Drawbacks:
>>>>
>>>>      1. Requires compiler support for instrumentation. May affect users
>>>>      debugging certain compiler configurations.
>>>>      2. Compiler function instrumentation logs function addresses, not
>>>>      symbols. An additional step is needed to convert addresses to
>>>>      function
>>>>      names via script (included in PR).
>>>>
>>>>      What do people think? Will these changes affect anyone using debug
>>>>      logging in any regular capacity? We're looking for feedback good
>>>>      or bad.
>>>>      Let us know.
>>>>
>>>>      Thanks,
>>>>      Ken
>>>>      _______________________________________________
>>>>      To manage subscription options or unsubscribe:
>>>>      https://lists.mpich.org/mailman/listinfo/devel
>>>>
>>>>
>>>>
>>>> -- 
>>>> Jeff Hammond
>>>> jeff.science at gmail.com <mailto:jeff.science at gmail.com>
>>>> http://jeffhammond.github.io/
>>>>
>>>> _______________________________________________
>>>> To manage subscription options or unsubscribe:
>>>> https://lists.mpich.org/mailman/listinfo/devel
>>> -- 
>>> Hal Finkel
>>> Lead, Compiler Technology and Programming Languages
>>> Leadership Computing Facility
>>> Argonne National Laboratory
>>>
>>>
>>> _______________________________________________
>>> To manage subscription options or unsubscribe:
>>> https://lists.mpich.org/mailman/listinfo/devel
>>>
> _______________________________________________
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/devel
> 


More information about the devel mailing list