Re: [mpich-devel] proposed changes to function enter/exit logging
Hi all, I am digging up this old thread to call attention to another PR that proposes changes to the function enter and exit macros. https://github.com/pmodels/mpich/pull/5479 The changes in this new PR are less radical than #4276. It would keep enter/exit macros in the code, but simplify their use. This would help prevent common errors/bugs associate with them. Please let us know if you have thoughts! We would like to merge these for the upcoming 4.0 series. Thanks, Ken On 1/16/20, 10:15 AM, "Raffenetti, Kenneth J." <[email protected]> wrote: [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... >> >> >> 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 >>>> <[email protected] <mailto:[email protected]>> 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 >>>> [email protected] <mailto:[email protected]> >>>> 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 >
participants (1)
-
Raffenetti, Kenneth J.