1 of 8

Asynchronous Multitasking Runtimes : AMRs /

Asynchronous Tasking Models : ATMs

(tool support for)

2 of 8

Single-Node Implementations

  • TBB?
  • Cilk
  • OpenMP Tasks
    • 4.0 Target Support
  • C++11 threads (futures support)
  • ARGO: Argobots
  • Others...

3 of 8

Distributed Implementations

  • ParalleX: HPX-3, HPX-5
  • Charm++
  • Legion
  • OCR
  • Habanero
  • OmpSs
  • Others...

4 of 8

Tools that (limited) support AMRs

  • TAU - w/sampling, configured with pthread support or OpenMP
  • HPCToolkit (OpenMP)
  • Score-P OpenMP task support
  • Ravel (Charm++)
  • Projections (Charm++)
  • Paraver (OmpSs, OpenMP)
  • Oracle Solaris Studio (OpenMP)
  • Open|SpeedShop (OpenMP)
  • Temanejo (graphical debugger for tasks)
  • Others...

5 of 8

Common runtime needs, issues

  • LANL informal meeting between Legion, OCR and PIPER groups (LLNL, LANL) to discuss common event sets (next 2 slides)
  • Tracking tasks, data, events
  • Calling Contexts
  • Critical path tracking
  • Dependency Tracking
  • Resistance to callbacks (i.e. OMPT)

6 of 8

For tasks, data, events there are timelines. Tasks are created, scheduled, executed, completed, destroyed. Same is true for data, potentially moved around (possible for tasks in some runtimes). These events are listed in the next slide.

Events are placed into a ring-buffer.

Another “task/thread” will process the events out of the buffer.

Timelines for tasks, data, events

7 of 8

Taxonomy of events: Task, Data, Other

Event attributes

8 of 8

What should tools do?

  • Track task dependencies
  • Track data dependencies
  • Measurement with runtime context
  • Show useful aggregations of task/data graphs (NOT the whole graph)
  • Show more than profiles/traces
  • What is a good taskgraph? Bad?
  • Resiliency - if the runtime is resilient, what should the tool display? (show redundant computations?)
  • Distinguish between users’ and pushers’ perspective
  • Avoid MxN solutions
  • Good chance of us (tools) working together for solution