490 likes | 635 Views
分散・並列スーパーコンピューティングのソフトウェアの研究. 未来開拓学術研究推進事業 知能 情報・高度情報処理. 参加研究者. プロジェクトリーダー:島崎 眞昭:京都大学 コアメンバー: 村岡洋一:早稲田大学 國枝 義敏:和歌山大学 佐藤 周行:東京大学 参加研究者 笠原 博徳:早稲田大学 上原 哲太郎:和歌山大学 城 和貴:奈良女子大学 福田 晃 :奈良先端大学院大学 中西 恒夫:奈良先端大学院大学 斎藤彰一:和歌山大学 笹倉万里子:岡山大学 岩下 武史:京都大学 南里 豪志:九州大学
E N D
分散・並列スーパーコンピューティングのソフトウェアの研究分散・並列スーパーコンピューティングのソフトウェアの研究 未来開拓学術研究推進事業 知能 情報・高度情報処理 Software for Parallel and Distributed Supercomputing
参加研究者 • プロジェクトリーダー:島崎 眞昭:京都大学 • コアメンバー: 村岡洋一:早稲田大学 • 國枝 義敏:和歌山大学 • 佐藤 周行:東京大学 • 参加研究者 • 笠原 博徳:早稲田大学 上原 哲太郎:和歌山大学 • 城 和貴:奈良女子大学 福田 晃 :奈良先端大学院大学 • 中西 恒夫:奈良先端大学院大学 • 斎藤彰一:和歌山大学 笹倉万里子:岡山大学 • 岩下 武史:京都大学 南里 豪志:九州大学 • 山下 雅史:九州大学 藤田 聡 :広島大学 • 朝廣 雄一:九州大学 • 中島 浩 :豊橋技術科学大学 大野 和彦:豊橋技術科学大学 Software for Parallel and Distributed Supercomputing
研究の概要 並列プログラミング言語 並列論理型言語 スケジューリング ソース プログラム 最適化アルゴリズム 標準タスクグラフセット 実行環境 分散共有メモリ コンパイラ・ツール パイプライニング 並列化コンパイラ 動的負荷分散 視覚化ツール 共有メモリ並列機 分散メモリ超並列機 ワークステーションクラスタ 分散システム Software for Parallel and Distributed Supercomputing
プロジェクトの目的・対象 • 分散・並列スーパーコンピューティングのための • ソフトウェア環境の構築 • 自動並列化コンパイラParallelizing Restructuring Compiler • 並列プログラミング言語 並列論理型言語 • 関連ツール 視覚化ツール・スケジューラ・実行環境 目的 対象 • 広範な並列実行環境 • 対称型主記憶共有並列計算機(SMP) • 主記憶分散型超並列計算機(MPP) • ワークステーションクラスタ・PCクラスタ(Clusters) • 非均質分散環境(Heterogeneous Distributed System) Software for Parallel and Distributed Supercomputing
プロジェクトの組織図 京都大学、東京大学、九州大学 分散共有メモリ Webベース問題解決環境 早稲田大学 標準タスクグラフ 早稲田大学 メタコンピューティング 豊橋技術科学大学 並列論理型言語 和歌山大学 奈良先端技術大学院大学 奈良女子大学 岡山大学 並列化コンパイラ・ツール 九州大学 広島大学 スケジューリング理論 Software for Parallel and Distributed Supercomputing
自動並列化 分散化 依存解析 修正 修正 MIRAI powered by NaraView : cc-COMAモデルに基づく自動並列化コンパイラ MIRAI コンパイラ エントリ一貫性モデルに 基づくDSM向け プログラム 逐次 プログラム HTG or DPG COMAに 最適化された 並列 プログラム NaraView 対話的操作 Software for Parallel and Distributed Supercomputing
NaraViewを利用した並列化(拡張Huckel計算) By a default pass of a parallelizing compiler Analysis of data dependence By adding several options Case 1 Case 2 Case 3 Line13 (3n2-21n-6)/2 n2-2n-8 5(n-2) Line69 n2-n-1 (n2-n-1)/2 2 Software for Parallel and Distributed Supercomputing The Number of Loop Iterations Hand coding according to the information
Heuristic 8 Heuristic 7 Heuristic 6 Heuristic 5 Heuristic 4 Heuristic 3 Heuristic 2 Heuristic 1 Original 18 1800 16 1600 14 1400 M A B C D E F G H I J K L 実行時間(秒) Error(%) 12 1200 1000 M 10 800 A L I E B A M 8 600 6 400 0 5 10 15 20 4 200 2 0 0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 0 50 100 150 200 250 300 350 実行時間(秒) Girkarのプログラム分割アルゴリズムの高速化 Heuristic1に対する12種類の高速化法の提案 8種類のヒューリスティックスの提案 採用 高速化法L,I,E,B,Aの比較 35種類のタスクグラフによるMとAとの実行時間比較 採用 Heuristic1+高速化法Aでオリジナルより実行時間二桁向上 Software for Parallel and Distributed Supercomputing
逐次 プログラム (Fortran) 自動並列化 コンパイラ (MIRAI) 並列化された プログラム (C ソース) 並列 プログラム (実行形式) C コンパイラ (cc, gccなど) ワークステーションクラスタ向けcc-COMA 実行時環境:Fagus Node C Node B Node A cc-COMA 実行時環境 (Fagus) LAN Software for Parallel and Distributed Supercomputing
実用的なマルチプロセッサスケジューリングとその性能評価手法に関する研究実用的なマルチプロセッサスケジューリングとその性能評価手法に関する研究 早稲田大学理工学部 電気電子情報工学科 飛田高雄 笠原博徳 Software for Parallel and Distributed Supercomputing
実用的なマルチプロセッサ スケジューリングアルゴリズム 任意の タスク 処理時間 対象とする問題 任意の (n) 個のタスク 0 0 • m台の同一性能のプロセッサ • 処理割り込みなし 任意の 先行制約と 通信時間 2 1 1 計算複雑度 :Strong NP-Hard 4 6 6 2 3 実用的なアルゴリズムの開発 3 3 7 6 7 5 • 最適化アルゴリズム • DF/IHS, PDF/IHS • ヒューリスティックアルゴリズム • CP/MISF, DT/CP/MISF, • ETF/CP, CP/ETF, 他 1 8 0 クリティカルパス 9 タスクグラフ Software for Parallel and Distributed Supercomputing
マルチプロセッサスケジューリングアルゴリズムの性能評価手法マルチプロセッサスケジューリングアルゴリズムの性能評価手法 • 従来の性能評価 • 各研究者が個別に生成した評価用問題を使用 • 評価用問題 (タスクグラフ集合) は公開されていない • 同一基準での評価・比較が困難 • 客観的な評価のために • 偏りのない評価用問題 • 従来の発表論文等で用いられた生成法を考慮 • 評価用問題・評価手法をホームページにて公開 • 評価手法及び評価結果の客観的な検証のために • 最適解や評価結果のホームページでの公表 Software for Parallel and Distributed Supercomputing
標準タスクグラフセットのWeb上での公開 http://www.kasahara.elec.waseda.ac.jp/schedule/ ランダム タスクグラフ 実アプリケーション タスクグラフ (Robot control) 最適スケジュール (Robot control) Software for Parallel and Distributed Supercomputing
標準タスクグラフセットを用いた性能評価 10分間での最適解求解率 [%] (タスク数 50~1900 のタスクグラフ 660 例) 10分間での最適解求解数 (ランダムタスクグラフ 660 例) Software for Parallel and Distributed Supercomputing
並列プログラミング言語Orgel 豊橋技術科学大学 並列処理研究室 目的:非数値並列処理 • 並列単位や通信はユーザが明示 • 宣言的記述やモデルの抽象化で負担軽減 プログラミングパラダイム • ストリームで接続されたエージェントのネットワーク 開発ソフトウェア • 言語処理系 • デバッガ Software for Parallel and Distributed Supercomputing
main b b ctrl left[0] ri lo ro li w[0] w[1] w[15] right[0] 言語の特徴 エージェント: 並列実行単位 ストリーム: エージェント間のメッセージ通信路 エージェントとストリームの接続構造を宣言的に記述 • 手続き的な接続記述によるタイミングバグを排除 • コンパイル時に通信やスケジューリングを最適化可能 実行時に接続構造を自動生成 接続宣言 workerw[16]; data left[15], right[15]; broadcast b; connect w[i].ro ==> right[I] ==> w[I+1].li; connect w[i].lo ==> left[I] ==> w[I-1].ri; connect self ==> b ==> w[].ctrl; Software for Parallel and Distributed Supercomputing
言語処理系 • 逐次/共有メモリ並列版 • Pthreadsによる並行並列実行 • 分散メモリ並列版 • PVMによりシステムがメッセージをノード間転送 ランタイム ライブラリ Orgel プログラム C プログラム 実行 ファイル Orgel コンパイラ C コンパイラ Software for Parallel and Distributed Supercomputing
13-queen pia*3 共有メモリ版*1 10.66 (14PE) 7.33 (16PE) 分散メモリ版*2 12.25 (14PE) 2.03 (6PE) 性能評価 *1 SPARCcenter(Solaris2.6)上 *2 PC(FreeBSD) +100Mbpsスイッチングハブ *3 タンパク質のマルチプルアラインメント 並列実行による速度向上率 piaのエージェントネットワーク構造 repeater s[0] s[1] i s[2] s[3] s[0] s[1] r s[2] s[3] i o i o i o i o matcher m[0] m[1] m[2] m[3] Software for Parallel and Distributed Supercomputing
並列デバッギング機構 巻き戻し機構の提案・実装 • プログラムの実行を過去の状態に巻き戻せる • 非決定的な並列プログラムを効率よくデバッグ エージェントA エージェントB m1送信 m1 巻き戻し m1受信 m2送信 m2 m2受信 m3送信 m3 m3受信 実行時のメッセージ履歴保存→巻き戻し後の再実行に利用 →非決定的なメッセージ順を再現 Software for Parallel and Distributed Supercomputing
広域計算機ネットワーク上での分散処理のためのアルゴリズム広域計算機ネットワーク上での分散処理のためのアルゴリズム 九州大学 広島大学 A Visualization System for Parallelizing Compilers
グループの目的 • 広域計算機ネットワークを利用して計算困難な問題を現実的に解決するためのアルゴリズムを設計する。(A)組合せ最適化問題の 並列/分散型汎用求解システムの構築(B)現実を直視した分散アルゴリズムの開発(C)他のグループへのアルゴリズムの供給 Software for Parallel and Distributed Supercomputing
(A)組合せ最適化問題の 並列/分散型汎用求解システムの構築(A)組合せ最適化問題の 並列/分散型汎用求解システムの構築 • 逐次局所探索ヒューリスティックスの分散化とその効果の検討 • 多点開始探索 • 探索内並列化 • PVMを用いた分散型局所探索システムの検討 • 適切なシステムコンフィグレーション • 負荷分散システム • バックアップシステム • マルチヒューリスティックシステムの検討 • E.g., 局所探索+分枝限定 Software for Parallel and Distributed Supercomputing
(B)現実を直視した分散アルゴリズムの開発(B)現実を直視した分散アルゴリズムの開発 • 現実:大きな通信遅延 度重なる故障 • k-コータリを用いたk-相互排除アルゴリズムの開発 • 良いアルゴリズム = 良い k-コータリ= メッセージ複雑度が低い+可用度が高い • 自己安定アルゴリズムの開発 • どのような有限回の一時故障に耐えるシステム=> 初期化の必要性がない Software for Parallel and Distributed Supercomputing
(C)他のグループへのアルゴリズムの供給 • 並列化コンパイラのためのマルチプロセッサスケジューリングアルゴリズムの開発 • リストスケジューリングの評価 • GRASP - リストスケジューリングの改良 • 広域ネットワーク上の共有資源配置アルゴリズムの開発 • 資源のコピー量と資源までのアクセス時間の間のトレードオフ Software for Parallel and Distributed Supercomputing
コンパイラによる制御が可能な分散共有メモリシステムコンパイラによる制御が可能な分散共有メモリシステム 京都大学 東京大学 九州大学 A Visualization System for Parallelizing Compilers
共有メモリ型並列C言語インタフェース 分散共有メモリ 変換 コンパイル 目的:並列化、最適化技術のターゲット としての分散共有メモリシステム 自動並列化 自動最適化 分散メモリ型並列計算機 クラスタ 多階層クラスタ Software for Parallel and Distributed Supercomputing
プロセッサ次元 ローカルメモリ次元 キャッシュ 動的 静的 共有記憶 自動並列化コンパイラに適した分散共有メモリシステムのインタフェース • 2次元共有記憶空間:データ配置の最適化 共有記憶空間 • キャッシュ機構の静的制御:管理コストの低減 • コンパイル時に一貫性を解決 … Software for Parallel and Distributed Supercomputing
プログラムのデータ依存解析可能性に応じた高速化技術の選択プログラムのデータ依存解析可能性に応じた高速化技術の選択 • コンパイル時に依存解析可能: → コンパイラが静的キャッシュ制御命令挿入 • 実行時に依存解析可能なプログラム: → コンパイラが実行時最適化ルーチン挿入 → 最適化ルーチンが静的キャッシュを制御 • 依存解析できないプログラム: → 動的キャッシュ利用 Software for Parallel and Distributed Supercomputing
read write barrier 0.4 0.5 1.5 (msec.) PCクラスタでの性能評価 Pentium 166MHz(128M)× 8 with 100Mbps Switching Hub • 環境: • 基本性能: • 並列プログラム: Software for Parallel and Distributed Supercomputing
広域分散計算のための実行時システム 早稲田大学 村岡研究室 Software for Parallel and Distributed Supercomputing
実行時システム研究グループ • Java スレッドの非同期移送 (‘97~) • コンパイル時の静的負荷分散で吸収しきれない偏りを、動的負荷分散で解決。 • 広域分散処理向けの 実行時システム (’99~) • ストリーム計算 : 通信遅延が不可避な環境に適応。 • 分散並列化コンパイラと 実行時システム (‘96~) • Fortran プログラムの fork-join 型並列処理。 • Narafrase (奈良女,奈良先端,和歌山) との、中間表現の相互変換。(by 奈良女子大学)( Software for Parallel and Distributed Supercomputing
Javaスレッドの非同期移送 • 実行コンテクスト(activation record)の移送 • 異機種間で移送。 • OS,プロセッサを問わない。 • 非同期移送 • 利用者や他のスレッド、またスケジューラなどの外部プログラムから、任意のタイミングで移送を指示できる。負荷分散のために必要。 • スレッド自身による同期移送(e.g. goTo(目的地))も可能。 • cf. JavaGo(米澤研), Aglets(IBM), Plangent(東芝) Software for Parallel and Distributed Supercomputing
可視化 & 操作用 GUI 負荷分散 アルゴリズム RyORB - Java用 ORB Java スレッド 移送 MOBA Place on Java仮想マシン 動的負荷分散システム • 分散オブジェクトシステムを利用した外部プログラムインタフェース(EPI)をPlaceに用意。GUI、スケジューラを実装。 • Supercomputing ’98 にて展示。 Software for Parallel and Distributed Supercomputing
ストリーム計算 :広域分散処理向けの実行モデル • 通信遅延を隠蔽できる実行モデル。 • 遅延を避けがたい広域分散処理に必要。 • 光速はたかだか 300km/msec。光ファイバ中ではさらに… • ストリーム計算 • 通信遅延がスループットに(悪)影響を与えない。 • cf. RPC (NetSolve, Ninf) • 課題 • 計算のルーティング • プログラミングモデル • データ並列性のサポート Software for Parallel and Distributed Supercomputing
WWWベースの科学・技術問題解決環境 京都大学 島崎研究室 Software for Parallel and Distributed Supercomputing
Webベース科学・技術計算問題解決環境 • 問題解決環境は応用分野の研究者・技術者を対象とし、計算機の詳細な知識なしに、計算機による解析が可能となることを目標とするシステム • 有限要素法による電磁界解析を対象分野としている • ユーザーインターフェースとしてWWWを採用 • 計算結果の可視化:プロット図面またはVRMLによる画面 • 有限要素法のメッシュ生成:デローニー法(2次元)利用 • 連立一次方程式の求解に並列化ICCG法 Software for Parallel and Distributed Supercomputing
KUPSEシステムへの入り口 • ユーザー名の入力 • ゲストユーザーはデモ画面へ Software for Parallel and Distributed Supercomputing
ユーザーディレクトリへの移動 メッシュ生成法 の選択 Software for Parallel and Distributed Supercomputing
ユーザー認証 Apacheのユーザー認証機能を利用 Software for Parallel and Distributed Supercomputing
インタラクティブな解析を選択した場合(デモ)インタラクティブな解析を選択した場合(デモ) Software for Parallel and Distributed Supercomputing
メッシュ図の表示(gifファイルによる) Software for Parallel and Distributed Supercomputing
部分領域内の節点数の変更 Software for Parallel and Distributed Supercomputing
メッシュ修正ジョブの投入画面 Software for Parallel and Distributed Supercomputing
修正後のメッシュ図 Software for Parallel and Distributed Supercomputing
ジョブキューと使用プロセッサ数の指定 Software for Parallel and Distributed Supercomputing
解析ジョブの状況 Software for Parallel and Distributed Supercomputing
結果の表示(gif ファイルによる) ベクトルポテンシャル図 Software for Parallel and Distributed Supercomputing
結果の表示(VRML ファイルによる) ベクトルポテンシャル図結果の表示(VRML ファイルによる) ベクトルポテンシャル図 Software for Parallel and Distributed Supercomputing
結果の表示(VRML ファイルによる) ベクトルポテンシャル図結果の表示(VRML ファイルによる) ベクトルポテンシャル図 Software for Parallel and Distributed Supercomputing