Provide system/vendor neutral API Marty McFadden mcfadden8@llnl.gov OMPD API Provide system/vendor neutral API Marty McFadden mcfadden8@llnl.gov
OMPD – What is it? OMPD is an API to make OpenMP constructs available to 3rd party tools (such as debuggers) Present threads organized into OMP concepts (tasks, teams, etc) Provide stack traces with runtime specifics filtered out API is being proposed for inclusion in the OpenMP specification OMP Runtimes would include support for an OMPD library providing the API We have a prototype and specification. OpenMP Tools subcommittee meets every two weeks. Input/Feedback welcome!
Challenges System Thread IDs Pthreads ID, etc. Cuda Thread ID (logical, and/or physical) Logical: Cuda Context, Grid ID [x, y, z], Block ID [x, y, z], Thread ID [x, y, z] Physical: Device, SM, Warp, Lane Debugger understands system ID mechanism, OMPD Library does not OMPD API needs means to map Debugger’s notion of system thread IDs to OpenMP thread IDs
Proposal Create new debugging abstraction Sharable to both Debugger and OMPD Provides common view to system thread IDs OMPD API to use BLOB for thread IDs Contents & semantics defined by debugger abstraction initial contents & semantics defined in external document Keeps OMPD API system/vendor neutral