Coder Social home page Coder Social logo

Comments (5)

artpol84 avatar artpol84 commented on September 27, 2024

Clarification: this is with libunwind

from mpip.

artpol84 avatar artpol84 commented on September 27, 2024

#10 seems to fix the issue for me.
Though I noticed the following comment:

// Inlining / noinlining may affect frames in report
//   - Tools frames may appear in report

I'm not sure if this is a concern here: mpiP can control whether or not it's functions are inlined. It is possible to have a NO_INLINE macro that will restrict compiler from inlining functions that are capturing stack.

Anyway, I believe that other variants of stack capturing are using this approach, so I assume it is safe to use it here as well.

from mpip.

artpol84 avatar artpol84 commented on September 27, 2024

#10 turned to be incorrect.
As the replacement, I opened #14.
As opposed to indirectly guessing how many frames to skip, this commit is attacking it directly: search for the MPI_op in the stacktrace to identify the beginning of what should be reported.

from mpip.

artpol84 avatar artpol84 commented on September 27, 2024

Current version report

With -O0 optimization

---------------------------------------------------------------------------
@--- Callsites: 3 ---------------------------------------------------------
---------------------------------------------------------------------------
 ID Lev File/Address          Line Parent_Funct             MPI_Call
  1   0 wrappers.c            6218 MPI_Isend                Isend
  1   1 7-nonblock-waitall.c    47 func1
  1   2 7-nonblock-waitall.c    53 func2
  1   3 7-nonblock-waitall.c    57 func3
  1   4 7-nonblock-waitall.c    64 main
  2   0 wrappers.c            5558 MPI_Irecv                Irecv
  2   1 7-nonblock-waitall.c    46 func1
  2   2 7-nonblock-waitall.c    53 func2
  2   3 7-nonblock-waitall.c    57 func3
  2   4 7-nonblock-waitall.c    64 main
  3   0 wrappers.c            8995 MPI_Waitall              Waitall
  3   1 7-nonblock-waitall.c    48 func1
  3   2 7-nonblock-waitall.c    53 func2
  3   3 7-nonblock-waitall.c    57 func3
  3   4 7-nonblock-waitall.c    64 main

wrappers.c are captured for every MPI op.

With -O3 optimization

---------------------------------------------------------------------------
@--- Callsites: 3 ---------------------------------------------------------
---------------------------------------------------------------------------
  1   0 7-nonblock-waitall.c    48 func1                    Waitall
  1   1 7-nonblock-waitall.c    53 func2
  1   2 7-nonblock-waitall.c    57 func3
  1   3 7-nonblock-waitall.c    64 main
  2   0 wrappers.c            6218 MPI_Isend                Isend
  2   1 7-nonblock-waitall.c    47 func1
  2   2 7-nonblock-waitall.c    53 func2
  2   3 7-nonblock-waitall.c    57 func3
  2   4 7-nonblock-waitall.c    64 main
  3   0 7-nonblock-waitall.c    46 func1                    Irecv
  3   1 7-nonblock-waitall.c    53 func2
  3   2 7-nonblock-waitall.c    57 func3
  3   3 7-nonblock-waitall.c    64 main

wrappers.c is captured for Isend but not for others (build was with -O3).

With #14 (for both -O0 and -O3 optimizations)

---------------------------------------------------------------------------
@--- Callsites: 3 ---------------------------------------------------------
---------------------------------------------------------------------------
 ID Lev File/Address        Line Parent_Funct             MPI_Call
  1   0 7-nonblock-waitall.c    46 func1                    Irecv
  1   1 7-nonblock-waitall.c    53 func2
  1   2 7-nonblock-waitall.c    57 func3
  1   3 7-nonblock-waitall.c    64 main
  2   0 7-nonblock-waitall.c    48 func1                    Waitall
  2   1 7-nonblock-waitall.c    53 func2
  2   2 7-nonblock-waitall.c    57 func3
  2   3 7-nonblock-waitall.c    64 main
  3   0 7-nonblock-waitall.c    47 func1                    Isend
  3   1 7-nonblock-waitall.c    53 func2
  3   2 7-nonblock-waitall.c    57 func3
  3   3 7-nonblock-waitall.c    64 main

from mpip.

artpol84 avatar artpol84 commented on September 27, 2024

Addressed by #14 that was merged.

from mpip.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.