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

Webブラウザ上におけるシェリング分居モデルエージェントシミュレーションの並列化・多段階化によ...

 Webブラウザ上におけるシェリング分居モデルエージェントシミュレーションの並列化・多段階化による高速化

情報処理学会第87回全国大会 6A-04
千葉商科大学 久保裕也
#ipsj

Avatar for Hiroya Kubo

Hiroya Kubo

March 15, 2025
Tweet

More Decks by Hiroya Kubo

Other Decks in Programming

Transcript

  1. 7 「シェリングの分居モデル」 Thomas SCHELLING, 1971, “Dynamic Model of Segregation,” Journal

    of Mathematical Sociology, Vol.1, No.1, pp.143-186. 「白人と黒人が隣同士で暮らす ことに抵抗がなくとも、 いつの間にか白人が多く居住す る地域と黒人が居住する地域に 分かれてしまう現象」を、簡単 なルールで再現 7 ◯ 肌の色1 # 肌の色2 この研究でのシミュレーションは 計算機を使わずに手作業のみで実施
  2. 8 8 教育的アプローチの例 先行研究 独自言語NetLogoを用いた MASの実験・学習環境 Uri Wilensky and The

    Center for Connected Learning and Computer-Based Modeling “NetLogo” (1999) https://ccl.northwestern.edu/netlogo/
  3. 9 9 教育的アプローチの例 先行研究 構造計画研究所: クラウド上でMASを構 築・実行・共有できる プラットフォーム、 Pythonを用いたルール 記述が可能

    小川倫,北上靖大,”マルチ エージェント・シミュレーショ ン用ソフトウェアartisoc Cloud の紹介,” オペレーションズ・ リサーチ: 経営の科学,65, pp. 206–211, 2020. https://mas.kke.co.jp/model /schelling/
  4. 10 計算機科学的チャレンジの例 (適用事例に「シェリングの分居モデル」を含むもの) ➢高性能計算: CUDA+MPIで、複数CPU・複数GPU環境での並列ハードウェア性能 を最大限に引き出そうとする研究 ➢ Aaby BG, et

    al. 2010, “Efficient simulation of agent-based models on multi-GPU and multi- core clusters,” Proceedings of the 3rd International ICST Conference on Simulation Tools and Techniques (SIMUTools'10). No. 29, pp.1-10. ➢ソフトウェア工学: 「関心の分離」手法に基づいて、CUDA C++とPythonによる開発 の容易さとGPUによる処理効率の高さを両立させようとする研究 ➢ Richmond, P. et al. 2023, "FLAME GPU 2: A framework for flexible and performant agent based simulation on GPUs," Journal of Software: Practice and Experience, Vol. 53, No. 8, pp. 1629-1737. 10
  5. 11 解決するべき課題 ➢「GPUが広く普及し た現状」 において、 MASに関する 「教育現場でのニー ズ」と「研究現場で のニーズ」の隙間が 埋められていない

    11 ➢ GPU普及以前に作られたMAS系教材は、 GPU対応が不十分であるため、 大規模なシミュレーションができない ➢ 研究現場で用いられているものは、Web系エ コシステムとは技術体系が異なる ➢ 開発環境を準備する手間が大きい ➢ 開発技術の習得に要する学習曲線が急 ➢ セキュアな実行を前提としていない ➢ 成果物を気軽に配布できない・実行 できない ➢ 高性能なワークステーションだけでなく、 モバイル端末までを含めた幅広いハードウェ アで動作するようなものがない
  6. 15 デモンストレーション ➢Google Chromeなどで の利用を想定しています ➢iOSのSafariでも、設定で WebGPUを有効化してあ れば利用可能です ➢ ポケモンフラッシュ的な

    表示内容となりますので、 デモ画面を凝視しないようにし、 気分が悪くなった場合には 目をそらすようにしてください 15 https://kubohiroya.github.io/webgpu-react-bitmap-viewport/examples/index.html#3
  7. 18 18 注目するセルの「近傍」の状況による 「満足」の度合いの計算 1 1 1 1 注目す るセル

    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 注目す るセル 1 1 1 1 1 1 1 1 1 1 1 1 8近傍のうち4近傍が同じ色= 4/8 = 0.5 24近傍のうち6近傍が同じ色 = 6/24 = 0.25 8近傍の場合 24近傍の場合 ※分母に空き地を含めるか否かや、セルの場所に応じた重みづけなどによるバリエーションあり
  8. 19 19 「不満足エージェントの抽出」 2 3 10 13 14 16 21

    22 32 34 36 37 40 44 46 50 54 55 58 空き地のアドレスを抽出、配列化 [2,3,10,13,14,16,21,22,32,34,36,37,40, 44,46,50,54,55,58] 0 1 4 6 9 15 18 20 30 31 35 38 39 41 42 47 53 60 62 不満足エージェントのアドレスを抽出、配列化 [0,1,4,6,9,15,18,20,30,31,35,38,39,41,42,47,53,60,62] 閾値:1/8の場合 周りに 同じ色が 少ない!
  9. 20 20 「不満足エージェントの空き地への引越し」 空き地のアドレスを抽出、 配列化 [2,3,10,13,14,16,21,22,32,34,36,3 7,40,44,46,50,54,55,58] 不満足エージェントの アドレスを抽出、配列化 [0,1,4,6,9,15,18,20,30,31,

    35,38,39,41,42,47,53,60,62] [ 50, 13, 21, 22, 10, 40, 37, 2, 55, 14, 32, 58, 46, 36, 3, 44, 34, 16, 54] [ 39, 18, 20, 47, 0, 4, 15, 6, 60, 35, 9, 38, 62, 42, 30, 53, 31, 1, 41] 配列をシャッフル 元となる エージェントの配置 引越し完了後の エージェントの配置
  10. 22 22 「不満足エージェントの空き地への引越し」 処理の単純化 [ 50, 13, 21, 22, 10,

    40, 37, 2, 55, 14, 32, 58, 46, 36, 3, 44, 34, 16, 54] [ 39, 18, 20, 47, 0, 4, 15, 6, 60, 35, 9, 38, 62, 42, 30, 53, 31, 1, 41] 「シャッフル済み空き地アドレス 」 「シャッフル済み不満足エージェントのアドレス」 39 50 50 39 引越し完了
  11. 25 25 実装1: JavaScript 逐次抽出 並列抽出 reduce map 並列抽出 並列抽出

    空き地の アドレス のシャッ フル 不満足 エージェ ントの シャッフ ル 不満足 エージェ ントの引 越し 描画 描画フ レームご との処理 を開始 逐次抽出(Wasm) 空き地セ ルの シャッフ ル(Wasm) 不満足 エージェ ントの シャッフ ル(Wasm) 不満足 エージェ ントの引 越し (Wasm) reduce (Wasm) 不満足エージェントの抽出
  12. 26 26 実装2: JavaScript+Wasm 逐次抽出 並列抽出 reduce map 並列抽出 並列抽出

    空き地の アドレス のシャッ フル 不満足 エージェ ントの シャッフ ル 不満足 エージェ ントの引 越し 描画 描画フ レームご との処理 を開始 逐次抽出(Wasm) 空き地セ ルの シャッフ ル(Wasm) 不満足 エージェ ントの シャッフ ル(Wasm) 不満足 エージェ ントの引 越し (Wasm) reduce (Wasm) 不満足エージェントの抽出
  13. 27 27 実装3: JavaScript+WebGPU 逐次抽出 並列抽出 reduce map 並列抽出 並列抽出

    空き地の アドレス のシャッ フル 不満足 エージェ ントの シャッフ ル 不満足 エージェ ントの引 越し 描画 描画フ レームご との処理 を開始 逐次抽出(Wasm) 空き地セ ルの シャッフ ル(Wasm) 不満足 エージェ ントの シャッフ ル(Wasm) 不満足 エージェ ントの引 越し (Wasm) reduce (Wasm) 不満足エージェントの抽出
  14. 28 28 実装4: JavaScript+Wasm+WebGPU 逐次抽出 並列抽出 reduce map 並列抽出 並列抽出

    空き地の アドレス のシャッ フル 不満足 エージェ ントの シャッフ ル 不満足 エージェ ントの引 越し 描画 描画フ レームご との処理 を開始 逐次抽出(Wasm) 空き地セ ルの シャッフ ル(Wasm) 不満足 エージェ ントの シャッフ ル(Wasm) 不満足 エージェ ントの引 越し (Wasm) reduce (Wasm) 不満足エージェントの抽出
  15. 30 64個の スレッドで 分割 64個のワークグループで分割(並列化) 64ワークグループx64スレッドごとのブロック化 (全体が1辺1024セルの場合: 幅18 x 高さ18セルでのブロック化)

    8近傍を処理するので 幅1のゴーストゾーン 8近傍を処理するので 幅1のゴーストゾーン 8近傍を処理するので 幅1のゴーストゾーン 8近傍を処理するので 幅1のゴーストゾーン GPUコアからVRAMへのアクセスの回数 を減らすために、(8近傍を処理するの で)3行分のセル内容をリングバッファ でキャッシュする。これにより、VRAM アクセスのレイテンシを約1/9に削減で きる。 ブロックごとに、 引越し希望エージェントを 探し、それらのアドレスを パディングつき配列に 入れて返す ワークグループ 内でのVRAMア クセスのレイテ ンシなどを隠蔽 し、スループッ トを向上を図る。
  16. 32 実行環境 ➢4種の実装を処理速度(Frames Per Second: FPS)の面から評価 ➢MacBook Pro 16インチ2021モデル(M1 Max)、WebブラウザはChrome

    Version 131を使用して計測 ➢256^2, 512^2, 1024^2のトーラスに、5種類のエージェントをそれぞ れ15%ずつと空き地25%をランダムに配置し、不満足の閾値を0.55とし て、全てのエージェントが満足し分居状態が安定するまでの約1500ス テップを実行 32
  17. 36 ブロック化とキャッシシングによる性能 向上についての考察 ➢1024^2の大きさのトーラスを処理する場合、ブロックの横幅は 1024/64+1x2=18セル ➢1ワークアイテムが関数スコープ内配列でキャッシュするセル の数は、幅18x高さ3 = 54セル ➢WebGPU仕様では関数スコープでの配列の最大長は定義されて

    いない(動作環境によって異なる) ➢経験則的には、32ビット値の配列ならば65535要素未満までは動作可 能 ➢1ブロックの処理において、リングバッファを作成することに よりキャッシュするセルの最大数は、割り当て可能な関数ス コープ配列長に比べて、十分に小さい=問題なしと考えられる 36
  18. 39 参考文献 ➢Schelling, T., “Dynamic Model of Segregation,” Journal of

    Mathematical Sociology, Vol.1, No.1, pp.143-186. 1971. ➢Uri Wilensky and The Center for Connected Learning and Computer-Based Modeling: NetLogo, https://ccl.northwestern.edu/netlogo/ (2025年3月14日閲覧) ➢小川倫,北上靖大,”マルチエージェント・シミュレーション用ソフトウェアartisoc Cloudの紹介,” オペレーションズ・リサーチ: 経営の科学,65, pp. 206–211, 2020. ➢Hiroya Kubo: WebGPU Multi-Agent Simulation: Schelling’s model of segregation: https://kubohiroya.github.io/webgpu-react-bitmap-viewport/examples/#3(2025 年3月14日閲覧) ➢Aaby BG, et al., “Efficient simulation of agent-based models on multi-GPU and multi-core clusters,” Proceedings of the 3rd International ICST Conference on Simulation Tools and Techniques (SIMUTools'10). No. 29, pp.1-10. 2010. ➢Richmond, P. et al., "FLAME GPU 2: A framework for flexible and performant agent based simulation on GPUs," Journal of Software: Practice and Experience, Vol. 53, No. 8, pp. 1629-1737. 2023. 39