クラスタの構成技術と クラスタによる並列処理

Slides:



Advertisements
Similar presentations
Windows HPC 講習会 2009/9/25 Windows HPC コンソーシアム 1 - MS-MPIプログラミング演習 - 同志社大学生命医科学部 廣安 知之 同志社大学工学研究科 中尾 昌広.
Advertisements

HBSP モデル上での 行列積を求めるアルゴリ ム 情報論理工学 吉岡健太.
プロセスの生成とコマンドの実行 プロセスの生成とコマンドの実行 プロセス生成のシステムコール プロセス生成のシステムコール プロセス生成のプログラム例 プロセス生成のプログラム例 プログラム実行のシステムコール プログラム実行のシステムコール 子プロセスの終了を待つシステムコール 子プロセスの終了を待つシステムコール.
11 January 17, Sample answer of the last week's report. (1) 2 #include #include "mpi.h" int main(int argc, char *argv[]) { int i,r, myid, procs,*result;
MPIを用いたグラフの並列計算 情報論理工学研究室 藤本 涼一.
グローバルコンピューティング環境における遺伝的アルゴリズムの検討
第3回 並列計算機のアーキテクチャと 並列処理の実際
連続系アルゴリズム演習 第2回 OpenMPによる課題.
キャッシュ付PRAM上の 並列クィックソートと 並列マージソート
Chapter11-4(前半) 加藤健.
榮樂 英樹 LilyVM と仮想化技術 榮樂 英樹
Parallel Programming in MPI part 2
研究集会 「超大規模行列の数理的諸問題とその高速解法」 2007 年 3 月 7 日 完全パイプライン化シフト QR 法による 実対称三重対角行列の 固有値並列計算 宮田 考史  山本 有作  張 紹良   名古屋大学 大学院工学研究科 計算理工学専攻.
クラスタコンピューティングの 並列環境と性能
複数のコンピュータ(ノード)を一群にまとめて、信頼性や処理性能の向上を実現するシステム
報告 (2006/9/6) 高橋 慧.
同志社大学 知識工学科 知的システムデザイン研究室 廣安 知之
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
分散遺伝的アルゴリズムによる各種クラスタのベンチマーク
並列処理のためのプログラム作成.
多数の遊休PC上での 分散ゲーム木探索 導入 ゲーム木探索 ⇒遊休PCを利用して高速化 例)コンピュータ将棋における次手の計算
第一回 Java言語 04A2029           古賀慎也.
TCPソケットプログラミング ソケットプログラミング TCP-echoのデータ通信手順
アルゴリズムとデータ構造 補足資料6-3 「サンプルプログラムcat3.c」
OSI7層の各層の1)名称 2)機能の簡単な説明 3)各階層に関連のあ る機器、規格などを5つ以上書いて下さい。
ネットワーク性能に合わせた 分散遺伝的アルゴリズムにおける 最適な移住についての検討
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
MPIによるプログラミング概要(その1) 【C言語編】
Flyingware : バイトコード変換による 安全なエージェントの実行
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
京都大学大学院医学研究科 画像応用治療学・放射線腫瘍学 石原 佳知
MPIによるwavからmp3圧縮の検証 情報論理工学研究室 04‐1‐47‐200 木村 惇一.
P2P方式によるオンラインゲームの研究、開発
Parallel Programming in MPI part 1
MPIを用いた並列計算 情報論理工学研究室 清水周.
Parallel Programming in MPI part 3
プロセス間データ通信  齋藤グループ 小林 直樹
MPIを用いた最適な分散処理 情報論理工学研究室 角 仁志
Parallel Programming in MPI part 2
動的依存グラフの3-gramを用いた 実行トレースの比較手法
表紙.
近況: Phoenixモデル上の データ並列プログラム
Jh NAHI 横田 理央 (東京工業大学) Hierarchical low-rank approximation methods on distributed memory and GPUs 背景  H行列、H2行列、HSS行列などの階層的低ランク近似法はO(N2)の要素を持つ密行列をO(N)の要素を持つ行列に圧縮することができる。圧縮された行列を用いることで、行列積、LU分解、固有値計算をO(NlogN)で行うことができるため、従来密行列の解法が用いられてきた分野では階層的低ランク近似法
演習1の解答例の解説 2004年10月21日 海谷 治彦.
通信機構合わせた最適化をおこなう並列化ンパイラ
Parallel Programming in MPI part 1
デジタル画像とC言語.
phononの分散関係の計算 -カイラルナノチューブ(18,3)-
MPIを使った加算  齋藤グループ 小林直樹
演習1の解答例の解説 2006年11月8日 海谷 治彦.
目的:高速QR分解ルーチンのGPUクラスタ実装
B演習(言語処理系演習)第2回 田浦.
Virtualizing a Multiprocessor Machine on a Network of Computers
Peer-to-Peerシステムにおける動的な木構造の生成による検索の高速化
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
「マイグレーションを支援する分散集合オブジェクト」
Parallel Programming in MPI part 2
BSPモデルを用いた 並列計算の有用性の検証
理工学部情報学科 情報論理工学研究室 延山 周平
ネットワーク・プログラミング デバイスドライバと環境変数.
プログラム分散化のための アスペクト指向言語
MPIを用いた並列処理計算 情報論理工学研究室 金久 英之
知識ベースの試作計画 ●●●研究所 ●●●技術部 稲本□□ 1997年1月.
BSPモデルを用いた 最小スパニング木 情報論理工学研究室 02-1-47-134 小林洋亮.
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
MPIを用いた 並列処理 情報論理工学研究室 06‐1‐037‐0246 杉所 拓也.
並列・分散ソフトウェア.
並列・分散ソフトウェア(2).
1.2 言語処理の諸観点 (1)言語処理の利用分野
Presentation transcript:

クラスタの構成技術と クラスタによる並列処理 並列処理 演習 クラスタの構成技術と クラスタによる並列処理

3. クラスタによる並列処理

アプリケーション クラスタ向きのアプリケーション 一般にプロセッサ内での処理量が多く通信量が少なければ並列処理の効果は高い 特にクラスタではこの傾向が顕著 驚異的並列計算(embarrassingly parallel) 同時に実行できる完全な独立部分に分解できる問題 スーパーリニアスピードアップ n台でn倍以上の速度向上 データサイズ縮小によるメモリ・キャッシュの効果

アプリケーション(2) 画像処理 ボリュームレンダリング データベース検索 たんぱく質分析 データマイニング

メッセージ通信ライブラリ 並列アプリケーションで通信を行うソフトウェア かつては各社が独自に提供 可搬性のあるプログラムを書きたい ネットワークに依存しない通信がしたい いちいちソケットを使って書くのは大変 ネットワークプロトコルがTCP/IPとは限らない かつては各社が独自に提供 IBM: MPL 可搬性のあるプログラムを書きたい 標準規格が欲しい MPI Forum: MPI

PVM Parallel Virtual Machine 1989年 オークリッジ国立研究所 問題を別々のプログラムに分解して実行 Heterogeneousな環境による並列処理の研究から誕生 データ表現の自動変換、動的プロセス生成、マシン自動選択 Heterogeneous環境での並列実行も可能 動的なプロセス生成を提供 固有の並列計算機に特化した高速化はできない

PVMの動作モデル デーモンが存在するモデルを図解する

MPI Message Passing Interface 1992年 MPI Forum 仕様のみ策定。実装は各ベンダーに任せる 並列計算機ベンダーと学術組織 仕様のみ策定。実装は各ベンダーに任せる ベンダーがそれぞれの計算機固有の方式を用いて実装 MPICH, LAM 1997年 MPI-2 動的プロセス生成、並列I/Oなどの仕様を追加

MPIの動作モデル

MPIの実装 MPICH LAM CHIMP アルゴンヌ国立研究所・ミシシッピ州立大 現在の主流 オハイオ スーパーコンピューティングセンター CHIMP エジンバラ並列計算センター

MPIプログラミング SPMD (Single Program Multiple Data)モデル 基本的には6つの関数で書ける MPI_Init() MPI_Comm_size() MPI_Comm_rank() MPI_Send() MPI_Recv() MPI_Finalize()

サンプルMPIプログラム #include <mpi.h> int main(int argc, char *argv[]) { int rank; MPI_Status status; char buf[256]; char data[] = "Hello"; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); if (rank == 0) { MPI_Send(data, 5, MPI_CHAR, 1, 0, MPI_COMM_WORLD); } else if (rank == 1) { MPI_Recv(buf, 5, MPI_CHAR, 0, 0, MPI_COMM_WORLD, &status); printf("%s\n", buf); } MPI_Finalize();

通信のモデル 1対1通信 1対n通信 いろいろな通信パターンがある ブロードキャスト、マルチキャスト レデュース ギャザ・スキャタ

1対1通信 MPI_Send(), MPI_Recv()      P0 P1

ブロードキャスト あるプロセスから他の全てのプロセスへデータをコピー MPI_Bcast()

リデュース すべてのプロセスから値を集約 MPI_Reduce()

スキャタ・ギャザ データの要素を各プロセスに分配・収集 MPI_Scatter(), MPI_Gather()

バリア 処理のある部分で全てのプロセスが同期 MPI_Barrier()

高速化技法 実行速度向上の障害 通信 同期 計算量の不均衡 負荷分散 静的負荷分散 動的負荷分散

静的負荷分散 問題の性質を見極めて、ノードへ割り当てる仕事量を決める 性質の分かっている問題にしか使えない うまく配分するのは難しい

動的負荷分散 アプリケーションによるアプローチ システムによるアプローチ マスタ・スレーブ型アプリケーション プロセスマイグレーション ワークプール システムによるアプローチ プロセスマイグレーション 負荷の軽いノードへプロセスを移動

プロセスマイグレーション