Should we use `@threads :greedy` for the innerloop threading?

Open
#491 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Refactor
Clarity
Needs clarification
Activity status
Stale
Tech stack
julia
Domain
performance

Research direction

No file or test is named. Inspect the inner-loop use of @threads, compare the current scheduler with :greedy under workloads with uneven iteration times, and benchmark the alternatives; done means a measured recommendation or an implemented scheduler change backed by tests.

Written by the indexing model from the issue text.

Description

According to the documentation of @threads this is the scheduler that would work best for non-uniform running times in different threads.

:greedy scheduler spawns up to Threads.threadpoolsize() tasks, each greedily
working on the given iterated values as they are produced. As soon as one
task finishes its work, it takes the next value from the iterator. Work done
by any individual task is not necessarily on contiguous values from the
iterator. The given iterator may produce values forever, only the iterator
interface is required (no indexing).

This scheduling option is generally a good choice if the workload of
individual iterations is not uniform/has a large spread.

Dominant language
Julia
Stars
132
Forks
25
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from JuliaDataCubes/YAXArrays.jl

All issues in JuliaDataCubes/YAXArrays.jl

Similar issues

More Julia issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.