Upgrade to Pro — share decks privately, control downloads, hide ads and more …

シミュレーションにおける局所性と並列性の離散微分形式による実現

DeepFlow, Inc.
September 09, 2021

 シミュレーションにおける局所性と並列性の離散微分形式による実現

近接作用論では力は場の局所的な相互作用で伝搬し、力の伝播速度には上限が存在し運動は並列的である。シミュレーションで並列計算機の性能を引き出すには物理現象の局所性と並列性が計算時のデータアクセスにおいても実現することが重要である。基礎方程式を微分形式で記述し、離散化し陽解法で解いた。この一連の手続きは基礎方程式の局所性と並列性を保ち、並列計算機を使った大規模シミュレーションを可能とする。

DeepFlow, Inc.

September 09, 2021
Tweet

More Decks by DeepFlow, Inc.

Other Decks in Science

Transcript

  1. シミュレーションにおける
    局所性と並列性の離散微分形式
    による実現
    ⽇本応⽤数理学会2021年度年会(2021/9/7~9)
    DeepFlow 株式会社 ○深川 宏樹 ⽯原 拓哉
    [email protected]flow.co.jp
    0

    View Slide

  2. Topic
    局所性と並列性
    シミュレーション例の紹介
    1
    物理現象 微分形式
    ↓ ↓⾃然変換
    計算機 離散微分形式

    View Slide

  3. 物理現象の局所性と並列性
    局所性:近接相互作用
    ⼒は場の局所的な相互作⽤を介在して伝搬する。
    ⼒の伝播速度に上限が存在する。

    並列性:遠⽅では独⽴に運動する。
    テスト電荷による電場のゆがみ。
    電位を⾼低に置き換えている。 2

    View Slide

  4. 場の運動⽅程式
    ہॴੑͱฒྻੑ
    ࣌ࠁ t ͱҐஔ x Ͱͷ৔Λ ω Ͱද͠ɼ৔ͷۭؒ
    ෼Λ ω ͱॻ͘ɽۙ઀࡞༻ͷجૅํఔࣜ͸
    ∂ω(t, x)
    ∂t
    = f(ω(t, x), ω (t, x)) (1)
    ༩͑ΒΕΔɽࣜ (1) Λ਺஋తʹղ͜͏ɽ࣌ؒ
    ࠁΈ෯ ∆t Ͱ෼ׂ͠ɼ࣌ؒͷΠϯσοΫεΛ
    ͱ͢ΔɽۭؒΛϝογϡ෼ׂ͠ɼ෼ׂཁૉΛ
    ͱݺͼɼID Λ n ͱ͢Δɽ཭ࢄԽͨ͠৔ͷ஋
    ∗∗(m, n) Ͱද͢ɽCell n ͷۙ๣ʹ͋Δ Cell
    D Λ (n, i) ͱ͢Δɽi ≥ 0 ͸ۙ๣ʹ͋Δ Cell
    ࢜Λ۠ผ͠ɼn = (n, 0) ͱ͢Δɽω (t, x) ͷ཭
    Γɼ଎౓৔ u ͸ 1 ܗࣜͰ
    ͷ Cell χ ্ͷੵ෼ (ධՁ
    χ, ω :=
    ω ʹରͯ͠ੵ෼஋Λฦ͢
    χ∗ := χ,
    ͸ V ͷ૒ରۭؒ V ∗ ͷݩ
    ω∗∗ := evalω :
    ͸ೋॏ૒ରۭؒ V ∗∗ ͷݩ
    !
    (", 1)
    (", 2)
    ", 3
    離散化
    "∗∗ # + 1, !
    = "∗∗ #, ! + (("∗∗ #, !, * Δt
    3

    View Slide

  5. 陽解法
    !
    (", 1)
    (", 2)
    ", 3
    時間刻み
    メモリの配置
    "∗∗ # + 1, ! = "∗∗ #, ! + (("∗∗ #, !, * Δt
    4

    View Slide

  6. 参照の局所性
    5
    CPU
    3次キャッシュ・メモリ
    1次キャッシュ・メモリ
    2次キャッシュ・メモリ
    メモリ(主記憶装置)
    ⾼速・⼩容量・ランダムアクセス
    低速・⼤容量・連続アクセス
    アクセス時間 記憶容量
    1-2 clock 64KB
    3-10 clock 246KB
    10-20 clock 2MB
    50-100 clock 16GB

    View Slide

  7. 参照の並列性








    メモリ








    メモリ








    メモリ

    領域分割
    近いものは同じノードのメモリに載っける
    ノード
    6

    View Slide

  8. 流体の⽅程式
    ナビエ・ストークス
    質量保存
    時間発展は次の形でかける。
    7
    !"
    !#
    = −div("*)
    Δ*: = grad div − rot rot *
    !*
    !#
    = −* ⋅ rot * −
    1
    2
    grad * ⋅ * −
    1
    "
    (grad 6 − 7Δ*)
    ͢ʹ͸ɼ෺ཧݱ৅ͷہॴੑͱฒྻੑ͕ܭࢉ࣌
    ͷσʔλΞΫηεʹ͓͍ͯ΋࣮ݱ͢Δ͜ͱ͕
    ཁͰ͋Δ [1]ɽ৔ͷجૅํఔࣜΛඍ෼ܗࣜͰ༩
    Ε͹ɼہॴੑͱฒྻੑΛอͭࣗવͳ཭ࢄԽ͕
    ͖ɼେن໛ͳγϛϡϨʔγϣϯ͕Ͱ͖Δ [2]ɽ
    ہॴੑͱฒྻੑ
    ࣌ࠁ t ͱҐஔ x Ͱͷ৔Λ ω Ͱද͠ɼ৔ͷۭؒ
    ෼Λ ω ͱॻ͘ɽۙ઀࡞༻ͷجૅํఔࣜ͸
    ∂ω(t, x)
    ∂t
    = f(ω(t, x), ω (t, x)) (1)
    ༩͑ΒΕΔɽࣜ (1) Λ਺஋తʹղ͜͏ɽ࣌ؒ
    ਤ 1. ྲྀମܭࢉͰͷີ
    3 ཭ࢄඍ෼ܗࣜ
    Elkurage Ͱ͸෺ཧྔ
    ΕΔɽྫ͑͹ɼྲྀମܭ
    Γɼ଎౓৔ u ͸ 1 ܗࣜ
    ͷ Cell χ ্ͷੵ෼ (ධ
    χ, ω :
    ω ʹରͯ͠ੵ෼஋Λฦ
    where

    View Slide

  9. ベクトル解析
    圧⼒ P 勾配 grad P
    速度場 & 回転 rot &
    流束密度 ) 発散 div )
    P
    8
    8
    8
    P
    P
    P
    8

    View Slide

  10. 微分形式
    圧⼒ P 勾配 grad P
    0 form ∋ P ↦ dP ∈ 1 form
    速度場 & 回転 rot &
    1 form ∋ & ↦ d& ∈ 2form
    流束密度 4 発散 div 4
    2 form ∋ 4 ↦ d4 ∈ 3 form
    9
    P
    8
    8
    8

    View Slide

  11. 離散微分形式
    ɼ
    ਤ 1. ྲྀମܭࢉͰͷີ౓ ρ ͱ଎౓৔ u ͷ഑ஔ
    ageͰ͸෺ཧྔ͸શͯඍ෼ܗࣜͰ༩͑Β
    ྫ͑͹ɼྲྀମܭࢉͰີ౓ ρ ͸ 0 ܗࣜͰ͋
    ౓৔ u ͸ 1 ܗࣜͰ͋Δɽඍ෼ܗࣜ ω ∈ V
    χ ্ͷੵ෼ (ධՁ) ஋ΛٻΊΔɽ
    χ, ω :=
    χ
    ω ∈ R (3)
    ͯ͠ੵ෼஋Λฦ͢ઢܗ൚ؔ਺
    χ∗ := χ, : ω → χ, ω (4)
    6 : 積分領域 線分 面領域 体積領域
    7 8 : 位置8での物理量 速度 流束密度 質量密度
    物理量7の積分領域6 での
    評価(積分)値
    10

    View Slide

  12. 離散微分形式
    χ, ω :=
    χ
    ω ∈ R (3)
    ରͯ͠ੵ෼஋Λฦ͢ઢܗ൚ؔ਺
    χ∗ := χ, : ω → χ, ω (4)
    ͷ૒ରۭؒ V ∗ ͷݩʹͳΔɽω ͷධՁࣸ૾
    ω∗∗ := evalω : χ∗ → χ, ω (5)
    ରͯ͠ੵ෼஋Λฦ͢ઢܗ൚ؔ਺
    χ∗ := χ, : ω → χ, ω (4)
    ͷ૒ରۭؒ V ∗ ͷݩʹͳΔɽω ͷධՁࣸ૾
    ω∗∗ := evalω : χ∗ → χ, ω (5)
    ॏ૒ରۭؒ V ∗∗ ͷݩͱͳΔɽඍ෼ܗࣜ ω ͸
    ͠ɼ৔ͷۭؒ
    ૅํఔࣜ͸
    t, x)) (1)
    ղ͜͏ɽ࣌ؒ
    ϯσοΫεΛ
    ɼ෼ׂཁૉΛ
    Խͨ͠৔ͷ஋
    ͷ Cell χ ্ͷੵ෼ (ධՁ) ஋ΛٻΊΔ
    χ, ω :=
    χ
    ω ∈ R
    ω ʹରͯ͠ੵ෼஋Λฦ͢ઢܗ൚ؔ਺
    χ∗ := χ, : ω → χ, ω
    ͸ V ͷ૒ରۭؒ V ∗ ͷݩʹͳΔɽω ͷ
    ∗∗ ∗
    物理量7の積分領域6 での評価(積分)値
    7
    ∗∗ は 7の離散化
    7(8) : 位置8での物理量 ➡ 7
    ∗∗
    (6

    ): 領域6で7の評価(積分)値

    !
    双対
    双対の双対
    11

    View Slide

  13. 離散微分形式
    Cell
    ͷ཭
    Խ͸
    (2)
    ) ͷ
    ͳΔɽ
    Ϩο
    ฒྻ
    ΑΔ
    ͸ೋॏ૒ରۭؒ V ∗∗ ͷݩͱͳΔɽඍ෼ܗࣜ ω ͸
    ೚ҙͷ఺ x Ͱ࿈ଓʹ஋ ω(x) Λ͕࣋ͭɼධՁࣸ૾
    ω∗∗ ͸Մࢉݸͷ Cell χͷΈʹରԠͯ͠஋ ω∗∗(χ∗)
    Λ࣋ͭɽ͜ͷ ω∗∗ Λ཭ࢄඍ෼ܗࣜͱݺͿɽ
    ࣸ૾ φ : V → W ͱ σ∗ ∈ W∗ Λ༩͑ͨͱ͖ɼ
    V ্ͷ൚ؔ਺Λ
    φ∗(σ∗) := σ∗ ◦ φ = σ, φ( ) (6)
    ͰఆΊΔɽφ∗∗(ω∗∗) := ω∗∗◦ φ∗ ͱ͢Ε͹ɼ
    (φ∗∗(ω∗∗))(σ∗)= σ, φ(ω) =(φ(ω))∗∗(σ∗) (7)
    (φ∗∗(ω∗∗))(σ∗)= σ, φ(ω) =(φ(ω))∗∗(σ∗) (7)
    ΛಘΔɽͭ·Γɼਤࣜ
    V ∗∗ //
    φ

    V ∗∗
    φ∗


    ω ∗∗ //
    _
    φ

    ω∗∗
    _
    φ∗


    W ∗∗ // W∗∗ φ(ω) ∗∗ // (φ(ω))∗∗=φ∗∗(ω∗∗)
    ͕Մ׵ʹͳΔɽφ ͕ઢܗͳΒ͹ɼࣜ (3) ͷ૒ઢ
    離散化∗∗は⾃然変換:離散化**と写像=は可換
    12

    View Slide

  14. 離散微分形式
    Մ׵ʹͳΔɽφ ͕ઢܗͳΒ͹ɼࣜ (3) ͷ૒ઢ
    ੑΑΓɼઢܗͳసஔࣸ૾ tφ Λ༻͍ͯ
    σ, φ(ω) = tφ(σ), ω (8)
    right (C) 2021 Ұൠࣾஂ๏ਓ೔ຊԠ༻਺ཧֶձ
    ਤ 2. ճసೋॏӋࠜͷۭྗܭࢉ
    ͳΓ [3]ɼφ(ω) Λ஌Βͳͯ͘΋ (φ(ω))∗∗
    ࢉͰ͖Δɽྫ͑͹ɼ֎ඍ෼ d ͸ઢܗࣸ૾
    ɼڥք࡞༻ૉΛ ∂ ͱͯ͠ɼετʔΫεͷ
    写像=が線形写像なら、次を満たす線形写像 #
    =が存在する。
    例:∫
    !
    d# = ∫
    "!
    #= Σ#

    $!
    #
    ਤ 2. ճసೋॏӋࠜͷۭྗܭࢉ
    ͱͳΓ [3]ɼφ(ω) Λ஌Βͳͯ͘΋ (φ(ω))∗∗(σ) ͕
    ܭࢉͰ͖Δɽྫ͑͹ɼ֎ඍ෼ d ͸ઢܗࣸ૾Ͱ͋
    Γɼڥք࡞༻ૉΛ ∂ ͱͯ͠ɼετʔΫεͷఆཧ
    ΑΓ σ, dω = ∂σ, ω ͱͳΔɽω Λ 2 ܗࣜͱ͢
    Ε͹ɼdω ͸ 3 ܗࣜͱͳΔɽχi
    Λ 3-Cell σ ͷද
    ໘Λ෴͏ 2-Cell ͱ͢Ε͹ɼ∂σ = i
    χi
    ͱͳΓɼ
    (dω)∗∗(σ∗) = ω∗∗(χ∗) ͱܭࢉͰ͖Δɽϗο
    ᝳໟਸ
    ଠࢯͷ
    ͸ɼ͞
    Λ࢖ͬ
    ࢀߟจ
    [1] T
    T
    M
    H
    I

    &( ) =
    佐武⼀郎, 線形代数学, 裳華房, 1958.
    13

    View Slide

  15. シミュレーション
    ਤ 2. ճసೋॏӋࠜͷۭྗܭࢉ
    ͱͳΓ [3]ɼφ(ω) Λ஌Βͳͯ͘΋ (φ(ω))∗∗(σ) ͕
    ܭࢉͰ͖Δɽྫ͑͹ɼ֎ඍ෼ d ͸ઢܗࣸ૾Ͱ͋
    Γɼڥք࡞༻ૉΛ ∂ ͱͯ͠ɼετʔΫεͷఆཧ
    ΑΓ σ, dω = ∂σ, ω ͱͳΔɽω Λ 2 ܗࣜͱ͢
    Ε͹ɼdω ͸ 3 ܗࣜͱͳΔɽχi
    Λ 3-Cell σ ͷද
    ໘Λ෴͏ 2-Cell ͱ͢Ε͹ɼ∂σ = i
    χi
    ͱͳΓɼ
    (dω)∗∗(σ∗) = i
    ω∗∗(χ∗
    i
    ) ͱܭࢉͰ͖Δɽϗο
    δελʔ࡞༻ૉ΋ઢܗࣸ૾Ͱ͋Γɼಉ༷ʹܭࢉ
    Ͱ͖Δɽࣸ૾͸ඞͣ͠΋ઢܗͱ͸ݶΒͳ͍ɽྫ
    ͑͹ɼ಺෦ੵ͸ඇઢܗࣸ૾Ͱ͋Δɽ͜ͷ৔߹ʹ
    ਤ 3. μΠϙʔϧΞ
    ँࣙ Elkurage
    ձࣾͷੴҪେւ
    ᝳໟਸষࢯɼD
    ଠࢯͷڠྗΛಘ
    ͸ɼ͘͞ΒΠϯ
    Λ࢖ͬͨɽ
    ࢀߟจݙ
    [1] T. Mura
    Tomita, K
    Maruyama
    H. Hotta,
    Inoue, Au
    ficient Co
    scriptions
    Proc. of t
    shop on F
    ਤ 3. μΠϙʔϧΞϯςφͷిؾྗઢ (ࠨ) ͱ࣓৔෼෍ (ӈ)
    1
    2
    4
    8
    16
    32
    64
    128
    256
    512
    1024
    2048
    4096
    8192
    16384
    32768
    1 4 16 64 256 1024 4096 16384
    Speedup
    Number of Processors
    Ideal Speedup
    CX400 Actual Speedup
    parallel portion 0.95
    参考ベンチマーク-strong scaling
    流体構造連成解析(FSI)
    戦略的イノベーション創造プログラム
    深川 2017年
    14

    View Slide

  16. ϯʹ͓͚Δہॴੑͱฒྻੑͷ཭ࢄඍ෼ܗࣜʹΑΔ࣮ݱ
    ୓࠸ 1
    ձࣾ
    [email protected]flow.co.jp
    ͱɼྗ͸৔ͷہॴతͳ૬ޓ
    ೻଎౓ʹ͸্ݶ͕ଘࡏ͠ɼ
    ɽฒྻܭࢉػͷੑೳΛҾ͖
    ͷہॴੑͱฒྻੑ͕ܭࢉ࣌
    ʹ͓͍ͯ΋࣮ݱ͢Δ͜ͱ͕
    جૅํఔࣜΛඍ෼ܗࣜͰ༩
    ྻੑΛอͭࣗવͳ཭ࢄԽ͕
    ਤ 1. ྲྀମܭࢉͰͷີ౓ ρ ͱ଎౓৔ u ͷ഑ஔ
    3 ཭ࢄඍ෼ܗࣜ
    まとめ:シミュレーションにおける
    局所性と並列性の離散微分形式による実現
    物理
    ↓ 陽解法
    計算機
    微分形式 7 8
    ↓ ⾃然変換 **
    離散微分形式 7
    ∗∗
    (6

    ) 離散微分形式による⼤規模シミュレーション, 応⽤数理, 31
    (2021), 22–26.
    散逸系の変分原理, ⽇本物理学会誌, 72 (2017), 34–38.
    微分形式による粘性流体の定式化, ながれ, 40 (2021), 38–45.
    15
    2 ہॴੑͱฒྻੑ
    ࣌ࠁ t ͱҐஔ x Ͱͷ৔Λ ω Ͱද͠ɼ৔ͷۭؒ
    ඍ෼Λ ω ͱॻ͘ɽۙ઀࡞༻ͷجૅํఔࣜ͸
    ∂ω(t, x)
    ∂t
    = f(ω(t, x), ω (t, x)) (1)
    Ͱ༩͑ΒΕΔɽࣜ (1) Λ਺஋తʹղ͜͏ɽ࣌ؒ
    ΛࠁΈ෯ ∆t Ͱ෼ׂ͠ɼ࣌ؒͷΠϯσοΫεΛ
    m ͱ͢ΔɽۭؒΛϝογϡ෼ׂ͠ɼ෼ׂཁૉΛ
    Cell ͱݺͼɼID Λ n ͱ͢Δɽ཭ࢄԽͨ͠৔ͷ஋
    Λ ω∗∗(m, n) Ͱද͢ɽCell n ͷۙ๣ʹ͋Δ Cell
    ͷ ID Λ (n, i) ͱ͢Δɽi ≥ 0 ͸ۙ๣ʹ͋Δ Cell
    Γɼ଎౓৔
    ͷ Cell χ ্
    ω ʹରͯ͠
    ͸ V ͷ૒ର
    ω
    ͸ೋॏ૒ର
    . ྲྀମܭࢉͰͷີ౓ ρ ͱ଎౓৔ u ͷ഑ஔ
    ࢄඍ෼ܗࣜ
    ageͰ͸෺ཧྔ͸શͯඍ෼ܗࣜͰ༩͑Β
    ྫ͑͹ɼྲྀମܭࢉͰີ౓ ρ ͸ 0 ܗࣜͰ͋
    ౓৔ u ͸ 1 ܗࣜͰ͋Δɽඍ෼ܗࣜ ω ∈ V
    χ ্ͷੵ෼ (ධՁ) ஋ΛٻΊΔɽ
    χ, ω :=
    χ
    ω ∈ R (3)

    View Slide