windows hpc server 講習会 第1回 導入編 2/2
DESCRIPTION
Windows HPC Serverに関する講習会。今回はHPC特に分散並列処理に関する歴史とHPC Serverの立ち位置、HPC serverのアーキテクチャと導入までを紹介しています。また社内利用者の多いMatlabをHPC Serverと絡めて利用するシナリオを独自に調査してあります。 https://tech.d-itlab.co.jp/omasutani/TRANSCRIPT
Copyright 2011 Denso IT Laboratory, Inc. All rights reserved
2011/8/24デンソーアイティーラボラトリ 増谷
Copyright 2011 Denso IT Laboratory, Inc. All rights reserved
Copyright 2011 Denso IT Laboratory, Inc. All rights reserved
利用イメージ“ ジョブ”を定義
ジョブの中身(プログラム)を用意ジョブの分割方法を定義
実行ジョブマネージャから実行
ジョブ
ジョブマネージャ
ジョブ
ジョブ
ジョブ
Copyright 2011 Denso IT Laboratory, Inc. All rights reserved
タスクの種類1. シリアルアプリケーション
単純な(パラメータを持たない)独立したバッチ処理
例:ランダムなサンプルデータ生成 …2. パラメータスイープ
インデックス付の入出力ファイルをバッチ処理例:大量画像処理、大量 Web ページ処理…
3. (番外編) Matlab から利用いろいろなやり方
Copyright 2011 Denso IT Laboratory, Inc. All rights reserved
1. シリアルアプリケーションあまり使わないが、基
本操作を覚えるには良い“ ジョブの詳細” でジョ
ブ名などを設定
一過性のものなのであまり考えなくてい
い
Copyright 2011 Denso IT Laboratory, Inc. All rights reserved
1. シリアルアプリケーションタスクを指定
コマンドライン実行ファイルなら何でも良い
追加をクリックでタスクを
追加
コマンドを指定
作業ディレクトリを指定
標準出力をファイルに落と
す
Copyright 2011 Denso IT Laboratory, Inc. All rights reserved
1. シリアルアプリケーションリソースの選択
実行に利用するコンピュータを指定
通常はすべてに投げれば良い
使いたいグループを追加
(しなくても良い)
実行に利用する最低スペックを指定でき
る
Copyright 2011 Denso IT Laboratory, Inc. All rights reserved
1. シリアルアプリケーション実行(ジョブの送信)
結果のビュータスクIDを選択す
る
利用されたノードがわかる
Copyright 2011 Denso IT Laboratory, Inc. All rights reserved
2. パラメータスイープほとんど同じ要領“ 新しいジョブ” で” パラメータースイープタスク”
を追加
Copyright 2011 Denso IT Laboratory, Inc. All rights reserved
2. パラメータスイープパラメータを指定して
コマンドライン実行“ * “ で表現入力パラメータ、入力
ファイル名、出力ファイルなどに指定できる
ファイルをスイープしたい場合は内部で変換するか、ファイル名を連番にすればよい
Copyright 2011 Denso IT Laboratory, Inc. All rights reserved
2. パラメータスイープ同じ共有フォルダに出
力するようにしておけば、結果が集まるバッチ内で指定して
もいい
Copyright 2011 Denso IT Laboratory, Inc. All rights reserved
ここまででできることexe 、 bat にできれば、なんでもいい。
C/C++/.NET/Java/Ruby/Python …Matlab もコンパイルすれば
問題を分割するファイル処理なら、ファイル単位で分割すればよいタスクが独立な処理ならこの方法で良い
注意点共有フォルダをうまく利用して結果を集約させる
別にDBにアクセスしてもいい なるべくローカルフォルダは利用しない(汚すので)
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 を利用単純なバッチ処理分割なら十分
Copyright 2011 Denso IT Laboratory, Inc. All rights reserved
3.Matlab から HPCいくつか利用法がある3-1 Parallel Computing Toolbox を使う
[ こんな時 ] PCT を持ってるよ。でもサーバは無いよ
ccsscheduler というコマンドを利用 ジョブの発行 ジョブファイルのやり取り クラスタスペックの取得 など
Copyright 2011 Denso IT Laboratory, Inc. All rights reserved
3.Matlab から HPC3-2 コンパイルするMatlab Compiler でコンパイルして、 exe にして
しまう[ こんな時 ] すでにコンパイルしている、その方が速
い以降の使い方はバッチ処理と同じノードに Matlab ライセンス不要事前に MCR を配置する必要がある?
Copyright 2011 Denso IT Laboratory, Inc. All rights reserved
3.Matlab から HPC3-3 Matlab インタプリタをそのまま利用
[ こんな時 ] コンパイルが面倒、試行錯誤したいノードに Matlab ライセンスが必要アクセスユーザに注意が必要バッチファイルと matlab のコマンドラインモード
を利用するいくつかの方式について、 run helper を作成済み
\\cob\Public\Documents\hpc\runhelpers
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なし
スプラッシュなし
コンソールウィンドウ最小化
第一引数を実行
ログファイル出力先
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 バッチファイル:すべてのノードから参照できる場所
コマンド( *でパラメータスイープ)
ログの出力先( *でパラメータスイープ)
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
Copyright 2011 Denso IT Laboratory, Inc. All rights reserved
Matlab ライセンスについてライセンスはユーザと紐づく
通常ドメインアカウントに紐づいているインストール時に指定したログインアカウントだけ1ユーザ4つまでインストール可能以上の方法では、4並列まで
どうにかならないか?(いわゆる Windows )タスクを利用
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
各マシンのライセンスユーザで一度実行しておく