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

並列分散ワークフロー処理システムの研究開発

N/A
N/A
Protected

Academic year: 2022

シェア "並列分散ワークフロー処理システムの研究開発"

Copied!
41
0
0

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

全文

(1)

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

田中昌宏、建部修見(筑波大)

2010-11-26

第3回データ科学ワークショップ

1

(2)

発表内容

• e サイエンス基盤

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

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

• 天文学データ処理

– ワークフローの記述

– 性能評価

(3)

データ アーカイブ

天文データの流れ

2010-11-26

第3回データ科学ワークショップ

3

データ アーカイブ

データ処理 観測

研究

….

Virtual Observatory

(4)

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

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

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

• 広域でファイルを共有

• http://datafarm.apgrid.org/

Internet Gfarm File System

/

/dir1 /dir2

Computer nodes

(5)

並列 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 分散ファイルシステム

並列分散 処理

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

3

回データ科学ワークショップ

5

2010-11-26

(6)

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

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

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

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

Local

Local Local Local

Task for File 1

Task for File 3

Slow

Fast

(7)

• ワークフロー

– タスク

– 出力ファイル – 依存関係

• ワークフローシステム

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

2010-11-26

第3回データ科学ワークショップ

7

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

Process

Process Process

Workflow System

Workflow

definition

(8)

ワークフローの記述言語

• 課題

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

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

– 再利用可能か?

(9)

• Task: 頂点(楕円)

• File: 頂点(四角)

• 依存関係 : 辺

DAG

Directed Acyclic Graph – 有向非循環グラフ

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

2010-11-26

第3回データ科学ワークショップ

9

Input File

Task

Output File

Dependency

(10)

• Montage

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

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

天文データ処理の例

(11)

Montage Workflow

• 処理内容 :

– 座標変換 – 明るさ補正 – 足し合わせ

• 1 image : 1 process

第3回データ科学ワークショップ

11 2010-11-26

mProjectPP

mDiff

mBgModel

mBackground

mFitplane mAdd

m

1

= a'

1

x+b'

1

y+c'

1

m

2

= a'

2

x+b'

2

y+c'

2

a

1

x+b

1

y+c

1

=0 a

2

x+b

2

y+c

2

=0

Final image

Input images

(12)

Montage ワークフローのグラフ

flow

Input

files Output

file

(13)

DAG によるワークフロー定義

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

• 問題点

– 手書きは不可能:

• 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>

2010-11-26

第3回データ科学ワークショップ

13

(14)

Makefile によるワークフロー記述

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

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

• 利点

– タスク定義言語である – 広く使われている

– ルール定義が可能

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

• 問題点

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

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

(15)

Rake

• Ruby 版 make 。ビルドツール

• タスク記述ファイル : Rakefile

• タスク記述文法 : Ruby

– 内部 DSL (Internal Domain Specific Language) と呼 ばれる。

• Rakefile は Ruby スクリプトとして実行されるの で、 Ruby でできることはすべて可能。

2010-11-26

第3回データ科学ワークショップ

15

(16)

Rakefile におけるタスク記述

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

end

タスク定義

( Ruby メソッド)

Ruby コードブロック

タスクのアクションを Ruby 言語で記述

依存関係

自身のタスク名 => 依存タスク名

(17)

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

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

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

A00 A01 A02 A03 B00 B01 B02

2010-11-26

第3回データ科学ワークショップ

17

(18)

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

(19)

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

2010-11-26

第3回データ科学ワークショップ

19

複雑な依存関係

A B

C D

A

task

B C D

task task task

(20)

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

• 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

(21)

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 }

}

2010-11-26

第3回データ科学ワークショップ

21

(22)

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

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

Task

file3 file1 file2

Task Task

(23)

• 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

2010-11-26

第3回データ科学ワークショップ

23

(24)

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

task :A do task :B do

puts “B”

end end

task :default => :A

• task A の実行中に task B を生成

• しかし task B は実行さ れない

– task B が生成される前

に、すでに依存関係が

決定

(25)

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

task :A do

b = task :B do puts “B”

end

b.invoke end

task :default => :A

• 変数 b に、 Task オブ ジェクトを格納

• invoke メソッドにより、

明示的に実行

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

2010-11-26

第3回データ科学ワークショップ

25

(26)

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

Pwrake

• Rake には並列分散機能がない

• 並列分散機能を拡張 : Pwrake

– Parallel Workflow extension for Rake

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

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

– タスク記述は、 Rake と同じ – プロセスを並列に実行

– SSH による遠隔実行

(27)

Pwrake のローカリティ機能

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

ノードを決定

2010-11-26

第3回データ科学ワークショップ

27

Local Storage Local

Storage

Local Storage

file1 file2 file3

Local Storage

file4 Job for

File 1

Job for File 3

Slow

Fast

Job for

File 3

(28)

Montage Workflow 性能評価

• ワークフローを

Rakefile として記述

mProjectPP

mDiff

mBgModel

mBackground

mFitplane mAdd

a

1

x+b

1

y+c

1

=0 a

2

x+b

2

y+c

2

=0

Input images

(29)

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

第3回データ科学ワークショップ

29

筑波大 の計算機クラスタ

筑波大+

産総研 の 計算機 クラスタ

2010-11-26

(30)

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

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

が減らない

(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

第3回データ科学ワークショップ

31

Gfarm

1 拠点で スケーラブル

ファイルやジョブ の配置により 約 20 %性能向上

2010-11-26

(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

Gfarm は NFS の約 10 倍

の性能向上

(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

2 拠点でもス ケーラブル

第3回データ科学ワークショップ

33

2010-11-26

(34)

デモ

(35)

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

39.5 40 40.5 41 41.5 42 42.5 43

8.5 9 9.5 10 10.5 11 11.5 12 12.5 13

Declination (degree)

Right Ascension (degree)

#1

#2

#3

#4

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

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

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

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

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

2010-11-26

第3回データ科学ワークショップ

35

(36)

SDFRED (Suprime-cam Deep Field REDuction)

• SprimeCam : すばるの主焦点に 4096x2048 画素の CCD を 5x2 枚 並べたカメラ。満月とほぼ同じ大きさの広い視野が特徴。

• SDFRED : SprimeCam が撮影したデータから、位置補正、感度補正 などの処理をおこない、 1 枚の画像に合成するソフトウェア

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

複数ショット 合成

(37)

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) 練習用

データ (5shot) を解析した場合にかかった時間、 b) 別のデータ (17shot) を解析した場合にかかった時間

37

2010-11-26

第3回データ科学ワークショップ

(38)

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

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

ワークフローのグラフ

(39)

SDFRED1 ワークフローの経過時間

2010-11-26

第3回データ科学ワークショップ

39

(40)

Pwrake 開発の今後の予定

• 障害対策

– 障害情報の取得 – タスクの再試行 – 故障ノードの判別

• 機能向上

– 資源に応じた実行制御 – 接続方法

• 性能向上

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

(41)

まとめ

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

• ワークフロー記述言語として、 Rake を採用

• 並列分散ワークフロー処理システム Pwarke を 開発

• 分散ファイルシステム Gfarm を用いることによ り、スケーラブルな性能向上を達成

2010-11-26

第3回データ科学ワークショップ

41

参照

関連したドキュメント

行列の標準形に関する研究は、既に多数発表されているが、行列の標準形と標準形への変 換行列の構成的算法に関しては、 Jordan

研究開発活動の状況につきましては、新型コロナウイルス感染症に対する治療薬、ワクチンの研究開発を最優先で

機械物理研究室では,光などの自然現象を 活用した高速・知的情報処理の創成を目指 した研究に取り組んでいます。応用物理学 会の「光

挿し木苗生産システムの開発を行った。2種のフタバガキ科樹種、S/to剛Sc伽jca

方法 理論的妥当性および先行研究の結果に基づいて,日常生活動作を構成する7動作領域より

「心理学基礎研究の地域貢献を考える」が開かれた。フォー

過水タンク並びに Sr 処理水貯槽のうち Sr 処理水貯槽(K2 エリア)及び Sr 処理水貯槽(K1 南エリア)の放射能濃度は,水分析結果を基に線源条件を設定する。RO

過水タンク並びに Sr 処理水貯槽のうち Sr 処理水貯槽(K2 エリア)及び Sr 処理水貯槽(K1 南エリア)の放射能濃度は,水分析結果を基に線源条件を設定する。RO