Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mature task-DAG capability #320

Closed
ndellingwood opened this issue Jun 8, 2016 · 7 comments
Closed

Mature task-DAG capability #320

ndellingwood opened this issue Jun 8, 2016 · 7 comments
Assignees
Labels
Feature Request Create new capability; will potentially require voting
Milestone

Comments

@ndellingwood
Copy link
Contributor

Maturing the LDRD prototype task policy and implement for all back-ends.

@ndellingwood ndellingwood added the Feature Request Create new capability; will potentially require voting label Jun 8, 2016
@ndellingwood ndellingwood added this to the Summer 2016 milestone Jun 8, 2016
@hcedwar
Copy link
Contributor

hcedwar commented Jul 27, 2016

In develop without intra-team collectives. These are in progress being developed by James - summer intern.

hcedwar pushed a commit that referenced this issue Aug 17, 2016
…inished and tested for Cuda, OpenMP, and Serial.

Cuda Task team collectives for ThreadVectorRange reduce and scan written not yet tested.

Remove redundant setup and teardown in OpenMP unit test files.

Work around gcc 4.7.2 and gcc 5.1.0 bug where using a captured variable twice genertes an error of redeclaring the captured variable.

Progress on issue #320
@hcedwar
Copy link
Contributor

hcedwar commented Aug 30, 2016

Intra-team collectives are partially implemented for the Summer milestone. This feature request will have to carry over to the next milestone to be completed.

@hcedwar
Copy link
Contributor

hcedwar commented Sep 30, 2016

Kokkos technical review 9/8/16 decision: rename TaskPolicy to TaskScheduler.
Renaming due to discussion that arguments to spawn functions are an execution policy for a given task; therefore, the top-level object that manages an integrated collection of tasks is a task scheduler not a task policy .

hcedwar added a commit that referenced this issue Sep 30, 2016
Introduce a using statement to temporarily preserve TaskPolicy
label for backward compatibility.
@hcedwar hcedwar modified the milestones: Backlog, END 2016 Nov 1, 2016
@hcedwar hcedwar modified the milestones: 2017-February, Backlog Dec 6, 2016
@hcedwar
Copy link
Contributor

hcedwar commented Dec 7, 2016

  • Try to reduce overhead of handing off a ready task to a ready thread, currently a lot of error checking and enqueue / dequeue work.

@hcedwar hcedwar changed the title Mature task policy Mature task-DAG capability Dec 13, 2016
hcedwar added a commit to hcedwar/kokkos that referenced this issue Dec 13, 2016
Updating API to better align with 'pattern( policy , functor )' as per issue kokkos#426.
hcedwar added a commit to hcedwar/kokkos that referenced this issue Dec 13, 2016
Removing use of atomic_exchange when a thread is know to have exclusive access.
hcedwar added a commit to hcedwar/kokkos that referenced this issue Dec 13, 2016
…_aggregate.

Rename 'pop_task' to 'pop_ready_task' since it is only applicable to ready queues.

Related to issue kokkos#320
hcedwar added a commit to hcedwar/kokkos that referenced this issue Dec 13, 2016
where the thread is guaranteed to have exclusive access.

Progress on issue kokkos#320
hcedwar added a commit to hcedwar/kokkos that referenced this issue Dec 19, 2016
Updating API to better align with 'pattern( policy , functor )' as per issue kokkos#426.
hcedwar added a commit to hcedwar/kokkos that referenced this issue Dec 19, 2016
Removing use of atomic_exchange when a thread is know to have exclusive access.
hcedwar added a commit to hcedwar/kokkos that referenced this issue Dec 19, 2016
…_aggregate.

Rename 'pop_task' to 'pop_ready_task' since it is only applicable to ready queues.

Related to issue kokkos#320
hcedwar added a commit to hcedwar/kokkos that referenced this issue Dec 19, 2016
where the thread is guaranteed to have exclusive access.

Progress on issue kokkos#320
hcedwar added a commit to hcedwar/kokkos that referenced this issue Jan 6, 2017
Updating API to better align with 'pattern( policy , functor )' as per issue kokkos#426.
hcedwar added a commit to hcedwar/kokkos that referenced this issue Jan 6, 2017
Removing use of atomic_exchange when a thread is know to have exclusive access.
hcedwar added a commit to hcedwar/kokkos that referenced this issue Apr 5, 2017
and moving threadIdx.x offset and blockDim.x increment
into loops. kokkos#637 kokkos#577 kokkos#320
hcedwar added a commit to hcedwar/kokkos that referenced this issue Apr 18, 2017
To be used in MemoryPool for TaskDAG maturing issue kokkos#320 .
Designed to help address issue kokkos#452 .
hcedwar added a commit to hcedwar/kokkos that referenced this issue Apr 18, 2017
and moving threadIdx.x offset and blockDim.x increment
into loops. kokkos#637 kokkos#577 kokkos#320
hcedwar added a commit to hcedwar/kokkos that referenced this issue Apr 18, 2017
race conditions by condensing state representation
to a single integer and simplifying algorithm.
Addresses issues kokkos#320 , kokkos#487 , kokkos#452

Using power-of-two Kokkos::Impl::concurrent_bitset size to streamline
implementation and align with MemoryPool needs.

Unit testing over a range of superblocks the following sequence:
  1) allocate N of varying size
  2) deallocate N/3 of these
  3) reallocation deallocated
  4) concurrently deallocate and allocate N/3 of these
hcedwar added a commit to hcedwar/kokkos that referenced this issue Apr 19, 2017
race conditions by condensing state representation
to a single integer and simplifying algorithm.
Addresses issues kokkos#320 , kokkos#487 , kokkos#452

Using power-of-two Kokkos::Impl::concurrent_bitset size to streamline
implementation and align with MemoryPool needs.

Unit testing over a range of superblocks the following sequence:
  1) allocate N of varying size
  2) deallocate N/3 of these
  3) reallocation deallocated
  4) concurrently deallocate and allocate N/3 of these

Add performance test for memory pool.
Add performance enhancement note for multiple hints per block size.
hcedwar added a commit to hcedwar/kokkos that referenced this issue Apr 19, 2017
Cleaning and consolidating Cuda Team across TeamPolicy and TaskScheduler.
Cleaning Cuda Team collective operations.
Moving Cuda team vector collectives into CudaTeamMember
and moving threadIdx.x offset and blockDim.x increment
into loops.

Fine tuning Impl::FunctorAnalysis in preparation for CUDA back-end clean up.
Unit testing Impl::FunctorAnalysis.
Fine tuning Reducer interface and implementations for CUDA back-end clean up.
'#if 0' code in CUDA back-end to flesh out design clean up.
hcedwar added a commit to hcedwar/kokkos that referenced this issue Apr 19, 2017
race conditions by condensing state representation
to a single integer and simplifying algorithm.
Addresses issues kokkos#320 , kokkos#487 , kokkos#452

Using power-of-two Kokkos::Impl::concurrent_bitset size to streamline
implementation and align with MemoryPool needs.

Unit testing over a range of superblocks the following sequence:
  1) allocate N of varying size
  2) deallocate N/3 of these
  3) reallocation deallocated
  4) concurrently deallocate and allocate N/3 of these

Add performance test for memory pool.
Add performance enhancement note for multiple hints per block size.
hcedwar added a commit to hcedwar/kokkos that referenced this issue Apr 19, 2017
Cleaning and consolidating Cuda Team across TeamPolicy and TaskScheduler.
Cleaning Cuda Team collective operations.
Moving Cuda team vector collectives into CudaTeamMember
and moving threadIdx.x offset and blockDim.x increment
into loops.

Fine tuning Impl::FunctorAnalysis in preparation for CUDA back-end clean up.
Unit testing Impl::FunctorAnalysis.
Fine tuning Reducer interface and implementations for CUDA back-end clean up.
'#if 0' code in CUDA back-end to flesh out design clean up.
hcedwar added a commit to hcedwar/kokkos that referenced this issue Apr 19, 2017
To be used in MemoryPool for TaskDAG maturing issue kokkos#320 .
Designed to help address issue kokkos#452 .
hcedwar added a commit to hcedwar/kokkos that referenced this issue Apr 19, 2017
race conditions by condensing state representation
to a single integer and simplifying algorithm.
Addresses issues kokkos#320 , kokkos#487 , kokkos#452

Using power-of-two Kokkos::Impl::concurrent_bitset size to streamline
implementation and align with MemoryPool needs.

Unit testing over a range of superblocks the following sequence:
  1) allocate N of varying size
  2) deallocate N/3 of these
  3) reallocation deallocated
  4) concurrently deallocate and allocate N/3 of these

Add performance test for memory pool.
Add performance enhancement note for multiple hints per block size.
hcedwar added a commit to hcedwar/kokkos that referenced this issue Apr 19, 2017
race conditions by condensing state representation
to a single integer and simplifying algorithm.
Addresses issues kokkos#320 , kokkos#487 , kokkos#452

Creating power-of-two Kokkos::Impl::concurrent_bitset size to streamline
implementation and align with MemoryPool needs.

Unit testing over a range of superblocks the following sequence:
  1) allocate N of varying size
  2) deallocate N/3 of these
  3) reallocation deallocated
  4) concurrently deallocate and allocate N/3 of these

Add performance test for memory pool.
Add performance enhancement note for multiple hints per block size.
@hcedwar hcedwar added this to Backlog in On-node Task DAG Apr 19, 2017
hcedwar added a commit to hcedwar/kokkos that referenced this issue Apr 23, 2017
enable stealing of empty superblocks among block sizes.

Expand block size superblock hint array to "N" values per block size
to provide space for TBD superblock search optimizations.

Construct memory pool with min block, max block, and superblock size
and introduce performance optimizations related to max vs. min block size.

Issues kokkos#487, kokkos#320, kokkos#738, kokkos#215
hcedwar added a commit to hcedwar/kokkos that referenced this issue Apr 23, 2017
@hcedwar hcedwar moved this from Feature Backlog to In Progress in On-node Task DAG Apr 25, 2017
@ibaned
Copy link
Contributor

ibaned commented Jun 14, 2017

The last thing needed here is #577

@ibaned
Copy link
Contributor

ibaned commented Jun 14, 2017

... and Documentation !!!

@hcedwar
Copy link
Contributor

hcedwar commented Jun 21, 2017

... and example(s)

@hcedwar hcedwar modified the milestones: 2017-August (middle), 2017-June-end Jun 26, 2017
@hcedwar hcedwar moved this from In Progress to In Develop in On-node Task DAG Sep 28, 2017
@crtrott crtrott closed this as completed Oct 28, 2017
@hcedwar hcedwar moved this from In Develop to Done in On-node Task DAG Feb 23, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Request Create new capability; will potentially require voting
Projects
No open projects
Development

No branches or pull requests

4 participants