dash-project / dash

DASH, the C++ Template Library for Distributed Data Structures with Support for Hierarchical Locality for HPC and Data-Driven Science
http://www.dash-project.org/
Other
155 stars 44 forks source link

DASH Task Concept Specification #193

Open fuchsto opened 7 years ago

fuchsto commented 7 years ago

Note for later: ensure the DASH Task concept is compatible to the Kokkos task API.

fuchsto commented 7 years ago

@devreal Obviously, there is a strong dependency on the DART task concept specifications. Let's have a telco some time soon!

devreal commented 7 years ago

I've been meaning to look at the Kokkos task API and whether this is something we should consider. Will do so during the next days and report back. Pretty much any time next week works for me, just PM me.

devreal commented 7 years ago

I just read through the document at https://github.com/kokkos/kokkos/blob/master/doc/Kokkos_PG.pdf. To sum up what we need:

  1. Parallel dispatch (chapter 7): parallel_for, parallel_reduce, and parallel_scan. Implementation should be straight-forward and possible with the current state of the DART tasking implementation.
  2. Hierarchical parallelism (chapter 8) : so far I have not implemented thread-teams and the like so there is only one set of threads executing tasks. I do not immediately see the benefit of having thread teams (except if we talk about accelerators like GPUs) and it will certainly add more complexity to DART to support it.

Supporting the parallel dispatch is certainly helpful for easy parallelization. However, my vision of tasking (explicit task definition with dynamic dependencies) diverts quite a bit from what Kokkos seems to offer. But maybe the guide is not up-to-date. Let's discuss this on the phone call.

fuchsto commented 7 years ago

(oops)