Rを用いたブートストラップ法の 大規模並列計算

Slides:



Advertisements
Similar presentations
G ゼミ 2010/5/14 渡辺健人. パフォーマンスの測定 CUDA Visual Profiler CUDA の SDK に標準でついているパフォーマン ス測定用のツール 使い方: exe ファイルのパスと作業ディレクトリ指定して実 行するだけ 注意点 : GPU のコード実行後にプログラム終了前に,
Advertisements

専修大学情報科学センターのパソコンを 使ったグリッドコンピューティング ― SPACE計画 - 森正夫 1 、水崎高浩 1 、内藤豊昭 2 、中村友保 2 及び 専修大学情報科学センター 及び 専修大学情報科学センター 1 専修大学 法学部/自然科学研究所 1 専修大学 法学部/自然科学研究所 2 専修大学.
MPIを用いたグラフの並列計算 情報論理工学研究室 藤本 涼一.
Windows HPC Server を使ってみる
第3回 並列計算機のアーキテクチャと 並列処理の実際
ATLAS実験データ解析に向けた、長距離広帯域ネットワークにおけるデータ転送
CPUとGPUの 性能比較 -行列計算およびN体問題を用いて-
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
情報検索概説II 第8回 パソコン組み立てと記憶装置 1999/11/25.
CPUについて HN:セシル.
クラスタの構成技術と クラスタによる並列処理
最新ファイルの提供を保証する代理FTPサーバの開発
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
ラベル付き区間グラフを列挙するBDDとその応用
北海道大学 理学院 宇宙理学専攻 惑星物理学研究室 M 2 齊藤 大晶
超並列計算研究会 PCクラスタにおける ベンチマークと並列ツールの紹介 廣安 知之 三木 光範 大向 一輝 吉田 純一.
全体ミーティング (4/25) 村田雅之.
研究集会 「超大規模行列の数理的諸問題とその高速解法」 2007 年 3 月 7 日 完全パイプライン化シフト QR 法による 実対称三重対角行列の 固有値並列計算 宮田 考史  山本 有作  張 紹良   名古屋大学 大学院工学研究科 計算理工学専攻.
PCクラスタにおける2個体分散遺伝的アルゴリズムの高速化
DNASシステム上のアプリケーション起動シーケンスのための基盤であるdsh部分の性能評価
対角マトリックスを用いた3次元剛塑性有限要素法の並列計算 対角マトリックスを用いた剛塑性有限要素法
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
分散遺伝的アルゴリズムによる各種クラスタのベンチマーク
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
各種PC クラスタの性能評価 同志社大学 工学部 廣安 知之 三木 光範 谷村 勇輔.
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
ネストした仮想化を用いた VMの安全な帯域外リモート管理
サーバ構成と運用 ここから私林がサーバ構成と運用について話します.
スパコンとJLDG HEPの計算環境 HEPnet-J
Status and Plans for the Tier 1 Tokyo (Japan)
正方行列向け特異値分解の CUDAによる高速化
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
京都大学大学院医学研究科 画像応用治療学・放射線腫瘍学 石原 佳知
アクセラレータを用いた 大規模へテロ環境における Linpack
文献名 “Performance Tuning of a CFD Code on the Earth Simulator”
大阪市立大学 学術情報総合センター 大西克実
応用数理工学特論 第6回 計算理工学専攻 張研究室 山本有作.
杉山耕一朗(北大理) 2009/02/06 epnetfan
コンピュータを知る 1E16M009-1 梅津たくみ 1E16M017-8 小沢あきら 1E16M035-0 柴田かいと
MPIとOpenMPを用いた Nクイーン問題の並列化
VM専用仮想メモリとの連携による VMマイグレーションの高速化
リモートホストの異常を検知するための GPUとの直接通信機構
Jh NAHI 横田 理央 (東京工業大学) Hierarchical low-rank approximation methods on distributed memory and GPUs 背景  H行列、H2行列、HSS行列などの階層的低ランク近似法はO(N2)の要素を持つ密行列をO(N)の要素を持つ行列に圧縮することができる。圧縮された行列を用いることで、行列積、LU分解、固有値計算をO(NlogN)で行うことができるため、従来密行列の解法が用いられてきた分野では階層的低ランク近似法
九州大学情報基盤研究開発センター長 青柳 睦
実行時情報に基づく OSカーネルのコンフィグ最小化
仮想メモリを用いた VMマイグレーションの高速化
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
HPC基盤における大量データ転送のためのデータ転送ツールの評価
進化的計算手法の並列計算機への実装 三木 光範
AdaPrec (提案手法) の初回の通信精度選択
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
スーパーコンピュータ「京」 理化学研究所 計算科学研究センター
Intel SGXを用いた仮想マシンの 安全な監視機構
複数ホストにまたがって動作する仮想マシンの障害対策
VMMのソフトウェア若化を考慮した クラスタ性能の比較
目的:高速QR分解ルーチンのGPUクラスタ実装
同志社大学工学研究科 知的システムデザイン研究室 修士2年 中尾昌広
コンピュータの仕組み 〜ハードウェア〜 1E15M009-3 伊藤佳樹 1E15M035-2 柴田将馬 1E15M061-1 花岡沙紀
InTriggerクラスタ環境の構築 i-explosion 支援班 クラスタ環境の概要 研究に使える「共有資源」を提供
Peer-to-Peerシステムにおける動的な木構造の生成による検索の高速化
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
Azure 上での 大規模 CAE ベンチマークをご支援します
社会の情報インフラストラクチャとして、高性能コンピュータおよびネットワークの重要性はますます増大しています。本研究室では、コンピュータおよびネットワークの高速化を狙いとする並列・分散情報処理の科学と技術に関する研究に取り組んでいます。効率のよいシステムの実現を目指して、下記の項目を追求しています。 ◇コンピュータアーキテクチャ.
卒業研究 JCSPを用いたプログラム開発  池部理奈.
BSPモデルを用いた 並列計算の有用性の検証
MPIを用いた並列処理計算 情報論理工学研究室 金久 英之
強制パススルー機構を用いた VMの安全な帯域外リモート管理
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
分散メモリ型並列計算機上での行列演算の並列化
Presentation transcript:

Rを用いたブートストラップ法の 大規模並列計算 東京工業大学・情報理工 下平英寿 2008/09/09 @ 統計連合大会

概要 東工大のスパコン TSUBAME の紹介 Rの並列化ライブラリ snow の紹介 大規模並列計算の体験談: pvclust, scaleboot

東工大のスパコン TSUBAME

TSUBAME @ Tokyo Tech TSUBAME: 10000 cpu くらい らしいですが 混雑しています TSUBASA: さいきん,GCOE(計算世界観)が700cpu くらい調達しました

Sun Fire X4600 Enterprise-Class Data Center Compute Engine 大規模分散並列型演算サーバ 高性能密結合分散並列型演算サーバ (合計: 639台) CPU : 8ソケット800 シリーズAMD Opteron 2.4GHz メモリ : 32GB (32x DIMM スロット) OS : SuSE Enterprise Linux 9 SP3  IB card : Voltaire HCA 400Ex-D single port 4X x 2 (latency/ 3.5μs) メモリ共有型演算サーバ群 (合計: 16台) CPU : 8ソケット800 シリーズAMD Opteron 2.6GHz メモリ : 64GB (32x DIMM スロット) OS : SuSE Enterprise Linux 9 SP3 合算ピーク性能 : 50.4 Tera Flops 合算メモリ容量 : 21.4 Tera Bytes Full performance Opteron processor modules (8 -total) Dual-Core Available CPU Module 6 PCI-Express slots - 4 – x8-lane slots - 2 – x4-lane slots Redundant, hot- plug fans 2 PCI-X slots (133MHz/64-bit) 24” deep

東京工業大学 学術国際情報センター TSUBAME Grid Cluster 大規模分散並列型演算サーバ 高性能密結合分散並列型演算サーバ メモリ共有型演算サーバ群 Sun Fire X4600 655nodes 16CPU/node 10480CPU Memory: 21.4TB type nodes CPU clock MEM/node A 639 2.4GHz 32GB B 16 2.6GHz 64GB ClearSpeed 360枚 ・・・655nodes InfiniBand Network Voltaire ISR 9288 ×8 100ギガビット級ネットワーク装置 200bps (片方向) 24Gbps (片方向) SuperTitanet ・・・ 42台 500GB 48disks 500GB 48disks 500GB 48disks ストレッジサーバA Sun Thumper (Code Name) 物理容量 1PB ストレッジサーバB NEC iStorage S1800AT 物理容量 96TB RAID6 ペタバイト級ストレッジサーバ

TSUBASA GCOE(計算世界観) Sun Blade X6250 ×90ノード 以下ノードあたり * Quad core Xeon E5440 2.83GHz × 2 (8コア) * メモリ DDR2 8GB (ただし,うち25ノードは16GB) * HDD 80GB SATA * InfiniBand (10GBps) * SUSE Enterprise Linux 9

ふつうにログインして使います

Rの並列化ライブラリ snow

Rとは? データ解析を主目的に開発された,オープンソー スのプラットフォーム C-likeなプログラミングのインタープリターで,いち おうオブジェクト指向 2000年ころからメジャー化したが,前身はAT&Tの ベル研で1984年ころ開発されたS CRANに登録された「公式ライブラリ」だけで1008 個(2007/03/05) すごい勢いで増殖! 特に,バイオインフォマティクスとか機械学習など の最新手法は,Rで実装されることが多い.(バイ オスタットの定型業務は昔からSAS)

Rにおける並列化 CRANのsnowライブラリを使うのが簡単. snowは内部でRmpiライブラリを利用します. OSでlambootをあらかじめ実行しておきます.

Using snow library: parLapply y[[1]] <- myfunc(x[[1]]) y[[2]] <- myfunc(x[[2]]) … y[[1000]] <- myfunc(x[[1000]]) ### multiple CPUs ### ## cluster initialization library(snow) cl <- makeCluster(100) ## computation y <- parLapply(cl, x, myfunc) ### single CPU ### ## computation y <- lapply(x, myfunc) 1000 iterations @ 1 cpu 10 iterations @ 100 cpus

Simple Example @ Shimodaira-lab

pvclust @ Shimodaira-lab

ブートストラップ リサンプリング法 複製データ n’=5 2 5 1 2 4 データ n=5 重複をゆるして 要素を選ぶ 1 2 3 4 5 ブートストラップ リサンプリング法 複製データ n’=5 2 5 1 2 4 データ n=5 重複をゆるして 要素を選ぶ 1 2 3 4 5 4 3 3 5 1 10,000回繰り返す 1 5 2 5 4 30年くらい前に提案され,広く利用されている.

pvclust (鈴木了太 くんの修論) 並列版のparPvclust関数 シングルCPU版 pvclust関数 ブートストラップ法では乱数で数値をかえて10000回くらいの繰り返し計算を行う.そこでR標準の繰り返し関数「lapply」をsnowで実装されてる「parLapply」におきかえている

snowにおける並列化と問題点 データx[1],...,x[10000]に関数fをクラスタclで計算する とき,parLapply(cl,x,f)とやる.R標準ではlapply(x,f)と やることを単純に並列化する. length(cl)=10なら,ベクトルxを10分割してノードに割 り振るだけ.そしてparLapplyは仕事をclusterApplyに 投げる. 粒度がそろわないときや,スレーブ能力にバラツキが あるとき,効率が悪い. 計算をある程度まとまった固まりにする(粒度を調 整)すると,効率がよくなる. 分枝限定法のような高度な並列化はできない.デ バッグも困難.snowにかわるライブラリの必要性.

snowにおけるロードバランシングの努力(あまり効果ない?) 標準のclusterApplyを改良?したのがclusterApplyLB.ためし に使ってみたら,スレーブのジョブ終了確認をポーリングで やっていて,すごく遅い.使わないほうがマシ.(ブートストラッ プは粒度がだいたいそろっているという事情もあります)

大規模並列計算の体験談

snowの起動 @ TSUBAME 704 cpu でも 20秒足らず OSレベルでジョブの投入に時間がかかります

利用例:ピクセルごとに数値計算してアルゴリズムのパフォーマンスを視覚化 263 sec * 54481 pixels / (60*60) = 3980 hours @ 1 cpu 10 hours @ 640 cpus クラスタがなければ,やろうとは思わないような計算 bootstrap probability one-sided p-value two-sided p-value

CPU数を変化させて計算時間を測定 マルチスケール・ブートストラップ法 (スケールは13コにした) B=10,000回の反復 pvclust: 階層型クラスタリング (マイクロアレイデータの分析につかった) scaleboot: 新たらしいマルチスケール法の実装 (系統樹推定につかった) RELL法: 対数尤度を直接リサンプリングするため,ブートストラップ法は行列計算だけ

CPU数 vs 計算速度 7分 @ 704 cpus 80時間 @ 1 cpu 並列化による改善

まとめ: snowによる並列計算 単純な反復計算ならば,既存のコードを簡単に並列 化できる. ブートストラップ法のように相互通信のない計算なら ば,CPU数(コア数)にほぼ比例して速くなる.CPUが 200個くらいまでなら,ほとんどリニアに増える. いろいろ問題もあります.