• 検索結果がありません。

Pwrake による大規模データ処理 並列分散ワークフローシステム

N/A
N/A
Protected

Academic year: 2021

シェア "Pwrake による大規模データ処理 並列分散ワークフローシステム"

Copied!
43
0
0

読み込み中.... (全文を見る)

全文

(1)

並列分散ワークフローシステム

Pwrake

による大規模データ処理

田中昌宏、建部修見

(筑波大学 計算科学研究センター)

(2)

発表内容

• e

サイエンス基盤

広域分散ファイルシステム

Gfarm

並列分散ワークフロー実行システム

Pwrake

天文学データ処理

ワークフローの記述

性能評価

2011-2-16 宇宙科学情報解析シンポジウム 2

(3)

天文観測データ量

サーベイ観測

• SDSS

(画像)

~ 16 TB

• 2MASS

(画像)

~ 8 TB

すばる望遠鏡

• SprimeCam ~ 1.5 TB/year

• Hyper-SprimeCam ~ 15 TB/year ?

データ解析には、元データの

>10

倍の容量必要

100 TB

~数

PB

のデータ量を扱う時代

(4)

並列処理

2011-2-16 宇宙科学情報解析シンポジウム 4

処理時間

逐次処理

並列処理

Storage

Storage

Storage

Storage

(5)

Gfarm

広域分散ファイルシステム

各ノードのストレージを統合

統一したディレクトリ空間

広域でファイルを共有

• http://datafarm.apgrid.org/

Internet Gfarm File System

/

/dir1 /dir2

Computer nodes

(6)

並列

I/O

性能の向上

集中型ファイルシステムでは、ストレージ

I/O

がボトルネック

分散ファイルシステムにより、スケーラブルな並列

I/O

性能 が実現

Storage CPU CPU CPU

file1 file2 file3

Storage

CPU CPU CPU

ストレージの

I/O

性能がボ

トルネック

Storage Storage

file1 file2 file3

NFS

分散ファイルシステム

並列分散 処理

複数のスト レージによる アクセス分散

宇宙科学情報解析シンポジウム 6 2011-2-16

This document is provided by JAXA.

(7)

ローカリティを考慮したタスク実行

• Gfarm

では、計算ノードがとストレージノードを兼ねる

ファイルが存在するノードで処理すれば、性能が向上

タスク実行は、ワークフローシステムが行う

Local

Local Local Local

Task for File 1

Task for File 3

Slow

Fast

(8)

ワークフロー

タスク

出力ファイル

依存関係

ワークフローシステム

ワークフロー定義に 従って、タスクを各ノー ドで実行

2011-2-16 宇宙科学情報解析シンポジウム 8

ワークフロー処理システム

Process

Process Process

Workflow System

Workflow

definition

(9)

ワークフローの記述言語

課題

システムに詳しくない人でも記述できるか?

複雑なワークフローを記述できるか?

再利用可能か?

(10)

• Task:

頂点(楕円)

• File:

頂点(四角)

依存関係

:

DAG

Directed Acyclic Graph

有向非循環グラフ

ワークフローのグラフ表現

2011-2-16 宇宙科学情報解析シンポジウム 10

Input File

Task

Output File

Dependency

(11)

• Montage

– software for producing a custom mosaic image from multiple shots of images.

– http://montage.ipac.caltech.edu/

天文データ処理の例

(12)

Montage Workflow

処理内容

:

座標変換

明るさ補正

足し合わせ

• 1 image : 1 process

宇宙科学情報解析シンポジウム 12 2011-2-16

mProjectPP

mDiff

mBgModel

mBackground

mFitplane mAdd

m1= a'1x+b'1y+c'1 m2= a'2x+b'2y+c'2 a1x+b1y+c1=0 a2x+b2y+c2=0

Final image Input images

(13)

Montage

ワークフローのグラフ

flow

Input

files Output

file

(14)

DAG

によるワークフロー定義

多くのワークフローシステ ムで採用

欠点

手書きは不可能:

• DAG

生成プログラムが必須

再利用が不可能

大規模なワークフローでは、

DAG

が膨大になる

動的ワークフローが不可能

XML

で記述した

DAG:

<adag xmlns="http://www.griphyn.org/chimera/DAX"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.griphyn.org/chimera/DAX http://www.griphyn.org/chimera/dax-1.8.xsd"

count="1" index="0" name="test">

<filename file="2mass-atlas-981204n-j0160056.fits"

link="input"/>

<job id="ID000001" name="mProject" version="3.0" level="11"

dv-name="mProject1" dv-version="1.0">

<argument>

<filename file="2mass-atlas-981204n-j0160056.fits"/>

<filename file="p2mass-atlas-981204n-j0160056.fits"/>

<filename file="templateTMP_AAAaaa01.hdr"/>

</argument>

<uses file="2mass-atlas-981204n-j0160056.fits" link="input"

dontRegister="false" dontTransfer="false"/>

<uses file="p2mass-atlas-981204n-j0160056.fits" link="output"

dontRegister="true" dontTransfer="true"

temporaryHint="tmp"/>

<uses file="p2mass-atlas-981204n-j0160056_area.fits"

link="output" dontRegister="true" dontTransfer="true"

temporaryHint="tmp"/>

<uses file="templateTMP_AAAaaa01.hdr" link="input"

dontRegister="false" dontTransfer="false"/>

</job>

<child ref="ID003006">

<parent ref="ID000001"/>

<parent ref="ID000006"/>

</child>

</adag>

2011-2-16 宇宙科学情報解析シンポジウム 14

(15)

Makefile

によるワークフロー記述

• Makeflow http://www.nd.edu/~ccl/software/makeflow/

• GXP make http://www.logos.ic.i.u-tokyo.ac.jp/gxp/

利点

タスク定義言語である

広く使われている

ルール定義が可能

ファイルのタイムスタンプに基づき、途中から実行を再開

問題点

複雑な定義を記述できない

動的なワークフローを記述できない

(16)

Rake

• Ruby

make

。ビルドツール

タスク記述ファイル

: Rakefile

タスク記述文法

: Ruby

内部

DSL (Internal Domain Specific Language)

と呼 ばれる。

• Rakefile

Ruby

スクリプトとして実行されるの で、

Ruby

でできることはすべて可能。

2011-2-16 宇宙科学情報解析シンポジウム 16

(17)

Rakefile

におけるタスク記述

file “prog” => [“a.o”, “b.o”] do sh “cc –o prog a.o b.o”

end

タスク定義

Ruby

メソッド)

Ruby

コードブロック

タスクのアクションを

Ruby

言語で記述

依存関係

自身のタスク名

=>

依存タスク名

(18)

拡張子から定義できない依存関係

ファイルの依存関係が拡張子ベースではない

ファイル番号に基づく場合

A00 A01 A02 A03 B00 B01 B02

2011-2-16 宇宙科学情報解析シンポジウム 18

(19)

Comparison of task definition

• Make:

各定義を書き下す

B00: A00 A01

prog A00 A01 > B00 B01: A01 A02

prog A01 A02 > B01 B02: A02 A03

prog A02 A03 > B02

……

• Rake:

ループ内で定義

for i in "00".."10"

file “B#{i}" => [“A#{i}",“A#{i.succ}"] do |t|

sh "prog #{t.prerequisites.join(' ')} > #{t.name}"

end

(20)

ジオメトリによって依存関係が決まる

2011-2-16 宇宙科学情報解析シンポジウム 20

複雑な依存関係

A B

C D

A

task

B C D

task task task

(21)

依存関係がファイルに書かれている 場合

• File dependency is given as a list written in a file:

$ cat depend_list

dif_1_2.fits image1.fits image2.fits dif_1_3.fits image1.fits image3.fits dif_2_3.fits image2.fits image3.fits ...

image1 dif_1_2

image2 image3

dif_1_3 dif_2_3

(22)

Dependency is given as a file list

• Make:

依存関係を記述したファイルから、

Makefile

を作成するプ ログラムが必要

• Rake:

ファイルを読み、タスクを定義

open("depend_list") { |f|

f.readlines.each { |line|

name, file1, file2 = line.split file name => [file1,file2] do |t|

sh “prog #{t.prerequisites.join(' ')} #{t.name}"

end }

}

2011-2-16 宇宙科学情報解析シンポジウム 22

(23)

タスクを実行した結果により、それ以降のファ イル・タスクが定義できる

動的なワークフローの生成

Task

file3 file1 file2

Task Task

(24)

• make

実行中に

Makefile

を生成

• Makefile

だけではワークフローを定義できない

Makefile

の動的生成

Makefile

Makefile.sub: prerequisite

awk –f hoge.awk $< > $@

target: Makefile.sub

make -f $<

Makefile.sub

target1: source1 target2: source2

create

invoke

2011-2-16 宇宙科学情報解析シンポジウム 24

(25)

Rake

における動的タスク生成(失敗)

task :A do task :B do

puts “B”

end end

task :default => :A

• task A

の実行中に

task B

を生成

しかし

task B

は実行さ れない

– task B

が生成される前 に、すでに依存関係が 決定

(26)

Rake

における動的タスク生成(成功)

task :A do

b = task :B do puts “B”

end

b.invoke end

task :default => :A

変数

b

に、

Task

オブ ジェクトを格納

• invoke

メソッドにより、

明示的に実行

• Rake

により、動的な ワークフローが実現

2011-2-16 宇宙科学情報解析シンポジウム 26

(27)

Rake

まとめ

ワークフローの記述に適した特徴:

複雑な依存関係を記述可能

異なる入力ファイルに対して再利用可能

動的なワークフロー

• Rake

には、並列分散機能はない

(28)

並列分散ワークフロー処理システム

Pwrake

並列分散機能を拡張

: Pwrake

– Parallel Workflow extension for Rake

「プレイク」 と呼んでます

• http://github.com/masa16/pwrake

タスク記述は、

Rake

と同じ

プロセスを並列に実行

– SSH

による遠隔実行

2011-2-16 宇宙科学情報解析シンポジウム 28

(29)

Pwrake

のローカリティ機能

• Gfarm

ファイルのローカリティに基づき、実行

ノードを決定

Local

Local Local Local

Job for File 1

Job for File 3

Slow

Fast

Job for

File 3

(30)

Montage Workflow

性能評価

ワークフローを

Rakefile

として記述

mProjectPP

mDiff

mBgModel

mBackground

mFitplane mAdd

m1= a'1x+b'1y+c'1 m2= a'2x+b'2y+c'2 a1x+b1y+c1=0 a2x+b2y+c2=0

Final image Input images

宇宙科学情報解析シンポジウム 30 2011-2-16

(31)

Montage Workflow

の実行時間

1 node 4 cores

2 nodes 8 cores

4 nodes 16 cores

8 nodes 32 cores

1-site

2 sites

16 nodes 48 cores

筑波大の計算機クラスタ

筑波大+

産総研 計算機 クラスタ

(32)

Montage Workflow

の実行時間

1 node 4 cores

2 nodes 8 cores

4 nodes 16 cores

8 nodes 32 cores

1-site

2 sites

16 nodes 48 cores

NFS

並列度を上げ ても処理時間

が減らない

宇宙科学情報解析シンポジウム 32

2011-2-16

(33)

Montage Workflow

の実行時間

1 node 4 cores

2 nodes 8 cores

4 nodes 16 cores

8 nodes 32 cores

1-site

2 sites

16 nodes 48 cores

Gfarm

1

拠点で スケーラブル

ファイルやジョブ

(34)

Montage Workflow

の実行時間

1 node 4 cores

2 nodes 8 cores

4 nodes 16 cores

8 nodes 32 cores

1-site

2 sites

16 nodes 48 cores

宇宙科学情報解析シンポジウム

Gfarm

NFS

の約

10

の性能向上

2011-2-16 34

(35)

Montage Workflow

の実行時間

1 node 4 cores

2 nodes 8 cores

4 nodes 16 cores

8 nodes 32 cores

1-site

2 sites

16 nodes 48 cores

Gfarm

2

拠点でもス ケーラブル

(36)

デモ

2011-2-16 宇宙科学情報解析シンポジウム 36

flash

(37)

タスク配置による性能向上

40 40.5 41 41.5 42 42.5 43

Declination (degree)

#1

#2

#3

#4

複数拠点のクラスタを用いたワークフロー実行

適切なタスク配置により、拠点間のファイル転送を少なくする

「エッジカット最小」となるグラフ分割問題を解くことにより、タスク をグループ化

座標によるグループ化と、同等の結果

座標情報がなくても、ワークフローを記述するだけで適切に配置

(38)

SDFRED (Suprime-cam Deep Field REDuction)

• SprimeCam

: すばるの主焦点に

4096x2048

画素の

CCD

5x2

並べたカメラ。満月とほぼ同じ大きさの広い視野が特徴。

• SDFRED : SprimeCam

が撮影したデータから、位置補正、感度補正 などの処理をおこない、

1

枚の画像に合成するソフトウェア

• http://subarutelescope.org/Observing/DataReduction/

複数ショット 合成

38

2011-2-16 宇宙科学情報解析シンポジウム

(39)

SDFRED

処理内容

処理の内容

(

所要時間

A,B)

1.

画像ファイル名の変換および画像の確認

(1

,1

) 2. bias

引きおよび

overscan

の切り取り

(20

,1

)

3. flat

作り

(6

,20

)

4.

感度補正

(flat fielding) (30

,2

)

5.

歪補正および微分大気差補正

(1

,6

)

6. PSF

測定

(*,*)

7. PSF

合わせ

(40

,80

)

8. sky

の差し引き

(1

,3

)

9. AG probe

の影を自動でマスク

(15

,2

)

10.

画像を目で見て、悪い部分をマスク

(15

,1

) 11.

組み合わせ規則作り

(matching) (2

,15

) 12.

組み合わせ

(mosaicing) (3

,12

)

*(所要時間)は国立天文台のana*.adc (Intel Xeon 3.0GHz) のローカル作業領域/waを使って、a) 練習用

(40)

SuprimeCam Data Reduction SDFRED1

下記スクリプトをRakefileで記述

overscansub.csh mask_mkflat_HA.csh blank.csh

ffield.csh distcorr.csh

fwhmpsf_batch.csh fwhmpsf.csh psfmatch_batch.csh psfmatch.csh skysb.csh mask_AGX.csh blank.csh makemos.csh

トレーニング画像の自動処理に成功

2011-2-16 宇宙科学情報解析シンポジウム 40

ワークフローのグラフ

(41)

SDFRED1

ワークフローの経過時間

(42)

Pwrake

開発の今後の予定

障害対策

障害情報の取得

タスクの再試行

故障ノードの判別

機能向上

資源に応じた実行制御

接続方法

性能向上

タスク配置アルゴリズムの向上

ファイル複製の自動配置

2011-2-16 宇宙科学情報解析シンポジウム 42

(43)

まとめ

大量データの迅速な解析には、並列処理が 必要

ワークフロー記述言語として、

Rake

を採用

並列分散ワークフロー処理システム

Pwarke

開発

– URL: http://github.com/masa16/pwrake

分散ファイルシステム

Gfarm

を用いることによ り、スケーラブルな性能向上を達成

参照

関連したドキュメント

本研究に特に関連する 2 つの先行研究について述べ る.Zheng らの研究 [1] では,コンテンツ解析を伴う分

本稿では,Smoothed Aggregation に基づく Algebraic Multigrid 前処理付 CG

ⓒ 2014 Information Processing Society of Japan... ৘ใॲཧֶձ‫ڀݚ‬ใࠂ IPSJ

As a result of small-data processing of observation data on the system, parallel processing is found effective using meta- data file at local disk and hierarchical Gfarm file..

本研究では、 MPI を用いて画像処理の 1 つであるエ ッジ抽出を行い、その時間を計測した。サイズの大き な画像の場合は

密度汎関数法プログラム ProteinDF の並列化 -大規模クラスタでの分散並列処理を目指した改良- 吉廣保 † 、上野哲哉 † 、稲葉亨 ‡ 、柏木浩 †‡ * 、佐藤文俊

ⓒ 2014 Information Processing Society of Japan... ৘ใॲཧֶձ‫ڀݚ‬ใࠂ IPSJ

MapReduce のための分散ファイルシステムとして Google File System や HDFS Hadoop Distributed File