Dagger.jl icon indicating copy to clipboard operation
Dagger.jl copied to clipboard

Add distributed primitives

Open jpsamaroo opened this issue 5 years ago • 1 comments

Once #117 is merged, and #166 is realized, we'll want users to be able to use Dagger for traditional concurrent programming. In order to do so, we need to be able to ensure certain scheduling patterns and communication between thunks. Important primitives include:

  • [ ] Barrier
  • [ ] Co-scheduling (two or more thunks are guaranteed to be scheduled concurrently)
  • [ ] Co-execution (same as co-scheduling, and the thunks will execute on the same type of processor (for shared-memory operations))
  • [x] Wait on thunk completion (one or more)
  • [x] Get thunk result
  • [ ] Block/cancel thunk scheduling

The above primitives would enable https://github.com/JuliaParallel/Dagger.jl/issues/140#issuecomment-735986668

jpsamaroo avatar Nov 30 '20 19:11 jpsamaroo

Waiting on thunk completion and fetching thunk results will be implemented in #117

jpsamaroo avatar Dec 02 '20 19:12 jpsamaroo