Download presentation
Presentation is loading. Please wait.
1
第3回 並列計算機のアーキテクチャと 並列処理の実際
情報処理系論 第3回 並列計算機のアーキテクチャと 並列処理の実際
2
今日の内容 「並列処理してみなぁい?いいねぇ!」 並列計算機のアーキテクチャ 並列処理してみなぁい?いいねぇ!
目的、分類 UMA、NUMA、NORMA 並列処理してみなぁい?いいねぇ! どんなときに? マルチプロセッサの話 PVM(Parallel Virtual Machine)のこと
3
並列計算機 プロセッサがいくつもあるコンピュータ それらを同時に使って処理するのが並列処理
4
(準備)プロセッサの話 コンピュータの頭脳、計算するところ クロックと呼ばれる周期で仕事をする 構成要素
Intel Pentium, Sun ○○SPARC, DEC Alpha クロックと呼ばれる周期で仕事をする 構成要素 命令デコーダ、算術演算ユニット、バスインタフェースユニット、レジスタ、分岐予測テーブルなどなど
5
(準備)クロックの話 仕事 仕事 コンピュータの中で過ぎていく時間の単位 人間:○○秒 ⇔ コンピュータ:○○クロック
人間:○○秒 ⇔ コンピュータ:○○クロック ○.○○クロック(小数点)っていうのはなし。 クロックは同期信号。 一定間隔 一定間隔 一定間隔 一定間隔 一定間隔 一定間隔 一定間隔 一定間隔 仕事 仕事 4クロックかかる仕事 クロックに同期してない
6
(準備)スケジューリング OSは1つのCPUを使いまわしする。 同時に処理できるプロセスの数はCPUの数と同じ!
プロセスA, B, Cがあるとき 時分割処理 同時に処理できるプロセスの数はCPUの数と同じ! 55クロック OSの仕事 OSの仕事 OSの仕事 プロセスA のための仕事 プロセスB のための仕事 プロセスC のための仕事 プロセスA のための仕事
7
並列処理って何ですか。 複数のプロセッサを使って、複数の処理を同時に行なうこと。
複数のプロセッサを持つコンピュータを並列コンピュータと呼ぶ。(マルチプロセッサコンピュータはメモリ共有型の並列コンピュータを指す) 27クロック OSの仕事 OSの仕事 プロセスA のための仕事 プロセスC のための仕事 他のプロセスのための仕事 プロセスB のための仕事 プロセスA のための仕事 他のプロセスのための仕事 OSの仕事 OSの仕事
8
並列コンピュータの分類 プロセッサの数による分類 メモリ共有形式による分類(詳しくは後で) 8個以下 :最近のPCでも実現できる
64個以下 :一般的なサーバマシン 128個以上 :超並列(Massively Parallel) メモリ共有形式による分類(詳しくは後で) UMA :Uniform Memory Access NUMA :Non-Uniform Memory Access Hybrid NUMA
9
並列コンピュータとプロセッサ数 Origin2000 Cray SV1
10
プロセッサを増やす目的 高速化 高信頼性 高効率化 複数のプロセッサを同時に使うことにより、ジョブを高速に処理できる。
複数のプロセッサを持つことによって、幾つかが逝っちゃってもシステムは継続動作できる。 高効率化 複数のプロセッサが入出力デバイスを共有することにより、各デバイスの遊休時間を減らす。
11
メモリの共有形式 UMA NUMA Hybrid UMA NORMA 全CPUが一つのメモリを共有している。
上二つの混合型 NORMA メッセージングにより各CPUがお互いのメモリを共有(物理的な共有メモリは存在しない。) 次のページに図があるなり。
12
UMA NUMA メモリ CPU バス メモリ CPU CPU Hybrid NORMA LAN CPU CPU CPU CPU CPU
クロスバー/ スイッチ メモリ CPU CPU CPU CPU CPU Hybrid NORMA CPU CPU CPU CPU CPU CPU メモリ メモリ CPU CPU CPU CPU LAN CPU CPU CPU CPU CPU CPU CPU メモリ メモリ CPU CPU CPU CPU
13
1台のコンピュータを使った 並列処理 UMA OSが一つのバスと複数のプロセッサを管理 プロセッサの使い方による分類
例えばデュアルPentiumIIIマシンとか OSが一つのバスと複数のプロセッサを管理 Windows NT, FreeBSD, Linuix, etc. プロセッサの使い方による分類 SMP :Symmetric Multi Processor ASMP :Asymmetric Multi Processor
14
SMPとASMP SMPとASMPの違い(銀行窓口の例) 窓口⇒CPU、客⇒処理と考えてみよう。 ASMP(非対称) SMP(対称)
預貯金窓口 公共料金窓口 なんでも窓口 なんでも窓口 列 列 列 窓口が目的別にわかれている 客の目的別に列を作る 窓口は1種類 客はどちらか空いた方の窓口へ。
15
複数台のコンピュータを使った 並列処理 NORMA ミドルウエアを使って複数のノードを管理 何を並列にする?
ccz01 ~ ccz04とか、zz000 ~ zz149(150台!) ミドルウエアを使って複数のノードを管理 PVM(Parallel Virtual Machine) 何を並列にする? 制御並列 :異なる処理を各プロセッサで行なう 例: なんだろう? データ並列 :異なるデータで同じ処理を行なう] 例: 並列データ検索、レイトレーシング
16
並列化と性能向上のカンケイ プロセッサを増やしても性能は比例しない 並列化できない部分がある データ転送やノード間の同期が必要
共有している入出力デバイスの限界(UMAの時) 並列化効率 オーバーヘッド ノード数
17
並列処理してみなぁい? いいねぇ~! 「SFC中の端末を使って並列処理してみる。」 まずは実際にやってみよー! PVMを使う 目標
把握済み端末 zz??? 150台 ccz?? 4台 otwo?? 50台 ccsp-h?? 32ノード
18
PVMの使い方(超概要) ccz00~ccz03を使って並列処理するとき
xpvmなどで各ノードの状態を管理 ccz00 ccz01 ccz02 ccz03 ログイン中
19
PVM上でプログラムを動かす 環境変数の設定 PVMデーモンの起動 プログラムの起動 PVM_ROOT ⇒ PVMパッケージのパス
詳細は配布資料でね! 環境変数の設定 PVM_ROOT ⇒ PVMパッケージのパス PVM_ARCH ⇒ ホストのアーキテクチャ (SUN4SOL2とか) PVMデーモンの起動 $PVM_ROOT/bin/pvmd [hosts_file] hosts_fileには、ログインホスト以外でデーモンを起動したいホスト名を並べておく。 プログラムの起動 PVMライブラリを使って記述されたプログラムを直接実行する。
20
課題 並列処理させると効果的なプログラムを考えてみよう! 円周率を計算するプログラムを実行して所要時間を計測してみよう!
pai_master ← 4:プロセス数 プロセス数を10、20、30、40、50~100とどんどん増やして、所要時間をグラフにしてみよう! これでいい?おさむさん。
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.