TypeART icon indicating copy to clipboard operation
TypeART copied to clipboard

Thread-safe / multi-threaded TypeART runtime implementation

Open jplehr opened this issue 4 years ago • 0 comments

To be able to handle multi-threaded, e.g., hybrid MPI+OpenMP, applications, the TypeART runtime needs to be made thread-safe.

Most likely also some careful inspection of the instrumentation function interfaces, and the LLVM pass implementation is needed here to account for thread-local storage variables, etc.

OpenMP

Some points apply to general thread-safety.

Runtime

  • [x] Pointer map is thread-safe:
    • [x] Mutex (shared)
    • [x] Safe ptr, see https://github.com/AlexeyAB/object_threadsafe
  • [x] (Current) Stack allocations are stored with thread-local vector
  • [x] omp specific callbacks

Passes

  • [x] Support basics for data-flow filter with omp microtask indirection
    • [ ] Add data-flow tracking w.r.t. omp tasks (e.g., task_alloc)

jplehr avatar Sep 12 '20 09:09 jplehr