Save 37% off PRO during our Black Friday Sale! »

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

6734b737614a599f9b899f190e413d2d?s=47 DeepFlow, Inc.
September 09, 2021

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

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

6734b737614a599f9b899f190e413d2d?s=128

DeepFlow, Inc.

September 09, 2021
Tweet

Transcript

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

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

  3. 物理現象の局所性と並列性 局所性:近接相互作用 ⼒は場の局所的な相互作⽤を介在して伝搬する。 ⼒の伝播速度に上限が存在する。 ↓ 並列性:遠⽅では独⽴に運動する。 テスト電荷による電場のゆがみ。 電位を⾼低に置き換えている。 2

  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
  5. 陽解法 ! (", 1) (", 2) ", 3 時間刻み メモリの配置

    "∗∗ # + 1, ! = "∗∗ #, ! + (("∗∗ #, !, * Δt 4
  6. 参照の局所性 5 CPU 3次キャッシュ・メモリ 1次キャッシュ・メモリ 2次キャッシュ・メモリ メモリ(主記憶装置) ⾼速・⼩容量・ランダムアクセス 低速・⼤容量・連続アクセス アクセス時間

    記憶容量 1-2 clock 64KB 3-10 clock 246KB 10-20 clock 2MB 50-100 clock 16GB
  7. 参照の並列性 コ ア コ ア コ ア コ ア メモリ

    コ ア コ ア コ ア コ ア メモリ コ ア コ ア コ ア コ ア メモリ … 領域分割 近いものは同じノードのメモリに載っける ノード 6
  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
  9. ベクトル解析 圧⼒ P 勾配 grad P 速度場 & 回転 rot

    & 流束密度 ) 発散 div ) P 8 8 8 P P P 8
  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
  11. 離散微分形式 ɼ ਤ 1. ྲྀମܭࢉͰͷີ౓ ρ ͱ଎౓৔ u ͷ഑ஔ ageͰ͸෺ཧྔ͸શͯඍ෼ܗࣜͰ༩͑Β

    ྫ͑͹ɼྲྀମܭࢉͰີ౓ ρ ͸ 0 ܗࣜͰ͋ ౓৔ u ͸ 1 ܗࣜͰ͋Δɽඍ෼ܗࣜ ω ∈ V χ ্ͷੵ෼ (ධՁ) ஋ΛٻΊΔɽ χ, ω := χ ω ∈ R (3) ͯ͠ੵ෼஋Λฦ͢ઢܗ൚ؔ਺ χ∗ := χ, : ω → χ, ω (4) 6 : 積分領域 線分 面領域 体積領域 7 8 : 位置8での物理量 速度 流束密度 質量密度 物理量7の積分領域6 での 評価(積分)値 10
  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
  13. 離散微分形式 Cell ͷ཭ Խ͸ (2) ) ͷ ͳΔɽ Ϩο ฒྻ

    ΑΔ ͸ೋॏ૒ରۭؒ V ∗∗ ͷݩͱͳΔɽඍ෼ܗࣜ ω ͸ ೚ҙͷ఺ x Ͱ࿈ଓʹ஋ ω(x) Λ͕࣋ͭɼධՁࣸ૾ ω∗∗ ͸Մࢉݸͷ Cell χͷΈʹରԠͯ͠஋ ω∗∗(χ∗) Λ࣋ͭɽ͜ͷ ω∗∗ Λ཭ࢄඍ෼ܗࣜͱݺͿɽ ࣸ૾ φ : V → W ͱ σ∗ ∈ W∗ Λ༩͑ͨͱ͖ɼ V ্ͷ൚ؔ਺Λ φ∗(σ∗) := σ∗ ◦ φ = σ, φ( ) (6) ͰఆΊΔɽφ∗∗(ω∗∗) := ω∗∗◦ φ∗ ͱ͢Ε͹ɼ (φ∗∗(ω∗∗))(σ∗)= σ, φ(ω) =(φ(ω))∗∗(σ∗) (7) (φ∗∗(ω∗∗))(σ∗)= σ, φ(ω) =(φ(ω))∗∗(σ∗) (7) ΛಘΔɽͭ·Γɼਤࣜ V ∗∗ // φ  V ∗∗ φ∗ ∗  ω  ∗∗ // _ φ  ω∗∗ _ φ∗ ∗  W ∗∗ // W∗∗ φ(ω)  ∗∗ // (φ(ω))∗∗=φ∗∗(ω∗∗) ͕Մ׵ʹͳΔɽφ ͕ઢܗͳΒ͹ɼࣜ (3) ͷ૒ઢ 離散化∗∗は⾃然変換:離散化**と写像=は可換 12
  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 fi &( ) = 佐武⼀郎, 線形代数学, 裳華房, 1958. 13
  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
  16. ϯʹ͓͚Δہॴੑͱฒྻੑͷ཭ࢄඍ෼ܗࣜʹΑΔ࣮ݱ ୓࠸ 1 ձࣾ ukagawa@deepflow.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)