kokkos / kokkos

Kokkos C++ Performance Portability Programming Ecosystem: The Programming Model - Parallel Execution and Memory Abstraction
https://kokkos.org
Other
1.88k stars 422 forks source link

parallel_for - MDRangePolicy test needed without dependency on Kokkos::View or deep_copy #2428

Open jeffmiles63 opened 5 years ago

jeffmiles63 commented 5 years ago

Current execution patterns unit tests are policy driven, which means that all of the range policy tests for parallel_for, parallel_reduce, parallel_scan are all part of the same suite of tests. Same goes for MDRangePolicy and TeamPolicy.

Also, the ViewValueFunctor used to initialize the contents of a view has a dependency on the ParallelFor implementation within the execution/memory space. Because of this dependency, the parallel_for tests need to be independent of the Kokkos::View.

For incremental Execution Space development, individual tests are needed for parallel_for - RangePolicy and parallel_for - MDRangePolicy that are not dependent on Kokkos::View

parallel_reduce is needed as well.

Because there aren't any dependencies on parallel_scan, this one may be deferred to the larger unit tests.

crtrott commented 4 years ago

Note the test is allowed to use Impl::DeepCopy<ExecSpace::memory_space,HostSpace> and Impl::DeepCopy<HostSpace,ExecSpace::memory_space>.