Microsoft PowerPoint - SWoPP2010_Shirahata

Similar documents
HBase Phoenix API Mars GPU MapReduce GPU Hadoop Hadoop Hadoop MapReduce : (1) MapReduce (2)JobTracker 1 Hadoop CPU GPU Fig. 1 The overview of CPU-GPU

hpc141_shirahata.pdf

PowerPoint プレゼンテーション

スライド 1

FIT2015( 第 14 回情報科学技術フォーラム ) RC-003 ファイル格納位置制御による Hadoop MapReduce ジョブの性能の向上 藤島永太山口実靖 工学院大学大学院工学研究科電気 電子工学専攻工学院大学工学部情報通信工学科 1. はじめに近年, 世界中の情報量が爆発的に増加し

PowerPoint プレゼンテーション

ERDAS IMAGINE における処理速度の向上 株式会社ベストシステムズ PASCO CORPORATION 2015

Microsoft PowerPoint - yamagata.ppt

Introduction

NVIDIA Tesla K20/K20X GPU アクセラレータ アプリケーション パフォーマンス テクニカル ブリーフ

Slides: TimeGraph: GPU Scheduling for Real-Time Multi-Tasking Environments

Title

無料セミナー資料:ビッグデータ管理基盤ソフトウェアHadoop入門

OS

Hadoop LZO圧縮機能の検証

Elastic MapReduce bootcamp

(Microsoft PowerPoint - Hadoop\225\224\211\357.ppt)

TopSE並行システム はじめに

データセンターの効率的な資源活用のためのデータ収集・照会システムの設計

Microsoft PowerPoint - GPUシンポジウム _d公開版.ppt [互換モード]

PowerPoint プレゼンテーション

RICCについて

情報処理学会研究報告 IPSJ SIG Technical Report Vol.2015-DPS-163 No.17 Vol.2015-MBL-75 No /5/28 Hadoop MapReduce の Reduce 処理の I/O 高速化 藤島永太山口実靖工学院大学大学院工学研究

Python Perl JavaScript および PHP などの ランザクション ID を利用することで 重複する処理 な Tuple が流れるかはグルーピングより決定されま 多くの言語をサポートしています を判別することができます す 6 簡単なデプロイと運用 は簡単にデプロイし 動作させるこ

<4D F736F F D F B835E82CC8D8291AC8F88979D82F08FAC8C5E82A982C288C089BF82C88D5C90AC82C AC82B782E996A78C8B8D878C5E836E815B C695C097F18F88979D82F091678D8782B982BD8C768E5A8B

DEIM Forum 2012 C2-6 Hadoop Web Hadoop Distributed File System Hadoop I/O I/O Hadoo

製品開発の現場では 各種のセンサーや測定環境を利用したデータ解析が行われ シミュレーションや動作検証等に役立てられています しかし 日々収集されるデータ量は増加し 解析も複雑化しており データ解析の負荷は徐々に重くなっています 例えば自動車の車両計測データを解析する場合 取得したデータをそのまま解析

OSS 体験セミナー Hadoop の概要 高スケーラブルな分散管理基盤 2 つのコア機能 分散ファイルシステム (HDFS) 分散処理フレームワーク (Map/Reduce) BigData の管理基盤として注目 分散処理基盤 (Map/Reduce) Hadoop 分散ファイルシステム (HDF

ストリームを用いたコンカレントカーネルプログラミングと最適化 エヌビディアジャパン CUDAエンジニア森野慎也 GTC Japan 2014

熊本大学学術リポジトリ Kumamoto University Repositor Title GPGPU による高速演算について Author(s) 榎本, 昌一 Citation Issue date Type URL Presentation

Microsoft Word ●MPI性能検証_志田_ _更新__ doc

平成20年度成果報告書

目次 LS-DYNA 利用の手引き 1 1. はじめに 利用できるバージョン 概要 1 2. TSUBAME での利用方法 使用可能な LS-DYNA の実行 4 (1) TSUBAMEにログイン 4 (2) バージョンの切り替え 4 (3) インタラ

スライド 1

システムソリューションのご紹介

XNA Framework

Microsoft PowerPoint - OS02.pptx

PowerPoint プレゼンテーション

about MPI

untitled

LS-DYNA 利用の手引 第 1 版 東京工業大学学術国際情報センター 2017 年 9 月 25 日

PowerPoint プレゼンテーション

並列計算導入.pptx

ビッグデータ分析を高速化する 分散処理技術を開発 日本電気株式会社

Microsoft Word - Dolphin Expressによる10Gbpソケット通信.docx

スライド 1

概要 ここでは先程デモを行った OpenStack の中で仮想マシンのデータがどのように管理されているかをご紹介致します OpenStack の中でデータがどのように配置され 管理されているかを知ることは 可用性を検討する上で非常に重要になります 2

組込み Linux の起動高速化 株式会社富士通コンピュータテクノロジーズ 亀山英司 1218ka01 Copyright 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED

多言語ドメイン名の実装 mdnkit 石曽根信 ( 株 ) SRA 2001/12/04 日本語ドメイン名解説 / mdnkit 1 mdnkit 多言語ドメイン名を扱うためのツールキット 正規化 エンコード変換等を提供するライブラリとコマンド 既存アプリケーシ

Microsoft Word - HOKUSAI_system_overview_ja.docx

untitled

VXPRO R1400® ご提案資料

スライド 1

Microsoft PowerPoint - sp ppt [互換モード]

Hadoop Introduction

Microsoft PowerPoint - OpenMP入門.pptx

2011年11月10日 クラウドサービスのためのSINET 学認説明会 九州地区説明会 九州大学キャンパス クラウドシステムの導入 伊東栄典 情報基盤研究開発センター 1

目次 はじめに Introduction Analyzing Big Data Vectorwise and Hadoop Environments Vectorwise Hadoop Connector Perform

PowerPoint Presentation

PowerPoint Presentation

演習1: 演習準備

スライド 1

Microsoft PowerPoint - OS02.ppt

Microsoft PowerPoint VIOPS.ppt

dlshogiアピール文章

C プログラミング 1( 再 ) 第 5 回 講義では C プログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ

PowerPoint プレゼンテーション

Microsoft PowerPoint - サイバートラストデバイスID F5 BIG-IP Edge Client連携のご紹介.ppt [互換モード]

「RAD Studio XE5によるマルチ言語/マルチデバイス開発の進め方」

Microsoft PowerPoint _ncessympotakada [互換モード]

Microsoft PowerPoint - OS02.pptx

高速バックボーンネットワークにおける公平性を考慮した階層化パケットスケジューリング方式

<4D F736F F F696E74202D2091E63489F15F436F6D C982E682E992B48D8291AC92B489B F090CD2888F38DFC E B8CDD8

資料3 今後のHPC技術に関する研究開発の方向性について(日立製作所提供資料)

Visual Basic Oracle Database 11 Release 1

yamamoto_hadoop.pptx

名称 : 日本 GPU コンピューティングパートナーシップ (G-DEP) 所在 : 東京都文京区本郷 7 丁目 3 番 1 号東京大学アントレプレナープラザ, 他工場 URL アライアンスパートナー コアテクノロジーパートナー NVIDIA JAPAN ソリュ

リソース制約下における組込みソフトウェアの性能検証および最適化方法

MATLAB® における並列・分散コンピューティング ~ Parallel Computing Toolbox™ & MATLAB Distributed Computing Server™ ~

cmpsys15w07_os.ppt

Fujitsu Standard Tool

Delphi/400開発ノウハウお教えします Googleマップ連携によるリッチなGUIアプリ開発

Arduino をドリトルから 制御する教材の試行 鈴木裕貴 1

(2) 開放性 (openness) 開放性とは, システムをさまざまな方法で拡張できるかどうかを決定する特性である. 分散システムの開放性とは, 新しい資源共有サービスを, 既存のサービスの破壊や重複なしに, どの程度追加できるかということを決定する. 各コンピュータのカーネル (kernel)

Coding theorems for correlated sources with cooperative information

System Requirements for Geomagic

計算機アーキテクチャ

共有辞書を用いた 効率の良い圧縮アルゴリズム

vdi_service_details

(Microsoft PowerPoint \215u\213`4\201i\221\272\210\344\201j.pptx)

TSUBAME2.0 における GPU の 活用方法 東京工業大学学術国際情報センター丸山直也第 10 回 GPU コンピューティング講習会 2011 年 9 月 28 日

PHP 開発ツール Zend Studio PHP アフ リケーションサーハ ー Zend Server OSC Tokyo/Spring /02/28 株式会社イグアスソリューション事業部

C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要

研究報告用MS-Wordテンプレートファイル

PowerPoint プレゼンテーション

Total View Debugger 利用の手引 東京工業大学学術国際情報センター version 1.0

メール全文検索アプリケーション Sylph-Searcher のご紹介 SRA OSS, Inc. 日本支社技術部チーフエンジニア Sylpheed 開発者 山本博之 Copyright 2007 SRA OSS, Inc. Japan All right

テクニカルティップス IDS NXT HALCON Loader HALCON 画像処理から IDS NXT ビジョンアプリへの数ステップ HALCON で開発した画像処理を IDS NXT ビジョンアプリでプログラミングすることなく 直接ビジョンアプリベースの IDS カメラで実行できます 時間が

(速報) Xeon E 系モデル 新プロセッサ性能について

Transcription:

GPU を考慮した MapReduce の タスクスケジューリング 白幡晃一 1 佐藤仁 1 松岡聡 1 2 3 1 東京工業大学 2 科学技術振興機構 3 国立情報学研究所

大規模データ処理 情報爆発時代における 大規模データ処理 気象 生物学 天文学 物理学など様々な科学技術計算での利用 MapReduce 大規模データ処理のためのプログラミングモデルデ スケーラブルな並列データ処理 GPGPU 汎用 に比べ高い性能 CUDA をはじめとする開発環境の整備 と GPU の混在したスパコン クラウドの出現 ex) TSUBAME 2.0 : NVIDIA の Fermi Tesla M2050 を計算ノードに 3 台搭載 GPU を活用した MapReduce 処理の高速化

と GPUの混在環境での MapReduce 処理における問題点 と GPU へタスクを割り振る方法は自明ではない 計算資源への依存 コア数 GPU 台数 メモリ容量 メモリバンド幅ストレージへの I/O バンド幅など アプリケーションへの依存 GPU 処理の特性 長所 : ピーク性能 メモリバンド幅 短所 : 複雑な命令は に劣る GPU 利用による性能向上があるものの GPU 処理には向き 不向きがある GPU と のハイブリッド実行のスケジューリングを行い, リ実行リグを行, それぞれの長所を生かす 計算資源を有効活用

目的 目的と成果 と GPU の混在環境での MapReduce 処理の高速化 成果 Map タスクのハイブリッド実行 MapReduce の OSS 実装である Hadoop に実現 Map タスク割り振りのスケジューリング手法の提案 ジョブ全体の実行時間を最小化 K meansアプリケーションによる評価 ジョブ実行時間 : 複数 GPU と提案スケジューリング手法により のみの場合に対し 1.02 1.93 倍となる高速化

発表の流れ 研究背景 MapReduce と GPGPU 提案手法 設計と実装 実験 関連研究 まとめと今後の課題

MapReduce MapReduce と GPGPU Map, Shuffle, Reduce の 3 つのフェーズからなる 様々な機械学習アルゴリズムへの適用例 主な実装 Hadoop: MapReduce, HDFS, HBase などの OSS Mars: GPU 用のフレームワーク 企業 研究機関での導入事例の多い Hadoop を対象 GPGPU グラフィックプロセッサをSIMD 演算機として利用 に比べ安価で高いピーク性能 主な統合開発環境 NVIDIA: CUDA, AMD: ATI Stream CUDAを対象

発表の流れ 研究背景 MapReduce と GPGPU 提案手法 設計と実装 実験 関連研究 まとめと今後の課題

マスタ ワーカモデル ジョブの動作 Hadoop の構造 Client: ジョブの投入, JobTracker: タスクの割り振り, Tracker: タスクの実行, Heartbeat による送受信 Client Node Java App Master Node JobTracker Slave Node Tracker Slave Node Tracker Slave Node Tracker

提案 : と GPUの Mapタスクのハイブリッドスケジューリング と GPU への割り振りを自動決定 実行環境 計算資源 ジョブ実行時間を最小化 アプリケーションの特性 Client Node Java App Master Node JobTracker Slave Node Slave Node Slave Node Hadoop からの CUDA の呼び出し Tracker Tracker Tracker ハイブリッドスケジューリングアルゴリズム

Hadoop からの CUDA の呼び出し 実装の違いの吸収 Hadoop Java 実装 ( ミドルウェア, アプリケーション ) CUDA C++ によるライブラリ 主な手法 Hd Hadoop Streaming: 標準入出力 Hadoop Pipes: ソケット接続, C++ ライブラリ JNI, JNI ベースの CUDA ラッパー (JCUDA) Hadoop Pipes を対象 Hadoop Pipes を対象 C++ で MapReduce アプリケーション, CUDA カーネル関数を記述可能 CUDA カーネルを起動可能

Hadoop からの CUDA の呼び出し (cont d) Map タスク 実行スロットの管理 Map タスクを, GPU のどちらのスロットで実行するか? 空きスロット (, GPU) の認識 GPU への Map タスクの競合 1 ノード上に複数 GPU を搭載時に発生 Map タスクを実行する GPUデバイスを識別する必要有 cudasetdevice で設定

Map タスクの ハイブリッドスケジューリング 設定 nコアと GPU m 台を搭載 スケジューリング方法 ジョブ実行時間を最小化 と GPU の性能比 ( 加速倍率 ) に応じた Mapタスクの割り振り 動的なモニタリング, GPU で実行が終了した Mapタスクのプロファイル ( 実行時間など ) を Heartbeat 毎に繰り返し取得 加速倍率を計算 ジョブの進捗状況の把握

スケジューリングアルゴリズム 目標, GPU に割り当てられた Map タスクが共に全て終了する までにかかる時間の最小化 と GPU に割り当てる Map タスク数を決定 加速倍率 : スケジューリングアルゴリズム

発表の流れ 研究背景 MapReduce と GPGPU 提案手法 設計と実装 実験 関連研究 まとめと今後の課題

Hadoop Pipes ユーザからの実行方法 ユーザは map 関数と reduce 関数を記述 (C++ ラッパーライブラリを使用ライブラリを使用 ) コンパイル済のバイナリと入力 出力ファイルを指定してジョブを実行 Launch bin/hadoop pipes D hadoop.pipes.java.recordreader=true D D hadoop.pipes.java.recordwriter=true pipes bin cpu kmeans2d input input output output Submit Job User App Binary Client Node JobClient Master Node JobTracker Use Hadoop Pipes C++ Wapper Run Wrapper Process App Binary Allocate Map or Reduce task Slave Node Tracker Send and Receive Key Value pairs Child JVM Child Launch

Hadoop Pipes 実行フロー Tracker が Childプロセスを起動 Child プロセスがタスクを起動 C++ Wrapper プロセスが C++ バイナリを実行 ソケット接続による Key Value ペアの送受信 Launch Submit Job User App Binary Client Node JobClient Master Node JobTracker Use Hadoop Pipes C++ Wapper Run Wrapper Process App Binary Allocate Map or Reduce task Slave Node Tracker Send and Receive Key Value pairs Child JVM Child Launch

ハイブリッド実行の場合 incl. Pipes による CUDA の呼び出し ジョブ実行時に GPU バイナリを指定 Mapタスクの識別 ( GPU, GPUデバイスID) 空きスロットの識別 ( GPU, 空きGPUデバイスID) User App Launch Submit Job Binary Client Node Master Node GPU App JobClient JobTracker Binary Use Hadoop Pipes Allocate Map or Reduce task GPU Wapper Slave Node Tracker Run Wrapper Process GPU App Binary Send and Receive Key Value pairs Child JVM Child Launch

JobTracker Map タスクの割り振り Tracker プロファイルのモニタリング 空きスロット, プロファイル ( 実行時間 ) スケジューリングアルゴリズムの計算 の通知 (Heartbeat 毎 ) タスクの割り当て要求 各ノードへのタスクの割り振り タスクを識別して実行 ( GPU, GPUデバイスID の指定 ) ( GPU, GPUデバイスID の識別 ) Client Node App Binary GPU App Binary Slave Node Tracker Master Node JobTracker Slave Node Slave Node Tracker Tracker GPU GPU GPU GPU GPU GPU

発表の流れ 研究背景 MapReduce と GPGPU 提案手法 設計と実装 実験 関連研究 まとめと今後の課題

実験 Hadoop 環境でジョブ実行時間 Map タスク実行時間を測定 のみと + GPU の場合を比較 提案スケジューリングの適用と非適用の場合を比較 実験環境 : TSUBAME 16コア + GPU 2 台 /Node Mapスロット数, Reduceスロット数 : 16 スロット / Node 1~64 ノードと変化 DFS は Lustre を使用 ( ストライプ数 : 4, チャンクサイズ : 32 MB) I/O 性能 :32 MB のファイルに対し Write 180MB/s, Read 610MB/s K means アプリケーション Mapタスクを C++ バイナリ CUDAバイナリで実行 入力 : 262,144 個の二次元座標データ ( 浮動小数点 ) と 128 個のクラスタを持つファイルを 1000 個連結 (20GB) Map: 各ファイルごとに K means を実行 Reduce: K means の結果を収集

ジョブ実行時間の比較 Hadoop 環境でジョブ実行時間 Map タスク実行時間を測定 のみの場合と+GPUの場合を比較 +GPU のとき 提案アルゴリズムの適用と非適用の場合を比較 実験環境 : TSUBAME 16 コア + GPU 2 台 / node 16 15+1GPU 14+2GPU を比較 Map スロット : 16, Reduce スロット : 16 1~64 ノードと変化 DFS は Lustre を使用 ( ストライプ数 : 4 チャンクサイズ : 32MB) I/O 性能 : 32MB のファイルに対し Write 180MB/s, Read 610MB/s K means アプリケーション MapタスクをC++ バイナリ CUDAバイナリで実行 262144 個の二次元座標データ ( 浮動小数点 ) と128 Org 個の : Hadoopのオリジナルクラスタを持つファイルを 1000 個連結 (20GB) スケジューリング Map: 各ファイルごとにK meansを実行 Ours : 提案スケジューリング Reduce: K meansの結果を収集

ジョブ実行時間の比較 GPU の使用による若干の性能向上有 しかし加速倍率が高くないため (1.18 倍 ) と同等の性能 Org : Hadoop のオリジナルスケジューリング Ours : 提案スケジューリング

ジョブ実行時間の比較 1.02 倍 提案アルゴリズムの使用による更なる性能向上 1.93 倍 Org : Hadoop のオリジナルスケジューリング Ours : 提案スケジューリング

ジョブ実行時間の比較 ノードの追加による性能劣化 Mapタスク実行時間の増加による Org : Hadoop のオリジナルスケジューリング Ours : 提案スケジューリング

Map タスク実行時間の増加 ノード数に応じてMap タスク時間が増加 I/O 性能の低下 ジョブ実行時間の増加の一因 その他の原因として スロット数の過剰が冗長

ジョブ実行時間の比較 1GPU と 2GPU 2000 1800 1600 1400 提案手法では GPU 台数を増やすほど より性能向上する傾向有 1200 1000 16 15+1GPU+Ours 800 14+2GPU+Ours 600 Ours : 提案スケジューリング 400 200 0 1 2 4 8 16 32 64 1 2 3 4 5 6 7

プロセス起動によるオーバーヘッド 1 台の計算機での実験 バイナリのみと Map タスクの実行時間を比較 バイナリ実行時間 : C++ または CUDA の Map 関数 Map タスク実行時間 : Map タスクの割り当てから終了まで 12.1 秒 (16%) 実装依存のオーバーヘッドは無視できない [sec] 12.4 秒 (44%) Binary, GPU Binary : バイナリ実行時間 Map, GPU Map : Map タスク実行時間

発表の流れ 研究背景 MapReduce と GPGPU 提案手法 設計と実装 実験 関連研究 まとめと今後の課題

関連研究 学習メカニズムによる GPUタスクスケジューリング [Chi Keung Lu et al. `09] チャンクサイズの変化による GPUハイブリッド実行の高速化 [T. Ravi Vifnesh et al. `10] 不均質な環境での MapReduceのタスクスケジューリング [Matei et al. `08] 既存の不均質環境下のタスクスケジューリング手法 [ Suda `06 ] 計算資源 アプリの特性に応じた GPU 同時実行による大規模データ処理に特化 資源競合 ( メモリ ストレージ ) を考慮 オンラインで自動スケジューリング

まとめ まとめと今後の課題 Map タスクを GPU から呼び出し MapReduce 実装の Hadoop 環境で実現 と GPU の混在環境を考慮したタスクスケジューリング手法の提案 K means アプリケーションでの実験 ジョブ実行時間 : 2GPUと提案手法により 1.02 1.93 倍の高速化 Hadoopの実装に依存するオーバーヘッドは無視できない 今後の課題 スケジューリングモデルの改良 メモリ ディスクアクセス等を考慮 GPU 上でのタスク実行時における との資源の競合によるオーバーヘッドを考慮

ご清聴ありがとうございました

Mapタスク実行時間 GPUではに対し1.0 1.25 倍となる高速化 ( プロセス起動時間等を含む ) ジョブ実行時間 2GPUの使用と提案スケジューリングアルゴリズムの適用により1.02 1.93 倍の高速化 14+2GPU では 15+1GPU に対し 1.02 1.29 倍の高速化 ( 複数 GPU による効果 ) 実験結果 提案アルゴリズムの使用により 14+2GPU の場合に平均 1.28 倍 15+1GPU の場合に平均 1.08 倍の高速化 Ours : 提案スケジューリング Org : Hadoop のオリジナルスケジューリングリング GPU の使用 提案タスクスケジューリングの適用による性能向上を確認

Map タスク実行時間の増加 ノードを増やすにつれて Map タスク時間が増加 I/O の増加が原因か

プロセス起動等のオーバーヘッド ローカル 1 ノードでの実験 (7+1GPU) バイナリ実行時間と Map タスク実行時間を比較 バイナリ実行時間 : C++ またはCUDAのMap 関数の実行時間 Map タスク実行時間 : Map タスクが割り当てされてから終了するまでの時間 オーバーヘッド 上では約 16% GPU 上では約 44% 実装依存のオーバーヘッドは無視できない バイナリ実行時間と Map 実行時間の比較 GPU バイナリ 64.93~65.68 秒 11.66~16.86 秒 実行時間 Map タスク 72.13~78.14 秒 24.04~37.06 秒 実行時間 [sec]

GPUを呼び出す手法の比較 Hadoop Streaming Hadoop とユーザプログラムの間に Unix 標準ストリームを使用 標準入出力の解析が必要 Hadoop Pipes ソケット接続を確立し スレーブノードとの通信のチャネルを生成するC++ インターフェース C++ と CUDA の親和性 JNI(Java Native Interface) 関数呼び出しのオーバーヘッド大 実行環境依存のライブラリが必要 jcuda(java for CUDA) 現状では明示的なメモリアラインメント不可 非同期の命令がメモリ破損を引き起こす可能性有 C++ との親和性を考慮し Hadoop Pipes を使用

GPUを呼び出す手法の比較 Hadoop Streaming Hadoop とユーザプログラムのインターフェースに Unix 標準ストリームを使用 任意の言語でユーザプログラムを記述可能 標準入出力の解析が必要 Hadoop Pipes C++ インターフェース ソケット接続を確立し スレーブノードとの通信のチャネルを生成 JNI(Java Native Interface) JVMで実行されるJavaコードが他のプログラミング言語で記述されたネイティブコードを利用するためのAPI JVMで動作させるには不利なプログラムをネイティブコードに置き換えて高速化することが可能 関数呼び出しのオーバーヘッド大 実行環境依存のライブラリが必要 jcuda(java for CUDA) GPU 上のメモリの割り当て 転送のためのメソッドを提供 Jcublas, Jcufft, Jcudppなどのライブラリと相互運用が可能 現状では明示的なメモリアラインメント不可 非同期の命令がメモリ破損を引き起こす可能性有 今回は Hadoop Pipes を使用

Streaming Tracker Pipes Tracker Child Child JVM Streaming Process Child Child JVM C++ Wapper Library C++ Map or Reduce

K means における Map タスクの加速倍率

PCA でのジョブ時間

User GPU App Binary Launch Client Node JobClient Submit Job Master Node JobTracker Use Hadoop Pipes Allocate Map or Reduce task Slave Node C++ Wapper Wrapper Tracker Process Launch Send and Receive Run Key value pairs Child JVM GPU App Child Binary