LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 5 years have passed since last update.

[Rescale ハンズ・オン] STREAM on Rescale によるパラメータスタディー

Last updated at Posted at 2016-08-22

ソフトウェアクレイドルさまのSTREAMを用いたハンズ・オンです。
おそらくそれなりの金額は必要ですので、心してご実施ください!
会社の予算で試されるのが良いかと思います!

0. 計算概要: 筐体内のCPU冷却問題

STREAMをつかって筐体内のCPUの冷却問題を実際に計算してみます。4角の窓のようなものがファンをモデル化した流入口になっており、ここから空気が流入しCPUを冷却を計算します。Rescaleのパラメータスタディー機能を使って、STREAMの計算を複数同時に流してパラメータスタディーを行います。

Kobito.VEDAeK.png

入力因子と出力因子の決定

入力因子

パラメータスタディーを行う因子, ここでは境界条件であり下記のように定義します。

  • VELOCITY: ファンから送り込まれる空気の流入速度 [m/s]
  • HEAT: CPUの発熱量 [W]

出力因子

評価すべき特性値であり下記のように定義します。

  • SURT_MAX: CPUの温度 [K]

物理的イメージ

一応、物理モデルを解説しておきます。オームの法則(V=RI)に例えると、以下のように考えることができます。

  • V: CPU温度 [K]
  • I: CPU発熱量 [W]
  • R: ファンからの流入速度で変わる可変抵抗 [K/W]

要するに、筐体内の流れによって、この"R"の状態が変わると考えることができるわけです(強制対流熱伝達係数が変わる)。STREAMでは、このような "熱回路網モデル" はもちろん用いませんが、モデルを理解するのに都合が良いのでご紹介しました。

全体の操作の流れ

全体の流れとしては下記です。

  • Rescaleへログインし新しいジョブを作成する
  • 実験計画法(DOE)を選択
  • 入力ファイルのアップロード: runSTREAM.shのアップロード
  • 境界条件で使用する32cases分のパラメータセットを定義
  • 境界条件の設定用テンプレートの作成とアップロード
  • STREAMの選択と実行コマンドの入力, HWの選択とコア数の決定
  • CPU温度抽出用のextract.shの作成とアップロード
  • 計算の実行

[NOTE]
STREAMでは、.s ファイルが InputFile ですが、この中に、今回、パラメータスタディーすべき境界条件の情報も含まれています。そのため、.s ファイルは、"入力ファイルのアップロード"で行わず、"境界条件の設定用テンプレート" としてファイルをアップロードします。

1. ハンズ・オンのスタート

[STEP0:Login] Rescaleへログインし新しいジョブを作成する

Rescaleにアクセスします。画面右上からログインしてください。

[STEP1:ジョブの作成] Jobの作成し実験計画法(DOE)を選択

1.1 ジョブの作成

  • 画面左上、ジョブ作成をクリックします。

Kobito.xSh6Ts.png

1.2 ジョブ名とジョブの種類の決定

  • 画面右上の "ジョブの種類" のセレクトメニューから実験計画法を選択します。
  • 画面左上からジョブ名を決定します。今回は "STREAM_DEMO" にしました。

Kobito.3CJxXy.png

[STEP2:入力] 入力ファイルのアップロード

本来この画面で、入力ファイル一式、例えばメッシュファイルなどをアップロードするのですが、STREAMの場合は "テンプレート" でアップロードするファイルにすべての計算モデルの情報が書き込まれていますので、ここではランスクリプトのみアップロードすることにします。

2.1 ランスクリプト: runSTREAM.sh の作成

このリンクから "runSTREAM.sh" をコピペして、ローカルマシンに保存します。

2.2 ランスクリプトのアップロード

  • ファイルをアップロードから "runSTREAM.sh" をアップロードします。
  • 入力ファイル選択に"runSTREAM.sh" があることを確認します。
  • 次へ をクリックします。

Kobito.R2P9VU.png

[STEP3:並列設定] 境界条件で使用する32cases分のパラメータセットを定義

  • 自分で変数を指定する をクリックします。
  • 組み合わせ をクリックします
  • CPU発熱量: 変数 "HEAT" を追加します。
  • 流入速度: 変数 "VELOCITY" を追加します。
  • 保存されている変数の確認します。
  • 次へ をクリックします。
項目 変数1 変数2
名前 HEAT VELOCITY
最小 3.0 0.5
最大 6.0 4.0
刻み幅 1.0 0.5

Kobito.Efl2jg.png

[STEP4:テンプレート] テンプレートの作成とアップロード

4.1 テンプレートの作成

テンプレートの保存

このリンクから "template.s" をコピペでローカルマシンに保存します。

流入速度とCPUの発熱量は、このファイルに記述されており、STREAMではこれ自体が入力ファイルとなっています。つまり、入力ファイルそのものがテンプレート化されます。

テンプレート化のポイント(実施済み)

下記のように入力因子を数値ではなく変数名で置き換えます。
?string(0.000E00) は実際に数値が入った時の書式を明示しています。書式はこちらを参照してください。

CPU発熱量設定
source    0   ! 発熱18
      ${HEAT?string("0.000E00")}    2
流入速度設定
fanc    0   ! ファン1
      ${VELOCITY?string("0.000E00")}  -0.00000e+000  -0.00000e+000   2.00000e+001   1

4.2 テンプレートの設定

  • "ファイルアップロード" から、"template.s" をアップロードします
  • "テンプレート ファイルを選択" に "template.s" があることを確認します
  • "ファイル名" にパスを含めて下記を入力します
  • '次へ' をクリックします
ファイル名(計算実施時に使うテンプレートのファイル名)
./inputFile.s

Kobito.RqIQ8K.png

[STEP5:SW/HWの選択] アプリケーションの設定と、クラスタ環境の決定

5.1 SWの選択

  • ソフトウェアの選択から、CRADLEのscStream(日本版ではSTREAMのこと)を選択します
  • バージョン '12.0.0' を選択します。
  • 実行コマンドとして下記を入力します(今回,Webから *.s ファイルをコピペするため、MacとWinで操作が違ってきていることに注意)
実行コマンド(Mac/Linux)
iconv -f UTF8 -t SHIFT-JIS inputFile.s > inputFile_SJIS.s
./runSTREAM.sh 8 ./inputFile_SJIS.s
実行コマンド(Windows)
./runSTREAM.sh 8 ./inputFile.s

Kobito.lyBYH8.png

5.2 HWの選択

  • Nickel を選択します
  • もし 低優先度 の、"i"のマークが緑であれば、これを選択します。
  • ノードあたりのコア数 に8, スロット数 を2に設定します。意味合いは、8コアのシステムが2つあるという意味です。ノードと書いてありますが1システムあたりです。
  • 次へ をクリックします。

Kobito.20MTbn.png

[STEP6:ポストプロセッシング] CPU温度抽出用のextract.shの作成とアップロード

6.1 extract.sh の作成

このリンクから、"extract.sh" をコピペでローカルに保存します。

正しく計算を終了すると、"process_output.log" ファイルが出力されその後半に下記のような記述があります。SURT MAX がCPU表面温度の最大値を示しますので、これをこのスクリプトで抽出しています。一応、参考としてSURT MIN も抜き出しています。

出力ファイルの抜粋例
<SECTION Name="MIN. AND MAX.(SURFACE)">
 //MIN. AND MAX.(SURFACE)//
   VAR.       VALUE         X           Y           Z             I     J     K   IBK
   HTRC MIN   3.99739      0.5980      0.4500      2.5000E-03   140   111     1     0
   HTRC MAX   162.336      0.5580      0.4178      1.5000E-02   130   103     4     0
   SURT MIN   20.0000       0.000      0.4049      0.2506         1   100    59     0
   SURT MAX   53.5282      0.3782      0.1175      1.5000E-02    89    36     4     0
   HTFX MIN  -949.794      0.3782      0.1138      1.7000E-02    89    35     5     0
   HTFX MAX   949.794      0.3782      0.1138      1.7000E-02    89    35     5     0
</SECTION>

6.2 ポストプロセッシングの設定

  • 下図のように "ファイルをアップロード" から上記で作成したextract.shをアップロードします。
  • ポストプロセッシングコマンドに下記コマンドを入力します。
  • 入力後、次へ をクリックします。
ポストプロセッシングコマンド
./extract.sh

Kobito.fY2lsU.png

[STEP7: 計算の実行]

  • 内容を確認し問題がなければ計算を実行します。

Kobito.fiHLg6.png

[STEP8: 計算状況の確認]

  • 計算を実行すると下記画面に、移行します。
  • クラスタにsshログインも可能です。予めSSHキーを設定しておけば,下図の赤枠のようにsshでログインする方法が記載されています。

Kobito.U4m6Rt.png

2. 計算結果の確認

0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up