FastBroadcast.jl is not using multithreading with `ArrayPartition`
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
- 技術スタック
- julia
- 領域
- performance
調査の方向性
まず、FastBroadcast.jl の305~313行付近にあるリンク先のセクションと、RecursiveArrayTools.jl にある ArrayPartition の broadcast スタイルを読んでください。スレッド化された fast_materialize パスがスキップされる理由を追跡し、次にどのリポジトリが修正を担当するのかを特定して、報告された broadcast 形式を使った DynamicalODEProblem のスレッド実行を検証してください。
索引モデルが issue の本文から書いたものです。
説明
Things like this are not multithreaded when u is an ArrayPartition:
@.. broadcast=false thread=true u=u + x * u
ArrayPartitions use a custom BroadcastStyle. FastBroadcast.jl therefore doesn't go into the fast_materialize_threaded! branch and instead calls the generic materialize!, which is not threaded:
https://github.com/YingboMa/FastBroadcast.jl/blob/ad586d83ffcac15c92969b93dd5cf0c8fd025af9/src/FastBroadcast.jl#L305-L313
Multithreaded schemes in OrdinaryDiffEq.jl are using @.. broadcast=false thread=thread ..., and OrdinaryDiffEq.jl is using an ArrayPartition for DynamicalODEProblems. Therefore, time integration is not multithreaded (even when setting thread=True()) with a DynamicalODEProblem and a scheme that works for a general ODEProblem (including all RK methods).
Not sure in which repo this should be fixed, so I just reported it here.
- 主要言語
- Julia
- スター
- 233
- フォーク
- 76
- 平均マージ
- 5時間 33分
- マージ済み PR(30日)
- 11
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
SciML/RecursiveArrayTools.jl のほかの issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
SciML/RecursiveArrayTools.jl#255 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
SciML/RecursiveArrayTools.jl#662 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 65/100
SciML/RecursiveArrayTools.jl#661 ·
-
JET: similar_type(::Any) no-matching-method in RecursiveArrayToolsRaggedArrays (pre-existing QA red) オープン
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
SciML/RecursiveArrayTools.jl#620 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
SciML/RecursiveArrayTools.jl#619 ·
SciML/RecursiveArrayTools.jl の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
epiforecasts/BVDOutbreakSize#862 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
CliMA/Oceananigans.jl#6066 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
JuliaLang/LinearAlgebra.jl#1707 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
JuliaPluto/Pluto.jl#3616 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
ReactiveBayes/ExponentialFamily.jl#322 · コメント 2 件 ·