[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