ハンズオン・チュートリアル...2020/06/15 · windows 10 version 1709で正式採用...
TRANSCRIPT
並列計算機講習会/第二部/15:15-17:15
ハンズオン・チュートリアル
1
本郷 研太
北陸先端科学技術大学院大学 情報社会基盤研究センター/准教授
はじめる前に
2
【環境の確認】 学外からの参加の場合、SSL-VPN接続しているか?
障害情報やユーザー間の情報共有 【MPCグループ加入のススメ】
https://www.jaist.ac.jp/iscenter/mpc/manual/7/
https://www.jaist.ac.jp/iscenter/remote-access/ssl-vpn/pc/
【ターミナル環境】 Surfaceユーザ:「mobaXterm」はインストール済み?
【困ったときは?】 センターHP: https://www.jaist.ac.jp/iscenter/
問い合わせフォーム/ユーザー窓口/メール([email protected])
本日の内容
3
【ターミナル並列】 はじめに ハンズオン演習の準備
PCクラスタ接続/教材準備/オンラインストレージ
ターミナル並列化 Python/Cによる数値計算:スクリプト言語とコンパイル言語
Gaussian/Matlab 【実アプリ】
仮想環境/コンテナ利用について
ホームディレクトリへのアクセス/UNIXコマンド/ジョブ投入
【付録】 TensorFlow/Materials Studio/WSL
講習の目的 【対象】
JAISTの計算機環境を使ってみたいが、
4
自分で始めるには敷居が高い、
様々な実アプリがあるので、それらを紹介する 高度な専門知識がなくても、「使える」ことを実感
ユーザの心理的障壁は大分軽減できるはず...
【目的】 と思っているユーザ
※個別の詳細は、各種講習会で。
ターミナル並列
5
並列化プログラミング MPIやOpenMPなどの言語理解・運用が必要
6
高並列化効率の実現は、プロでも難しい 京コンピュータでも、40%程度だったりする...
プログラム/アルゴリズムの理解が必要
敷居が高い... 中・上級者向け
ソースコードのどこを並列化するか?
アーキテクチャの理解が必要 インターコネクションのトポロジ形状は?
ロードバランスを勘案
「ターミナル並列化」?
7
例:複数の乱数種/相互作用パラメータのモンテカルロ計算(独立)
並列化プログラミングなしで「並列計算」可能な問題もある
「互いに独立な計算」 “パラメータを振る”系の問題
プログラミング初心者でもできる(はず)
なんちゃって並列計算
【ターミナル並列化の手続き】 1. パラメータ1/2/3/4…の各々に対してターミナルを開く
2. 各ターミナル上でプログラムを編集(コンパイル)
3. 各ターミナル上で実行;パラメータ1/2/3/4...の結果
以上
イメージ的には...
8
4つの異なるパラメータに対して、4つの異なるターミナル 更に、4つの異なるディレクトリで作業
ハンズオン演習の準備
9
※PCクラスタ(vpcc)を使用
ホームディレクトリへのアクセス(Surface編)
10
- ホームディレクトリに接続
- J-storageからファイルをダウンロード
- SurfaceのDesktopに保存
- 仮想デスクトップを立ち上げて、Windows10に接続
- 仮想デスクトップ上で「デスクトップのパス」を確認
- エクスプローラを立ち上げて、上記のパスを入れる
AD¥userID
- Surface上のファイルをホームディレクトリにコピー
J-storage(2018)
11
URL
QRコード
https://jstorage-2018.jaist.ac.jp/s/ipswpaJkpSLeLkQ
PWD: 本日の日付西暦8桁
仮想環境へのログイン
12
"VMware Horizon Client"を利用して接続
JAISTクラウドデスクトップ(VDI)
Windows/Linux環境 各種計算用ソフトウェアがプリインストール
Windows環境を利用 MATLAB/Materials Studio利用可能
"VMware Horizon Client"で検索
+新規サーバで”vdi-portal.jaist.ac.jp"を追加
はがき記載/ドメイン:ADを確認 ユーザアカウント/パスワードを入力
Windows 10 (JA Keyboard)を選択 実用的には好きな環境を選択
パスの確認
13
右クリック
リモートデスクトップ側
パスの確認
14
リモートデスクトップ側
デスクトップにアクセス
15
Surface側
16
Surface側
デスクトップにアクセス
ad¥s201XXXX
リモートデスクトップログイン時のパスワード
Surface側
17
デスクトップにアクセス
Surface側
18
デスクトップにアクセス
作業手順
19
- 教材ファイルセットのコピー・展開 mv ~/.windows/Desktop/20200615_workdir.tar.gz ~/ tar xvzf 20200615_workdir.tar.gz
- vpccにログイン ssh –Y vpcc -l s201XXX
qsub –q SEMINAR -I
- インタラクティブモードに入る
演習1
20
- ファイルの中身を確認
more hello.c; cat hello.py
python hello.py
- 作業ディレクトリに移動 cd ./work_20200615/0_Prep
ls
- ファイルの確認
- pythonの実行
- Cの実行 gcc hello.c; ./a.out
演習2
21
- hello.py/hello.cの編集
hellàhello
- hello.py/hello.cの実行
以上が「ターミナル並列化」に必要な作業
% gedit hello.py
% gedit hello.c
演習3
22
- hello.cのバッチ実行
ターミナル並列化では利用しないが、各計算機講習会で使用
qsub pbs_c.sh
cat pbs_c.sh スクリプトファイルの確認
バッチジョブの投入
バッチジョブの確認 qstat
計算結果の確認 cat test.oxxxx
「xxxx.vpcc-con」ジョブID
- hello.pyのバッチ実行
ターミナル並列化
23
実施内容
24
2次元関数のグローバルミニマム解の探索
初期値依存で局所解にハマる à複数初期値で探索 ターミナル並列化
Python計算の準備
25
- ターミナルを5つ立ち上げ、インタラクティブモードに入る
- 作業領域 : $HOME/20200615_workdir/1_1_Python
x160y160/ x160y80/ x80y160/ x80y80/ ※各数値は、初期位置(x,y)
ssh –Y vpcc -l s201XXX; qsub –q SEMINAR -I
- 初期値の編集: gedit Optimization2D.py
#BEGIN x_initial = 160.0à 160/80/80 y_initial = 160.0à 80/160/80 #END
※他にも、emacs –nw Optimization2D.py
Python計算実行
26
- tcsh環境àbash環境: bash
- 実行: \time python Optimization2D.py
- 計算時間をメモる: 「realの箇所」 real 0m57.117s user 0m56.455s sys 0m0.065s
結果が出るまで暫く待つ
- プロット: gnuplot plot.gp - 結果の確認: evince out.eps
5番目のターミナル上で、 cd $HOME/20200615_workdir/1_1_Python gedit realtime.data
C計算の準備
27
- ターミナルを5つ立ち上げ、インタラクティブモードに入る
- 作業領域 : $HOME/20200615_workdir/1_2_C
x160y160/ x160y80/ x80y160/ x80y80/ ※各数値は、初期位置(x,y)
ssh –Y vpcc -l s201XXX; qsub –q SEMINAR -I
- 初期値の編集: gedit/emacs –nw Optimization2D.c
//BEGIN double x_initial = 160.0; à 160/80/80 double y_initial = 160.0; à 80/160/80 //END
C計算実行
28
- tcsh環境àbash環境: bash
- 実行: \time ./a.out
- 計算時間をメモる: 「realの箇所」
結果が出るまで暫く待つ
- プロット: gnuplot plot.gp
- 結果の確認: evince out.eps
- コンパイル : gcc Optimization2D.c -lm
PythonとCの比較:結果は?
並列計算機講習会/第二部/15:15-17:15
ハンズオン・チュートリアル
29
本郷 研太
北陸先端科学技術大学院大学 情報社会基盤研究センター/准教授
【実アプリ】
利用可能な実アプリ
30
Materials Studio:物質科学シミュレーションパッケージ
適宜、途中退室可。
MATLAB:数値解析ソフトウエア
主に情報・知識だが、マテでも役立つ
TensorFlow:深層学習ソフトウェアライブラリ
分子科学・物質科学シミュレーションàマテ向き
Gaussian16:分子科学シミュレーション
付録
付録
Gaussianの実例
31
Gaussian16
32
Gaussian社開発の計算化学ソフトウェア(有償) ジョン・ポープル(ノーベル化学賞)が1970年設計 各種分子軌道計算や密度汎関数計算が可能
http://gaussian.com 詳細はこちら:
Gaussian16計算
33
- vpcc上で実行/作業領域への移動/モジュール読み込み $HOME/20200615_workdir/2_1_G16
- ファイルの確認 test.com/job.sh
Gaussian入力ファイル/バッチジョブスクリプト
- バッチジョブの投入/ステータス確認 qsub job.sh/qstat
- 出力ファイル確認/可視化
module load app_g16
test.log test.chk/gview
計算結果の可視化/gview
34
test.chkを開く
35
分子構造の確認
36
MOの可視化
37
右クリックà「Results」à「Surfaces/Contours...」
CUBE生成
38
「New Action」à「New Cube」
HOMO/LUMO
39
HOMO/LUMO
40
HOMO
LUMO HOMO表示
HOMO
41
Matlabの実例
42
MATLAB
43
米国MathWorks社開発の数値解析ソフトウエア(有料)
今回は仮想環境で利用
行列計算、機械学習、グラフ化等々
MATrix LABoratory
多彩な機能拡張が可能
理工学、経済学など幅広い業界で利用されている/100万人規模
(個人PCでも利用可à詳細はセンターHP)
Simulink/Toolbox/Compiler/Symbolic Math Toolbox etc.
公式のオンライントレーニングなども充実
https://www.jaist.ac.jp/iscenter/software/science/matlab/
MATLABの実例
44
Gaussianフィッテング
y(x) = a1 *e−((x−b1)/c1)
2
+ a2 *e−((x−b2 )/c2 )
2
+!+ aN *e−((x−bN )/cN )
2
a1,b1,c1,a2 ,b2 ,c2 ,!aN ,bN ,cN{ }
データの プロット
Gauss型関数の線形和でフィッティング
仮想環境へのログイン
45
"VMware Horizon Client"を利用して接続
JAISTクラウドデスクトップ(VDI)
Windows/Linux環境 各種計算用ソフトウェアがプリインストール
Windows環境を利用 MATLAB/Materials Studio利用可能
"VMware Horizon Client"で検索
+新規サーバで”vdi-portal.jaist.ac.jp"を追加
はがき記載/ドメイン:ADを確認 ユーザアカウント/パスワードを入力
Windows 10 (JA Keyboard)を選択 実用的には好きな環境を選択
MATLABの起動
46
"MATLAB R2017b"を検索・起動
作業領域に移動
47
$username/work_20200615/2_2_Matlab Command WindowでもUNIX的に移動可能
data.dat : データファイル gfit.m : MATLABスクリプト
MATLABの実行
48
gfit.mをダブルクリックして、「Run」を実行
MATLABの実行
49
gfit.mをダブルクリックして、「Run」を実行
Command Windowでも、「>>gfit.m」とすればOK
MATLABの実行1
50
gfit.mをダブルクリックして、「Run」を実行
Command Windowでも、「>>gfit.m」とすればOK
MATLABの実行2
51
Command Window
しばらくすると、結果が得られる
入力:データとガウス関数の個数
MATLABの結果
52
出力:フィッティング図
各種フォーマットで保存可能 (e.g. eps/bmp...)
まとめ
53
JAIST環境で利用可能な実アプリのデモ
Materials Studio:物質科学シミュレーションパッケージ
MATLAB:数値解析ソフトウエア
TensorFlow:深層学習ソフトウェアライブラリ
Gaussian16:分子科学シミュレーション
講習会後の展開は? 並列計算機講習会 各種オンラインチュートリアル ネット上で様々な情報源がある Youtubeなどにも動画アリ
付録 WSL:Windows環境上のUNIX環境構築
Linux環境構築 Windows環境からリモート環境への接続
Surface端末上での
TeraTerm、Puttyなどで、SSH接続 使い勝手は良いか? 個人的には...
解決方策は? 最新のWindows10環境ならば、Linux環境構築可能!
OSアップデート -> WSL(Windows Subsystem for Linux) LinuxをWindows10上でネイティブ実行するための互換レイヤー
Windows 10 version 1709で正式採用 version 1607とversion 1703ではベータ版
54注)Microsoft Account取得者限定
Ubuntuインストール手順 Surface端末上
- Microsoft Accountの取得 ※Microsoft Store利用のため
- OS アップデート - WSL環境構築
- Microsoft Store からUbuntuを入手・インストール
55
作業手順の流れ
どうしてもインストールが無理な場合には、 TeraTerm/Putty利用でも代用できるが、 折角なので、自身のPCにLinux環境を導入しよう!
WSL環境構築1
56
WSL環境構築2
57
Ubuntu環境構築1 Microsoft Storeへ行く
58
Ubuntu環境構築2
ユーザー名 任意
59
付録/実アプリ
60
TensorFlow
Materials Studio
コンテナ環境を使う lmpccの講習会で実習あり
仮想環境を使う 利用情報
https://www.jaist.ac.jp/iscenter/software/science/materialsstudio/
TensorFlowの実例
61
TensorFlow
62
機械学習のためのライブラリ Google開発
JAISTではコンテナで提供
Singularityとは
• コンテナ化仮想化技術のひとつ• 米LBNL(Lawrence Berkeley National Laboratory)生まれ• HPC環境で使うために生まれたコンテナ実装
• GPU, InfiniBandが利用できる• MPIが利用できる
• ユーザ権限でプログラムを実行, ストレージへアクセス可能• Dockerイメージを変換して利用可能
Docker → Singularity ※DockerからSingularityへの移行方法は、7/10付講習会参照
コンテナ型
63
(出典:https://knowledge.sakura.ad.jp/13265/)
ゲストOSなしで軽量
64
◯☓判別(自己符号化)
画像認識
65
(出典:https://iotnews.jp/archives/11680)
66
◯☓判別(自己符号化)
学習の初期 学習の後期
これらのデータを 学習して行く
67
TensorFlowの実行
インタラクティブモードに入る % qsub –I % cd $HOME/20200615_workdir/3_TensorFlow % singularity shell /work/Samples/Images/tensorflow_1.14.0.sif
作業領域 : $HOME/20200615_workdir/3_TensorFlow
data_base/ 学習とテストに使うデータセット print.py データの可視化に使うスクリプト tf.py 機械学習を行うスクリプト
Jobの実行 % python tf.py データの可視化 % python print.py result/image/c30.dat
標準出力は、平均的な○✕
SEMINARは使えない...
Materials Studioの実例
68
Materials Studio
69
BIOVIA社開発の物質科学計算ソフトウェア(有償)
これ基盤に、第一原理計算、分子動力学計算、 メソスケール計算、化学情報学計算の各種モジュール
構造モデリングの構築に便利
JAISTでは仮想環境上で、Visualizer利用可能
Visualizer:
http://accelrys.com/products/collaborative-science/biovia-materials-studio/
その他のモジュールについては、センターHP参照 https://www.jaist.ac.jp/iscenter/software/science/materialsstudio/
注)以下の手続きは、環境により前後することも
Materials Studioの準備
70
Visualizerの設定
https://www.jaist.ac.jp/iscenter/software/science/materialsstudio/
Materials Studioの起動 "Materials Studio"を仮想環境上で検索・起動 最初の起動時には結構時間を要することも
Tools/サーバコンソール/ サーバーゲートウェイ/新規作成
追加:pcc.jaist.ac.jp/18889
Materials Studio実行1
71
新規プロジェクト 例えば、「seminar」とでもしよう
Materials Studio実行2
72
結晶構造の読み込み:今回は「ダイヤモンド」
Visualizerを使えば、様々結晶、界面、表面も生成可能
Materials Studio実行3
73
CASTEPによるバンド計算
「Calculation」を選択
Materials Studio実行4
74
計算パラメータ設定
Properties Band structure Density of states
Job Control Gateway/Queue # of cores
こんなパネルが現れる
実行!
Materials Studio実行5
75
以下の警告がでるが、「Yes」とする
きちんと計算が走っていることを確認
Materials Studio実行6
76
結果の確認
76
「Analysis」を選択
Materials Studio実行7
77
計算終了すると
Materials Studio実行8
78
バンド図と状態密度図を描画