NSIM: 将来の大規模相互結合網を 対象とした通信シミュレータの開発 ○三輪英樹† 薄田竜太郎†† 柴村英智†† 平尾智也†† 眞木淳†† 稲富雄一‡ 井上弘士‡ 安島雄一郎† 三吉郁夫† 清水俊幸† 安藤壽茂 †富士通株式会社 ††財団法人 九州先端科学技術研究所 ‡国立大学法人 九州大学 2010/6/17 Copyright 2010 FUJITSU LIMITED 1 発表手順 • はじめに – 将来の大規模相互結合網の性能予測の必要性 • 関連研究との比較 • NSIM – – – – NSIMとは? シミュレーションモデル NSIMの機能概要、通信パターン記述例、可視化例 設計上・実装上の工夫 • 評価実験 – シミュレーション結果検証 – シミュレーション性能評価 • おわりに 2010/6/17 Copyright 2010 FUJITSU LIMITED 2 発表手順 • はじめに – 将来の大規模相互結合網の性能予測の必要性 • 関連研究との比較 • NSIM – – – – NSIMとは? シミュレーションモデル NSIMの機能概要、通信パターン記述例、可視化例 設計上・実装上の工夫 • 評価実験 – シミュレーション結果検証 – シミュレーション性能評価 • おわりに 2010/6/17 Copyright 2010 FUJITSU LIMITED 3 はじめに (1/3) • 将来の大規模並列計算機 – 約2年でプロセッサコア数は約2倍 – 数10万ノードを相互結合網で接続 システム台数 top500.org における搭載プロセッサ数別シェア (搭載プロセッサ数によるシステムの分類) 500 400 300 200 100 月/年 06/2010 11/2009 06/2009 11/2008 06/2008 11/2007 06/2007 11/2006 06/2006 11/2005 06/2005 11/2004 06/2004 0 33-64 65-128 129-256 257-512 513-1024 1025-2048 2049-4096 4k-8k 8k-16k 16k-32k 32k-64k 64k-128k 128k- (http://www.top500.org/ より、2010/06/17現在) 2010/6/17 Copyright 2010 FUJITSU LIMITED 4 はじめに (2/3) • 並列計算機における通信部分のシミュレー ションの必要性 – 実機完成前 • 相互結合網のアーキテクチャ、制御方法の開発 シミュレーション • 通信アルゴリズムの開発 対象システム – 実機完成後 • アプリケーション(通信部分) 性能チューニング … … シミュレーション 実行環境 2010/6/17 Copyright 2010 FUJITSU LIMITED 5 はじめに (3/3) • シミュレーション対象システムの大規模化に伴う シミュレーション上の問題 – ノード数(n)の増加 シミュレーション処理量が増大 シミュレーション時間が増大 • (例) 全対全通信(Alltoall) – 気象の全球シミュレーション、分子動力学シミュレーション など、FFT(高速フーリエ変換)利用アプリケーションで利用 – ノード数 n、メッセージ長 m に対し、総通信量は O(mn2) など • 単位処理量あたりのシミュレーション高速化が 必要 2010/6/17 Copyright 2010 FUJITSU LIMITED 6 関連研究との比較 シミュレータ BlueGene/L 相互結合網 シミュレータ [3] NSIM BookSim [1] BigNetSim [2] 開発元 Stanford University University of Ilinois at Urbana Champaign IBM ISIT 九州大学 富士通 シミュレーション 方式 実行駆動型、サイク ルアキュレート トレース駆動型、 保守的並列離散事象 トレース駆動型、 楽観的並列離散事象 実行駆動型、 保守的並列離散事象 通信モデル粒度 フリットレベル 動作環境 逐次実行環境 メモリ共有/非共有 並列計算機 メモリ共有 並列計算機 メモリ共有/非共有 並列計算機 数10ノード 32Kノード、3次元トー ラス網、ランダムトラ フィック/Alltoall、32台 dual PowerPC G5、 分散メモリ計算機 32Kノード、3次元トー ラス、ランダムトラ フィック、16-way POWER3+ 共有メモリ計算機 64Kノード、3次元トー ラス網、Alltoall、 2ソケット4コアXeon, 共有メモリ計算機 動作実績 パケットレベル [1] W. Dally and B. Towles, “Principles and Practices of Interconnection Networks,” Morgan Kaufmann Publishers Inc. 2003. http://cva.stanford.edu/books/ppin/ [2] N. Choudhury, T. Mehta, T. L. Wilmarth, E. J. Bohm, and L. V. Kale, “Scaling an optimistic parallel simulation of large-scale interconnection networks,” Proc. of the Winter Simulation Conference, pp. 4-7, Dec 2005. [3] N. R. Adiga, M. A. Blumrich, D. Chen, P. Coteus, A. Gara, M. E. Giampapa, P. Heidelberger, S. Singh, B. D. Steinmacher-Burow, T. Takken, M. Tsao, and P. Vranas, “Blue Gene/L torus interconnection network,” IBM Journal of Research & Development, Vol. 49, No. 2/3, pp.265–276, 2005. 2010/6/17 Copyright 2010 FUJITSU LIMITED 7 発表手順 • はじめに – 将来の大規模相互結合網の性能予測の必要性 • 関連研究との比較 • NSIM – – – – NSIMとは? シミュレーションモデル NSIMの機能概要、通信パターン記述例、可視化例 設計上・実装上の工夫 • 評価実験 – シミュレーション結果検証 – シミュレーション性能評価 • おわりに 2010/6/17 Copyright 2010 FUJITSU LIMITED 8 NSIMとは? • 将来の大規模並列計算機の相互結合網を対 象とした通信シミュレータ – 想定規模:~数10万ノード – 想定実行環境:小規模並列計算機 (マルチコア・ プロセッサ搭載パソコン) – 精度:数10万ノード規模のシミュレーションを上記 環境にて現実的な時間内で達成可能な精度 2010/6/17 Copyright 2010 FUJITSU LIMITED 9 その他のNSIMの特徴 • MPI互換APIによる通信パターン記述 • 様々な種類/抽象度/範囲の結果出力 – マクロミクロの性能問題解析を支援 • 実行駆動型シミュレーション – 輻輳などの実行時の振る舞いを反映 • 並列離散事象シミュレーション – 並列実行環境を利用 2010/6/17 Copyright 2010 FUJITSU LIMITED 10 シミュレーションモデル 1プロセス/ノード MPI関数処理 オーバヘッドは パラメータで 設定 受信ノード 並列プログラム 並列プログラム 主記憶 ユーザバッファ 主記憶 ユーザバッファ MPIバッファ MPIバッファ … NIC0 バッファ NIC1 バッファ NIC0 バッファ NIC1 バッファ … NIC0 バッファ NIC1 バッファ … NIC0 バッファ NIC1 バッファ … ネットワーク の仕様は パラメータで 設定 送信ノード ルータモデル はパイプライン 転送、および 調停を実装 相互結合網 • トポロジ:メッシュ、トーラス、FatTree • フロー制御:バーチャルカットスルー • ルーティング:次元オーダルーティングなど 2010/6/17 Copyright 2010 FUJITSU LIMITED 11 メッセージ送信関数 int main() { if ((me%2) == 0) { MPI_Send(sbuf,count, MPI_INT, me+1, tag, MPI_COMM_WORLD); } else { MPI_Recv(rbuf,count, MPI_INT, me-1, tag, MPI_COMM_WORLD, &status); } return 0; メッセージ受信関数 } MGENプログラム (MPI互換APIで記述) コンフィグレーション ファイル シミュレーション設定、 統計情報/ルータ状態出力設定、 ルータ仕様設定、 トポロジ設定 、 (Torus, Mesh, FatTree) MPIオーバヘッド設定、… 2010/6/17 NSIM NSIM ノード シミュレーション機能 パケット レベル イベント 要求 パケット レベル イベント シミュレーション 制御機能 パケット レベル イベント 要求 パケット レベル イベント 相互結合網 シミュレーション機能 統計情報 (全体/平均) MGENプログラム実行時間、 平均リンクスループット、 平均リンクビジー率、 待ち/通過/受信パケット数、 平均パケット転送待ち時間、 NSIM実行時間、… 統計情報 (時間空間別) ネットワークレイテンシ、 平均リンクスループット、 平均リンクビジー率、 平均バッファ利用率、 待ち/通過パケット数、 平均パケット待ち時間、… ルータ状態出力 滞留パケット数 (混雑発生箇所特定) ルータ上のパケット情報 (混雑発生原因特定) 可視化ツール Copyright 2010 FUJITSU LIMITED 12 通信パターン記述例 #include <stdio.h> #include "mpi.h" #define TAG0 0 #define COM MPI_COMM_WORLD #define MSIZE 1 int main( int argc, char ** argv ) { int myrank, mysize, left_rank,right_rank, dest; MPI_Status status; MPI_Init(&argc, &argv); MPI_Comm_rank(COM, &myrank); MPI_Comm_size(COM, &mysize); int sendbuf[MSIZE], recvbuf[MSIZE]; left_rank = (myrank-1+mysize)%mysize; right_rank = (myrank+1)%mysize; MPI_Send( &sendbuf, MSIZE, MPI_BYTE, left_rank, TAG0, COM ); MPI_Send( &sendbuf, MSIZE, MPI_BYTE, right_rank, TAG0, COM ); int i; for (i=0;i<mysize*MSIZE;i++) { MPI_Recv( &recvbuf, MSIZE, MPI_BYTE, MPI_ANY_SOURCE, TAG0, COM, &status); if ( status.MPI_SOURCE == left_rank ) dest = right_rank ; if ( status.MPI_SOURCE == right_rank ) dest = left_rank ; MPI_Send( &sendbuf, MSIZE, MPI_BYTE, dest, TAG0, COM); } MPI_Recv( &recvbuf, MSIZE, MPI_BYTE, MPI_ANY_SOURCE, TAG0, COM, &status); MPI_Recv( &recvbuf, MSIZE, MPI_BYTE, MPI_ANY_SOURCE, TAG0, COM, &status); MPI_Finalize(); return 0; } #include "mgen-mpi.h" に書き換え 2010/6/17 Copyright 2010 FUJITSU LIMITED 13 可視化例 (1/2) 2次元メッシュ/2次元トーラス 石畑らによるAlltoallアルゴリズム[4] 各ノードが以下の番号順にメッセージ送信 33 17 6 4 8 23 39 50 26 10 2 0 1 9 40 24 7 3 5 18 34 49 25 62 48 15 22 11 20 13 42 53 実効リンク帯域 (方向毎) 実効リ ンク帯域 [GB/sec.] Y+ 30 43 35 28 37 45 32 58 41 14 19 12 21 16 47 54 X+ 4.0 X- Y+ Y- AVE. 3.0 2.0 1.0 0.0 0 10 31 46 38 27 36 44 29 57 20 30 40 50 60 Time [msec.] Y− 60 56 52 63 51 55 59 61 X− X+ [4] 高上治之, 矢崎俊志, 安島雄一郎, 清水俊幸, 石畑宏明, “2次元Meshネットワーク・Torusネットワーク上での最適全対全通信アルゴリズム,” ハイパフォーマンスコンピューティングと計算科学シンポジウムHPCS2010,pp.83-90,2010. 2010/6/17 Copyright 2010 FUJITSU LIMITED 14 可視化例 (2/2) リング、3ホップ先へ送信 バッファ利用率 0.6 0.4 ノード3 55-57 Time [us] 49-51 43-45 36-38 30-32 24-26 0.2 0-2 ノード4 0.8 18-20 ノード5 1 6-8 ノード6 2,0,1 1,0,1 0,0,1 7,0,0 6,0,0 5,0,0 4,0,0 3,0,0 2,0,0 1,0,0 12-14 Node, Port, Channel ノード7 リンク帯域 (リンク毎) ノード2 7,0 5 6,0 Node, Link ノード1 ノード0 4 5,0 4,0 3 3,0 2 2,0 1 2010/6/17 Copyright 2010 FUJITSU LIMITED 55-57 Time [us] 49-51 43-45 36-38 30-32 24-26 18-20 双方向リンク 6-8 ノード 0-2 0,0 12-14 1,0 凡例 0 0 15 NSIMの並列動作イメージ … … 評価対象 プロセス 評価対象 プロセス 評価対象 プロセス 評価対象 プロセス 評価対象 プロセス 評価対象 プロセス 評価対象 プロセス 評価対象 プロセス プロセッ サ・メモリ・ NIC プロセッ サ・メモリ・ NIC プロセッ サ・メモリ・ NIC プロセッ サ・メモリ・ NIC プロセッ サ・メモリ・ NIC プロセッ サ・メモリ・ NIC プロセッ サ・メモリ・ NIC プロセッ サ・メモリ・ NIC 性能評価対象システム (仮想環境) インターコネクト 1つのNSIMプロセス(実MPIプロセス)が複数の ターゲットプロセスやインターコネクト資源をシミュレート シミュレーション用 システム (実環境) NSIM プロセス 0 NSIM プロセス 1 NSIM プロセス 2 NSIM プロセス 3 NSIM プロセス 4 NSIM プロセス 5 NSIM プロセス 6 NSIM プロセス 7 CORE 5 CORE 6 CORE 7 MPI環境 CORE 0 CORE 1 CORE 2 CORE 3 CORE 4 プロセッサ0 プロセッサ1 共有メモリ 2010/6/17 Copyright 2010 FUJITSU LIMITED 16 NSIMの設計上・実装上の工夫 • シミュレーションモデルの見直し – 対象システムにおけるデータ転送を省略し、 利用メモリ量を削減 • 並列実行オーバヘッドの削減 – 並列離散事象シミュレーションの時刻同期のため の通信を削減 2010/6/17 Copyright 2010 FUJITSU LIMITED 17 発表手順 • はじめに – 将来の大規模相互結合網の性能予測の必要性 • 関連研究との比較 • NSIM – – – – NSIMとは? シミュレーションモデル NSIMの機能概要、通信パターン記述例、可視化例 設計上・実装上の工夫 • 評価実験 – シミュレーション結果検証 – シミュレーション性能評価 • おわりに 2010/6/17 Copyright 2010 FUJITSU LIMITED 18 評価実験 • シミュレーション結果検証 – シミュレーション結果の傾向が妥当であることを検証 – 実機評価結果 (HPC Challengeに提出されたIntel Endeavor) と比較 • シミュレーションモデルは特定の実機を想定したものではな く、ノード部分はかなり理想化しているため、傾向を比較 • シミュレーション性能評価 – 現実的な時間内に10万ノード規模のシミュレーション が可能であることを確認 – BigNetSimと比較して高速に動作し、かつ大規模な シミュレーションが可能であることを確認 2010/6/17 Copyright 2010 FUJITSU LIMITED 19 シミュレーション結果検証 1.6 実測値 (Intel Endeavor) 1.4 予測値 (NSIM) スループット [GB/s] 1.2 1 0.8 0.6 0.4 0.2 0 0 256 512 768 1024 1280 1536 1792 2048 ノー ド数 [Intel® Endeavorの構成] スイッチ:Mellanox® MTS3600Q-1UNCスイッチ(36ポート、 Infiniband 8X QDR対応)、 CPU:クアッドコアIntel® Xeon® X5560 (2.8GHz動作)、HCA:Mellanox® MHGH-28XTC (DDR) [NSIM構成] 通信パターン: HPC Challenge ランダムリングトラフィック、トポロジ:FatTree(36ポート、Fully bidirectional bandwidth構成)、単方向リンクスループット:4GB/s、HCAスループット:2GB/s 2010/6/17 Copyright 2010 FUJITSU LIMITED 20 シミュレーション性能評価 メモリ消費量、1024バイト(NSIM) メモリ消費量、1024バイト(BigNetSim) シミュレーション時間、1024バイト(NSIM) シミュレーション時間、1024バイト(BigNetSim) 216000 30 20 1/2300 60 15 1 10 65536 32768 16384 8192 4096 2048 1024 512 256 128 0 64 0.0002778 32 5 16 0.0166667 メ モ リ利用量 [GB] 7時間弱 25 1/10 3600 8 シ ミュ レーション実行時間 [秒] メモリ消費量、4バイト(NSIM) メモリ消費量、4バイト(BigNetSim) シミュレーション時間、4バイト(NSIM) シミュレーション時間、4バイト(BigNetSim) ノー ド数 [シミュレータ構成] 通信パターン:Alltoall (bruck)、トポロジ:3次元トーラス網、単方向スループット:8GB/s [NSIM実行環境] マシン:Dell Precision™ T7400 workstation、CPU:クアッドコアIntel® Xeon® CPU E5440 (2.8GHz動作,デュアル6MB L2 cacheを共有) 2ソケット、主記憶:32GB 4チャネルDDR2-SDRAM (667MHz動 作,ECC付き)、OS:Red Hat® Enterprise Linux® 5 Update 4 kernel-2.6.18-164.11.1.el5、MPI:MPICH2 version 1.2 2010/6/17 Copyright 2010 FUJITSU LIMITED 21 発表手順 • はじめに – 将来の大規模相互結合網の性能予測の必要性 • 関連研究との比較 • NSIM – – – – NSIMとは? シミュレーションモデル NSIMの機能概要、通信パターン記述例、可視化例 設計上・実装上の工夫 • 評価実験 – シミュレーション結果検証 – シミュレーション性能評価 • おわりに 2010/6/17 Copyright 2010 FUJITSU LIMITED 22 おわりに • 将来の大規模並列計算機の相互結合網を対象 とした通信シミュレータを提案 – ある条件下では、10万ノード規模のシミュレーション が現実的な時間内で完了 • 課題 – – – – 可視化手段の充実 精度検証 性能チューニング BSIM[5]との協調によるアプリケーション全体の シミュレーション [5] R. Susukita, H. Ando, M. Aoyagi, H. Honda, Y. Inadomi, K. Inoue, S. Ishizuki, Y. Kimura, H. Komatsu, M. Kurokawa, K. J. Murakami, H. Shibamura, S. Yamamura, Y. Yu, “Performance Prediction of Large-scale Parallel System and Application using Macro-level Simulation,” Proc. of Supercomputing (SC2008), Nov. 2008. 2010/6/17 Copyright 2010 FUJITSU LIMITED 23
© Copyright 2024 ExpyDoc