21
Copyright 2011 Denso IT Laboratory, Inc. All rights reserved 2011/8/24 デデデデデデデデデデデデデデ デデ

Windows HPC Server 講習会 第1回 導入編 2/2

Embed Size (px)

DESCRIPTION

Windows HPC Serverに関する講習会。今回はHPC特に分散並列処理に関する歴史とHPC Serverの立ち位置、HPC serverのアーキテクチャと導入までを紹介しています。また社内利用者の多いMatlabをHPC Serverと絡めて利用するシナリオを独自に調査してあります。 https://tech.d-itlab.co.jp/omasutani/

Citation preview

Page 1: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

2011/8/24デンソーアイティーラボラトリ 増谷

Page 2: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

Page 3: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

利用イメージ“ ジョブ”を定義

ジョブの中身(プログラム)を用意ジョブの分割方法を定義

実行ジョブマネージャから実行

ジョブ

ジョブマネージャ

ジョブ

ジョブ

ジョブ

Page 4: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

タスクの種類1. シリアルアプリケーション

単純な(パラメータを持たない)独立したバッチ処理

例:ランダムなサンプルデータ生成 …2. パラメータスイープ

インデックス付の入出力ファイルをバッチ処理例:大量画像処理、大量 Web ページ処理…

3. (番外編) Matlab から利用いろいろなやり方

Page 5: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

1. シリアルアプリケーションあまり使わないが、基

本操作を覚えるには良い“ ジョブの詳細” でジョ

ブ名などを設定

一過性のものなのであまり考えなくてい

Page 6: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

1. シリアルアプリケーションタスクを指定

コマンドライン実行ファイルなら何でも良い

追加をクリックでタスクを

追加

コマンドを指定

作業ディレクトリを指定

標準出力をファイルに落と

Page 7: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

1. シリアルアプリケーションリソースの選択

実行に利用するコンピュータを指定

通常はすべてに投げれば良い

使いたいグループを追加

(しなくても良い)

実行に利用する最低スペックを指定でき

Page 8: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

1. シリアルアプリケーション実行(ジョブの送信)

結果のビュータスクIDを選択す

利用されたノードがわかる

Page 9: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

2. パラメータスイープほとんど同じ要領“ 新しいジョブ” で” パラメータースイープタスク”

を追加

Page 10: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

2. パラメータスイープパラメータを指定して

コマンドライン実行“ * “ で表現入力パラメータ、入力

ファイル名、出力ファイルなどに指定できる

ファイルをスイープしたい場合は内部で変換するか、ファイル名を連番にすればよい

Page 11: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

2. パラメータスイープ同じ共有フォルダに出

力するようにしておけば、結果が集まるバッチ内で指定して

もいい

Page 12: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

ここまででできることexe 、 bat にできれば、なんでもいい。

C/C++/.NET/Java/Ruby/Python …Matlab もコンパイルすれば

問題を分割するファイル処理なら、ファイル単位で分割すればよいタスクが独立な処理ならこの方法で良い

注意点共有フォルダをうまく利用して結果を集約させる

別にDBにアクセスしてもいい なるべくローカルフォルダは利用しない(汚すので)

Page 13: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

3.Matlab から HPCMatlab で並列計算と言えば

Parallel Computing Toolboxhttp://

www.mathworks.co.jp/products/parallel-computing/index.html?s_cid=1209_adaw_42_226443

中々のお値段: Toolbox 17 万、 Server 102 万以上

お手軽版として HPC Server を利用単純なバッチ処理分割なら十分

Page 14: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

3.Matlab から HPCいくつか利用法がある3-1 Parallel Computing Toolbox を使う

[ こんな時 ] PCT を持ってるよ。でもサーバは無いよ

ccsscheduler というコマンドを利用 ジョブの発行 ジョブファイルのやり取り クラスタスペックの取得 など

Page 15: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

3.Matlab から HPC3-2 コンパイルするMatlab Compiler でコンパイルして、 exe にして

しまう[ こんな時 ] すでにコンパイルしている、その方が速

い以降の使い方はバッチ処理と同じノードに Matlab ライセンス不要事前に MCR を配置する必要がある?

Page 16: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

3.Matlab から HPC3-3 Matlab インタプリタをそのまま利用

[ こんな時 ] コンパイルが面倒、試行錯誤したいノードに Matlab ライセンスが必要アクセスユーザに注意が必要バッチファイルと matlab のコマンドラインモード

を利用するいくつかの方式について、 run helper を作成済み

\\cob\Public\Documents\hpc\runhelpers

Page 17: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

3.Matlab から HPC3-3-1 logfile run helper を利用コンソールの log を利用

結果ログを出すだけで良いときコマンドとログ出力ファイル名を引数として渡すだ

start /w matlab -wait -nodesktop -nosplash -minimize -r %1 -logfile %2

コマンドが終了するまで待つ

コマンドが終了するまで待つ

GUIなし

スプラッシュなし

コンソールウィンドウ最小化

第一引数を実行

ログファイル出力先

Page 18: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

3.Matlab から HPC3-3-1 logfile run helper を利用 \\cob\Public\Documents\hpc\runhelpers\matlab\matlablogfile

Job 指定方法普通のバッチコマンドと同じリソースをライセンスのあるマシンに  限定

\\cob\Public\Documents\hpc\runhelpers\matlab\matlablogfile\matlabtask.bat "disp(magic(*));exit;" \\cob\Public\Documents\hpc\apps\test\mat_result*.log

run helper バッチファイル:すべてのノードから参照できる場所

コマンド( *でパラメータスイープ)

ログの出力先( *でパラメータスイープ)

Page 19: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

3.Matlab から HPC3-3-2 command sweep run helper を利用 \\cob\Public\Documents\hpc\runhelpers\matlab\matlabcommandsweep

コマンドがログを出すことにする-logfile の出力からゴミを除去するのが面倒なときUsage(Bat 中に記載 )

%1 Matlab コマンド名 ※コマンドの引数を書かないでください。 %2 スィープパラメータ 通常はタスクプロパティの "*" を入れれば良いでしょう。 %3 コマンドの第二引数 通常はコマンドの出力先を入れれば良いでしょう。 %4 ログファイル出力先 一応デバッグのためログファイルも指定できます。

matlabcommandsweep mycommand * \\cob\Public\Documents\hpc\apps\hogehoge\matout* \\cob\Public\Documents\hpc\apps\

hogehoge\matlog*.txt

Page 20: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

Matlab ライセンスについてライセンスはユーザと紐づく

通常ドメインアカウントに紐づいているインストール時に指定したログインアカウントだけ1ユーザ4つまでインストール可能以上の方法では、4並列まで

どうにかならないか?(いわゆる Windows )タスクを利用

Page 21: Windows HPC Server 講習会 第1回 導入編 2/2

Copyright 2011 Denso IT Laboratory, Inc. All rights reserved

3.Matlab から HPC3-3-3 “command sweep multi” run helper を利

用各マシンの Matlab インストールユーザで実行 ブリッジするバッチファイルをローカルに配布 一度だけ認証すると、以降認証いらず

Run_matlab_by_validuserRun_matlab_by_validuser

matlabcommandsweepxmatlabcommandsweepx

各マシンのライセンスユーザで一度実行しておく