SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
ALPS アプリケーション実行チュートリアル 
ALPS アプリケーション実行チュートリアル 
CMSI ハンズオン 
ALPS Collaboration 
http://alps.comp-phys.org/ 
2014-10-16 
1 / 33
ALPS アプリケーション実行チュートリアル 
Outline 
1 ALPS シミュレーションの流れ 
2 ALPS チュートリアル 
3 ALPS Lattice & Model チュートリアル 
2 / 33
ALPS アプリケーション実行チュートリアル 
ALPS シミュレーションの流れ 
●● 
ALPS によるシミュレーション| ワークフロー 
Parameter File 
LATTICE = "square lattice" 
MODEL = "spin" 
L = 16 
Jxy = 1 
Jz = 2 
SWEEPS = 10000 
THERMALIZATION = 1000 
{ T = 0.1 } 
{ T = 0.2 } 
{ T = 0.5 } 
{ T = 1.0 } 
parameter2xml 
tool 
application programs 
(0,1) 
Python based evaluation tools 
Parameter XML File 
Model XML File 
Σ ] Σ i 
< i,j> 
[ Sz 
i Sz 
j + ( S+ 
i S-j 
+ S-i 
S+ 
j )/ 2 - h 
Outputs in HDF5 & XML 
Quantum Monte Carlo 
H = J 
Quantum Lattice Model 
Exact Diagonalization DMRG 
Lattice XML File 
square lattice 
<LATTICES> 
<LATTICE name="square lattice" dimension="2"> 
<PARAMETER name="a" default="1"/> 
<BASIS><VECTOR>a 0</VECTOR><VECTOR>0 a</VECTOR></BASIS> 
</LATTICE> 
<UNITCELL name="simple2d" dimension="2"> 
<VERTEX/> 
<EDGE> 
<SOURCE vertex="1" offset="0 0"/> 
<TARGET vertex="1" offset="0 1"/> 
</EDGE> 
<EDGE> 
<SOURCE vertex="1" offset="0 0"/> 
<TARGET vertex="1" offset="1 0"/> 
</EDGE> 
</UNITCELL> 
<LATTICEGRAPH name="square lattice"> 
<FINITELATTICE> 
<LATTICE ref="square lattice"/> 
<EXTENT dimension="1" size="L"/> 
<EXTENT dimension="2" size="L"/> 
<BOUNDARY type="periodic"/> 
</FINITELATTICE> 
<UNITCELL ref="simple2d"/> 
</LATTICEGRAPH> 
</LATTICES> 
(0,0) 
(1,0) 
<MODELS> 
<BASIS name="spin"> 
i 
Sz 
<SITEBASIS name="spin"> 
<PARAMETER name="local_S" default="1/2"/> 
<QUANTUMNUMBER name="S" min="local_S" max="local_S"/> 
<QUANTUMNUMBER name="Sz" min="-S" max="S"/> 
<OPERATOR name="Sz" matrixelement="Sz"/> 
<OPERATOR name="Splus" matrixelement="sqrt(S*(S+1)-Sz*(Sz+1))"> 
<CHANGE quantumnumber="Sz" change="1"/> 
</OPERATOR> 
<OPERATOR name="Sminus" matrixelement="sqrt(S*(S+1)-Sz*(Sz-1))"> 
<CHANGE quantumnumber="Sz" change="-1"/> 
</OPERATOR> 
</SITEBASIS> 
</BASIS> 
<HAMILTONIAN name="spin"> 
<PARAMETER name="J" default="1"/> 
<PARAMETER name="h" default="0"/> 
<BASIS ref="spin"/> 
<SITETERM> 
-h * Sz(i) 
</SITETERM> 
<BONDTERM source="i" target="j"> 
J * (Sz(i)*Sz(j) + (Splus(i)*Sminus(j)+Sminus(i)*Splus(j)))/2 
</BONDTERM> 
</HAMILTONIAN> 
</MODELS> 
Plots 
DMFT 
3 / 33
ALPS アプリケーション実行チュートリアル 
ALPS シミュレーションの流れ 
●● 
シミュレーションの入出力 
典型的には、一つのシミュレーションは複数のパラメータセッ 
トからなる 
(異なる温度など) 
「ジョブ(job)」: シミュレーション全体、「タスク」の集合 
「タスク(task)」(または「simulation」): 一つのパラメータ 
セットに対する計算、「ラン」の集合 
「ラン(run)」(または「clone」): 異なる乱数の種に対する個々 
の計算 
XML 入力ファイルと出力ファイル 
myjob.in.xml 
myjob.task1.in.xml 
myjob.task2.in.xml 
myjob.task3.in.xml 
myjob.out.xml 
myjob.task1.out.xml 
myjob.task2.out.xml 
myjob.task3.out.xml 
run a simulation 
4 / 33
ALPS アプリケーション実行チュートリアル 
ALPS シミュレーションの流れ 
●● 
XML の基礎 
XML = eXtensible Marckup Landuage 
構造化文書を作成するのに適している 
「タグ」を使って、文章の構造を記述 
大文字と小文字は区別される 
XML の例: HTML (XHTML) 
an attribute 
contents 
empty element (no contents) 
opening tag 
closing tag 
<html> 
<h1 align=”center”>Header</h1> 
<p>A paragraph... And below it an image</p> 
<img src=”img.jpg”/> 
</html> 
5 / 33
ALPS アプリケーション実行チュートリアル 
ALPS シミュレーションの流れ 
ー● 
XML の文法 
「開始タグ」には対応する「終了タグ」が必要 
ある要素の「開始タグ」と終了タグは共通の親ノードに含まれ 
なければならない 
XML の「木」表示 
html 
h1 p img 
align="center" Header A paragraph... src="img.jpg" 
<html> 
<h1 align=”center”>Header</h1> 
<p>A paragraph... And below it an image</p> 
<img src=”img.jpg”/> 
</html> 
⇒ 
XML では、ユーザが独自のタグ(要素の名前) を定義すること 
が可能 
(参考: Document Type De
nition (DTD), XML Schema) 
6 / 33
ALPS アプリケーション実行チュートリアル 
ALPS シミュレーションの流れ 
ー● 
なぜXML を使うのか? 
plain text file 
# parameters 
10 0.5 10000 1000 
# mean, error 
-10.451 0.043 
XML file 
<PARAMETER name=“L”>10</PARAMETER> 
<PARAMETER name=“T”>0.5</PARAMETER> 
<PARAMETER name=“SWEEPS”>10000</PARAMETER> 
<PARAMETER name=“THERMALIZATION”>1000</PARAMETER> 
<AVERAGE name=“Energy”> 
<MEAN> -10.451 </MEAN> 
<ERROR> 0.043 </ERROR> 
</AVERAGE> 
人間にはどちらが読みやすい? 
機械にはどちらがよみやすい? 
数年後に読んで理解できるのはどっち? 
7 / 33
ALPS アプリケーション実行チュートリアル 
ALPS シミュレーションの流れ 
ー● 
データ形式の拡張性 
新しいパラメータを追加すると、、、 
# parameters 
10 0.5 10000 1000 12 
# RNG 
“lagged fibonacci” 
# mean, error 
-10.451 0.043 
<PARAMETER name=“L”>10</PARAMETER> 
<PARAMETER name=“T”>0.5</PARAMETER> 
<PARAMETER name=“SWEEPS”>10000</PARAMETER> 
<PARAMETER name=“THERMALIZATION”>1000</PARAMETER> 
<PARAMETER name=”SEED”>12</PARAMETER> 
<RNG name=”lagged fibonacci”/> 
<AVERAGE name=“Energy”> 
<MEAN> -10.451 </MEAN> 
<ERROR> 0.043 </ERROR> 
</AVERAGE> 
テキスト形式の場合、これまでのプログラムは動かなくなる 
XML の場合には問題ない(必要のないパラメータは読まれ 
ない) 
8 / 33
ALPS アプリケーション実行チュートリアル 
ALPS シミュレーションの流れ 
●● 
Job XML ファイル 
myjob.in.xml 
<JOB xmlns:xsi=”....” ....> 
<OUTPUT file="myjob.out.xml"/> 
<TASK status="new"> 
<INPUT file="myjob.task1.in.xml"/> 
<OUTPUT file="myjob.task1.out.xml"/> 
</TASK> 
<TASK status="new"> 
<INPUT file="myjob.task2.in.xml"/> 
<OUTPUT file="myjob.task2.out.xml"/> 
</TASK> 
... 
</JOB> 
myjob.out.xml 
<JOB xmlns:xsi=”....” ....> 
<TASK status="finished"> 
<INPUT file="myjob.task1.out.xml"/> 
</TASK> 
<TASK status="finished"> 
<INPUT file="myjob.task2.out.xml"/> 
</TASK> 
<TASK status="running"> 
<INPUT file="myjob.task3.out.xml"/> 
</TASK> 
... 
</JOB> 
9 / 33
ALPS アプリケーション実行チュートリアル 
ALPS シミュレーションの流れ 
●● 
Task XML ファイル 
myjob.task1.in.xml 
<SIMULATION xmlns:xsi=”....” ....> 
<PARAMETERS> 
<PARAMETER name="LATTICE">chain 
lattice</PARAMETER> 
<PARAMETER name="MODEL">spin 
</PARAMETER> 
<PARAMETER name="L">128 
</PARAMETER> 
<PARAMETER name="T">0.01 
</PARAMETER> 
</PARAMETERS> 
</SIMULATION> 
myjob.task1.out.xml 
<SIMULATION xmlns:xsi=”....” ....> 
<PARAMETERS> 
.... 
</PARAMETERS> 
<AVERAGES> 
<SCALAR_AVERAGE name=”Energy”....> 
... 
</AVERAGES> 
<MCRUN> 
<EXECUTED phase=”equilibration”> 
.... 
</MCRUN> 
</SIMULATION> 
10 / 33
ALPS アプリケーション実行チュートリアル 
ALPS シミュレーションの流れ 
●● 
ALPS が作成するバイナリ形式ファイル 
HDF5 (拡張子.h5) 
実行結果や実行時情報は, Task 毎にHDF5 形式ファイルに保存 
される 
pyalps ツールは, HDF5 ファイルから計算結果を読み込む 
XDR (拡張子.xdr) 
実行途中のチェックポイント情報(スピン配位等) が定期的に保 
存される 
シミュレーションのリスタート時は, 最後のチェックポイント 
から再開される 
11 / 33
ALPS アプリケーション実行チュートリアル 
ALPS シミュレーションの流れ 
●● 
parameter2xml ツール 
パラメータセットを簡易形式で書いて、parameter2xml ツール 
でXML に変換する 
LATTICE_LIBRARY=”lattices.xml”; 
LATTICE=”chain lattice”; 
MODEL_LIBRARY=”models.xml”; 
MODEL=”spin”; 
THERMALIZATION=10000; 
SWEEPS=1000000; 
L=128; 
{ T=0.2; } 
{ T=0.4; } 
{ T=0.6; } 
{ T=0.8; } 
{ T=1.0; } 
myjob.in.xml 
myjob.task1.in.xml 
myjob.task2.in.xml 
myjob.task3.in.xml 
myjob.task4.in.xml 
myjob.task5.in.xml 
parameter2xml 
pyalps (後述) では、pyalps.writeInputFiles() メソッドが利用で 
きる 
12 / 33
ALPS アプリケーション実行チュートリアル 
ALPS シミュレーションの流れ 
●● 
格子とモデルの指定 
格子とモデルを指定するための特別なパラメータ 
name description default 
LATTICE_LIBRARY 
path to an XML file containing lattice 
descriptions (e.g. “mylattice.xml”) 
$ALPS_HOME/lib/ 
xml/lattices.xml 
LATTICE name of the lattice (e.g. “square lattice”) N.A. 
MODEL_LIBRARY 
path to an XML file containing model 
descriptions (e.g. “mymodel.xml”) 
$ALPS_HOME/lib/ 
xml/models.xml 
MODEL name of the model (e.g. “spin”) N.A. 
13 / 33
ALPS アプリケーション実行チュートリアル 
ALPS シミュレーションの流れ 
●● 
パラメータファイルでの数式の使用 
改行, セミコロン, コンマで 
変数を区別 
四則演算、初等関数(sin, 
cos, exp など) が使える 
 (PI), 虚数単位(I) などを 
文字で指定 
C 風, C++風のコメント 
f g で囲んだ変数は異なる 
セット 
「循環参照」がある場合には 
エラーになる 
LATTICE = chain lattice; 
L = 16, 
SEED = 2873 
// C++ style comment 
SWEEPS = 4096; 
THERMALIZATION = SWEEPS/8; 
/* C style comment */ 
{ T = 2; Sq = 2*PI/3; } 
{ T = 1.8; } 
14 / 33
ALPS アプリケーション実行チュートリアル 
ALPS チュートリアル 
ー● 
ディレクトリ構成(例) 
/opt/nano/alps/alpsvars.sh 
ALPS 環境変数($PATH, $ALPS HOME 等) 設定スクリプト 
/opt/nano/alps/tutorials 
アプリケーションのチュートリアル用入出力ファイル 
/opt/nano/alps/notebook 
iPython ノートブックによるチュートリアル 
alpsvars.sh はALPS がインストールされたスパコン全てに用意され 
ています 
https://github.com/wistaria/installer/wiki 
15 / 33
ALPS アプリケーション実行チュートリアル 
ALPS チュートリアル 
ー● 
実習準備 
1 実習システムにログイン 
$ ssh -X guestXX@hostname 
2 環境変数の設定 
$ source /opt/nano/alps/alpsvars.sh 
3 ALPS が動くかどうか確認 
$ pconfig 
4 チュートリアルをコピー 
$ cp -rp /opt/nano/alps/tutorials/ . 
5 iPython ノートブックをコピー 
$ cp -rp /opt/nano/alps/notebook/ . 
16 / 33
ALPS アプリケーション実行チュートリアル 
ALPS チュートリアル 
ー● 
実習準備(ローカル環境を使う場合) 
1 環境変数の設定 
$ source $HOME/alps/bin/alpsvars.sh 
2 ALPS が動くかどうか確認 
$ pconfig 
3 チュートリアルSourceForge からダウンロード 
$ tar zxf tutorials-20140623-r7482.tgz 
4 iPython ノートブックをSourceForge からダウンロード 
$ tar zxf alps-notebook-20141016.tgz 
17 / 33
ALPS アプリケーション実行チュートリアル 
ALPS チュートリアル 
ー● 
実習準備(MateriApps LIVE!を使う場合) 
1 ALPS が動くかどうか確認 
$ pconfig 
2 チュートリアルをコピー 
$ cp -rp /usr/share/alps/tutorials/ . 
3 iPython ノートブックをSourceForge からダウンロード 
$ tar zxf alps-notebook-20141016.tgz 
18 / 33
ALPS アプリケーション実行チュートリアル 
ALPS チュートリアル 
ー● 
ALPS の実行シナリオ 
1 コマンドライン(旧来からの方法) 
$ parameter2xml param 
$ loop param.in.xml 
2 シェルスクリプト(バッチ処理) 
3 Python (対話的or バッチ) 
パラメータの準備からグラフ作成まで統一的に 
対話的にもバッチコマンドとしても実行可能 
グラフの作成も、Python のMatplotlib を用いる 
4 IPython notebook 
ブラウザ上でPython コマンドを実行 
入力、出力を「ノートブック」としてまとめて保存 
グラフの描画もブラウザ上で可能 
5 VisTrails (履歴管理ツール) 
19 / 33
ALPS アプリケーション実行チュートリアル 
ALPS チュートリアル 
ー● 
ALPS アプリケーション 
fulldiag 厳密対角化(全対角化法) 
sparsediag 厳密対角化(Lanczos 法) 
spinmc 古典モンテカルロ法 
loop 量子モンテカルロ法(ループアルゴリズム) 
dirloop sse 量子モンテカルロ(向き付きループアルゴリズム) 
worm 量子モンテカルロ(ワームアルゴリズム) 
dmrg,tebd 密度行列繰り込み群 
hirshfye,interaction,hybridization 動的平均場近似のQMC ソルバ 
20 / 33
ALPS アプリケーション実行チュートリアル 
ALPS チュートリアル 
ー● 
コマンドライン実行(厳密対角化ed-01) 
1 実習システムにログイン 
$ ssh -X guestXX@hostname 
2 (必要に応じて) 計算ノードにログイン 
3 環境変数の設定 
$ source /opt/nano/alps/alpsvars.sh 
4 入力XML ファイルの準備 
$ cd tutorials/ed-01-sparsediag 
$ parameter2xml parm1a 
5 sparsediag の実行 
$ sparsediag --write-xml parm1a.in.xml 
6 結果はparm1a.task1.out.xml に出力される 
21 / 33
ALPS アプリケーション実行チュートリアル 
ALPS チュートリアル 
ー● 
シェルスクリプトによる実行(厳密対角化ed-01) 
1 実習システムにログイン 
$ ssh -X guestXX@hostname 
2 (必要に応じて) 計算ノードにログイン 
3 シェルスクリプト(バッチファイル) の準備 
$ cd tutorials/ed-01-sparsediag 
$ vi batch.sh 
4 batch.sh の中身 
#!/bin/sh 
source /opt/nano/alps/alpsvars.sh 
parameter2xml parm1a 
sparsediag --write-xml parm1a.in.xml 
5 シェルスクリプトを実行(あるいはバッチキューに投入) 
6 物性研スパコンでのジョブスクリプトの書き方⇒ [LINK] 
22 / 33
ALPS アプリケーション実行チュートリアル 
ALPS チュートリアル 
ー● 
Python での対話的実行(厳密対角化ed-01) 
1 実習システムにログイン 
$ ssh -X guestXX@hostname 
2 (必要に応じて) 計算ノードにログイン 
3 環境変数の設定 
$ source /opt/nano/alps/alpsvars.sh 
4 IPython の起動 
$ cd tutorials/ed-01-sparsediag 
$ ipython 
5 チュートリアルページにしたがって、コマンドを実行(コマン 
ドはTAB で補完できる) 
23 / 33
ALPS アプリケーション実行チュートリアル 
ALPS チュートリアル 
ー● 
Python でのバッチ実行(厳密対角化ed-01) 
1 実習システムにログイン 
$ ssh -X guestXX@hostname 
2 (必要に応じて) 計算ノードにログイン 
3 環境変数の設定 
$ source /opt/nano/alps/alpsvars.sh 
4 バッチ実行 
$ cd tutorials/ed-01-sparsediag 
$ python tutorial1a.py 
24 / 33
ALPS アプリケーション実行チュートリアル 
ALPS チュートリアル 
ー● 
IPython notebook での実行(厳密対角化ed-01) 
1 実習システムにログイン 
$ ssh -X guestXX@hostname 
2 IPython notebook サーバの起動 
$ source /opt/nano/alps/alpsvars.sh 
$ cd notebook/jp 
$ ipython notebook --no-browser --pylab inline 
3 起動時に出力されるポート番号(8888 等) を控えておく 
4 手元のPC でもう一つポートフォワーディング付きでSSH セッション 
を開く 
$ ssh guestXX@hostname -L 8888:localhost:8888 
5 PC でブラウザを起動し、http://localhost:8888 を開く 
6 ED-01 SparseDiagonalization.ipynb を開き、[Shift+Return] で実行し 
ていく 
注: フロントエンドでの実行のため、他の人のジョブと干渉して遅くなる場 
合がある 
25 / 33
ALPS アプリケーション実行チュートリアル 
ALPS チュートリアル 
ー● 
IPython notebook での実行(ローカル環境を使う場合) 
IPython notebook の起動 
$ source $HOME/alps/alpsvars.sh 
$ cd notebook/jp 
$ ipython notebook --pylab inline 
Mac OS X の場合は, ipython-2.7 を使う 
MateriApps LIVE!の場合は, 1 行目は不要 
26 / 33
ALPS アプリケーション実行チュートリアル 
ALPS チュートリアル 
ー● 
実行結果の確認 
実行結果(JOB XML ファイル、TASK XML ファイル) は、 
web ブラウザで直接開いて中身を見ることも可能 
例(Linux):
refox parm1a.task1.out.xml 
例(Mac OS X): open -a safari parm1a.task1.out.xml 
27 / 33
ALPS アプリケーション実行チュートリアル 
ALPS チュートリアル 
ー● 
シミュレーションの並列実行 
パラメータセットに関する並列実行が可能(embarassingly 
parallel) 
アプリケーションによって、ALPS parallelizing スケジューラ 
か、ALPS/parapack スケジューラのいずれかが使われている 
(オプション-l により確認可) 
ALPS parallelizing スケジューラ(spinmc 等) 
OpenMP スレッド並列には対応していない。MPI 並列のみ 
MPI 実行例(4 プロセス): 
mpirun -np 4 spinmc --mpi parm2a.in.xml 
ALPS/parapack スケジューラ(loop 等) 
OpenMP スレッド並列とMPI 並列に対応。デフォルトで自動 
的にスレッド並列実行 
実行例(16 スレッド): 
loop -r 16 parm2c.in.xml 
28 / 33
ALPS アプリケーション実行チュートリアル 
ALPS チュートリアル 
ー● 
厳密対角化チュートリアル 
ED-01 Sparse Diagonalization (Lanczos) 
S = 1 の量子1 次元系(サイト数4) について, Lanczos 法によ 
り固有値を求め, 固有値, 相関関数などを出力する. 
ED-02 Spin gaps of 1D quantum systems 
S = 1 の量子1 次元系(サイト数4{14) について, Lanczos 法 
で固有値計算を行う. 求めたエネルギー固有値からエネルギー 
ギャップを求めプロットする. 
ED-03 Spectra of 1D quantum systems 
次の2 種類の量子格子模型について, Lanczos 法で固有値計算 
を行う. 
S = 1=2 量子1 次元ハイゼンベルグ模型 
S = 1=2 梯子系ハイゼンベルグ模型 
29 / 33
ALPS アプリケーション実行チュートリアル 
ALPS チュートリアル 
ー● 
厳密対角化チュートリアル 
ED-04 Conformal
eld theory description of 1D critical spectra 
横磁場イジング模型について, Lancos 法を用いた固有値計算を 
行う. 相関関数の臨界指数とエネルギーギャップとの共形場理 
論から導かれる関係を数値計算から求めた固有値により実証 
する. 
ED-05 Phase transition in a frustrated spin chain 
次近接相互作用をもつハイゼンベルグ鎖について, Lanczos 法 
を用いて固有値計算を行う. 得られたエネルギー固有値から臨 
界点を求める. さらに共形場理論を利用した解析も行う. 
ED-06 Full Diagonalization 
S = 1 の反強磁性ハイゼンベルグ鎖(8 サイト) について全対角 
化を行う. 得られた固有値をもとにいくつかの物理量について 
熱力学的振る舞いをプロットする. 
30 / 33

Más contenido relacionado

La actualidad más candente

Scalamacrosについて
ScalamacrosについてScalamacrosについて
Scalamacrosについて
dekosuke
 
Python で munin plugin を書いてみる
Python で munin plugin を書いてみるPython で munin plugin を書いてみる
Python で munin plugin を書いてみる
ftnk
 
Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。
Yuichi Sakuraba
 
Ext.directことはじめ
Ext.directことはじめExt.directことはじめ
Ext.directことはじめ
Shuhei Aoyama
 
データサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるデータサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみる
Shintaro Fukushima
 
Node.js - sleep sort algorithm
Node.js - sleep sort algorithmNode.js - sleep sort algorithm
Node.js - sleep sort algorithm
takesako
 
Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理
Takeshi Arabiki
 

La actualidad más candente (19)

Scalamacrosについて
ScalamacrosについてScalamacrosについて
Scalamacrosについて
 
研究生のためのC++ no.2
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2
 
Python で munin plugin を書いてみる
Python で munin plugin を書いてみるPython で munin plugin を書いてみる
Python で munin plugin を書いてみる
 
R_note_ODE_ver1.0
R_note_ODE_ver1.0R_note_ODE_ver1.0
R_note_ODE_ver1.0
 
Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。
 
pecl-AOPの紹介
pecl-AOPの紹介pecl-AOPの紹介
pecl-AOPの紹介
 
Task
TaskTask
Task
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 
OpenFOAM の Function Object 機能について
OpenFOAM の Function Object 機能についてOpenFOAM の Function Object 機能について
OpenFOAM の Function Object 機能について
 
Ext.directことはじめ
Ext.directことはじめExt.directことはじめ
Ext.directことはじめ
 
Miyazaki.js vol.1 スコープの話
Miyazaki.js vol.1 スコープの話Miyazaki.js vol.1 スコープの話
Miyazaki.js vol.1 スコープの話
 
Read egg oven
Read egg ovenRead egg oven
Read egg oven
 
データサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるデータサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみる
 
リアルタイムOsのカスタマイズ
リアルタイムOsのカスタマイズリアルタイムOsのカスタマイズ
リアルタイムOsのカスタマイズ
 
Node.js - sleep sort algorithm
Node.js - sleep sort algorithmNode.js - sleep sort algorithm
Node.js - sleep sort algorithm
 
R-hpc-1 TokyoR#11
R-hpc-1 TokyoR#11R-hpc-1 TokyoR#11
R-hpc-1 TokyoR#11
 
RのffでGLMしてみたけど...
RのffでGLMしてみたけど...RのffでGLMしてみたけど...
RのffでGLMしてみたけど...
 
Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理
 
Kobe.R #15 - Incanter チョットシッテル
Kobe.R #15 - Incanter チョットシッテルKobe.R #15 - Incanter チョットシッテル
Kobe.R #15 - Incanter チョットシッテル
 

Similar a ALPSチュートリアル(3) アプリケーション実習

Rユーザのためのspark入門
Rユーザのためのspark入門Rユーザのためのspark入門
Rユーザのためのspark入門
Shintaro Fukushima
 
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQLHandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
akirahiguchi
 

Similar a ALPSチュートリアル(3) アプリケーション実習 (20)

イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情
 
Web技術勉強会23回目
Web技術勉強会23回目Web技術勉強会23回目
Web技術勉強会23回目
 
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
PostgreSQL SQLチューニング入門 実践編(pgcon14j)PostgreSQL SQLチューニング入門 実践編(pgcon14j)
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
 
Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
 
Kof2016 postgresql-9.6
Kof2016 postgresql-9.6Kof2016 postgresql-9.6
Kof2016 postgresql-9.6
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
 
Rユーザのためのspark入門
Rユーザのためのspark入門Rユーザのためのspark入門
Rユーザのためのspark入門
 
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
AWS Black Belt Tech シリーズ 2015 - AWS Elastic BeanstalkAWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
 
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
 
Azure DataLake 大全
Azure DataLake 大全Azure DataLake 大全
Azure DataLake 大全
 
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
 
ActiveResourceが面白すぎる件
ActiveResourceが面白すぎる件ActiveResourceが面白すぎる件
ActiveResourceが面白すぎる件
 
Ylug 110th kpatch code reading
Ylug 110th kpatch code readingYlug 110th kpatch code reading
Ylug 110th kpatch code reading
 
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQLHandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
 
Terraform始めました
Terraform始めましたTerraform始めました
Terraform始めました
 
Awsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加する
Awsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加するAwsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加する
Awsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加する
 
仕事で使えるシェルスクリプト
仕事で使えるシェルスクリプト仕事で使えるシェルスクリプト
仕事で使えるシェルスクリプト
 
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料
 
CAメインフレーム システムリソース削減に貢献する製品について
CAメインフレーム システムリソース削減に貢献する製品についてCAメインフレーム システムリソース削減に貢献する製品について
CAメインフレーム システムリソース削減に貢献する製品について
 

Más de Computational Materials Science Initiative

Más de Computational Materials Science Initiative (20)

MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE!の設定
MateriApps LIVE!の設定MateriApps LIVE!の設定
MateriApps LIVE!の設定
 
MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE!の設定
MateriApps LIVE!の設定MateriApps LIVE!の設定
MateriApps LIVE!の設定
 
ALPSチュートリアル
ALPSチュートリアルALPSチュートリアル
ALPSチュートリアル
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE!の設定
MateriApps LIVE!の設定MateriApps LIVE!の設定
MateriApps LIVE!の設定
 
MateriApps: OpenMXを利用した第一原理計算の簡単な実習
MateriApps: OpenMXを利用した第一原理計算の簡単な実習MateriApps: OpenMXを利用した第一原理計算の簡単な実習
MateriApps: OpenMXを利用した第一原理計算の簡単な実習
 
CMSI計算科学技術特論C (2015) ALPS と量子多体問題②
CMSI計算科学技術特論C (2015) ALPS と量子多体問題②CMSI計算科学技術特論C (2015) ALPS と量子多体問題②
CMSI計算科学技術特論C (2015) ALPS と量子多体問題②
 
CMSI計算科学技術特論C (2015) ALPS と量子多体問題①
CMSI計算科学技術特論C (2015) ALPS と量子多体問題①CMSI計算科学技術特論C (2015) ALPS と量子多体問題①
CMSI計算科学技術特論C (2015) ALPS と量子多体問題①
 

Último

Último (7)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

ALPSチュートリアル(3) アプリケーション実習

  • 1. ALPS アプリケーション実行チュートリアル ALPS アプリケーション実行チュートリアル CMSI ハンズオン ALPS Collaboration http://alps.comp-phys.org/ 2014-10-16 1 / 33
  • 2. ALPS アプリケーション実行チュートリアル Outline 1 ALPS シミュレーションの流れ 2 ALPS チュートリアル 3 ALPS Lattice & Model チュートリアル 2 / 33
  • 3. ALPS アプリケーション実行チュートリアル ALPS シミュレーションの流れ ●● ALPS によるシミュレーション| ワークフロー Parameter File LATTICE = "square lattice" MODEL = "spin" L = 16 Jxy = 1 Jz = 2 SWEEPS = 10000 THERMALIZATION = 1000 { T = 0.1 } { T = 0.2 } { T = 0.5 } { T = 1.0 } parameter2xml tool application programs (0,1) Python based evaluation tools Parameter XML File Model XML File Σ ] Σ i < i,j> [ Sz i Sz j + ( S+ i S-j + S-i S+ j )/ 2 - h Outputs in HDF5 & XML Quantum Monte Carlo H = J Quantum Lattice Model Exact Diagonalization DMRG Lattice XML File square lattice <LATTICES> <LATTICE name="square lattice" dimension="2"> <PARAMETER name="a" default="1"/> <BASIS><VECTOR>a 0</VECTOR><VECTOR>0 a</VECTOR></BASIS> </LATTICE> <UNITCELL name="simple2d" dimension="2"> <VERTEX/> <EDGE> <SOURCE vertex="1" offset="0 0"/> <TARGET vertex="1" offset="0 1"/> </EDGE> <EDGE> <SOURCE vertex="1" offset="0 0"/> <TARGET vertex="1" offset="1 0"/> </EDGE> </UNITCELL> <LATTICEGRAPH name="square lattice"> <FINITELATTICE> <LATTICE ref="square lattice"/> <EXTENT dimension="1" size="L"/> <EXTENT dimension="2" size="L"/> <BOUNDARY type="periodic"/> </FINITELATTICE> <UNITCELL ref="simple2d"/> </LATTICEGRAPH> </LATTICES> (0,0) (1,0) <MODELS> <BASIS name="spin"> i Sz <SITEBASIS name="spin"> <PARAMETER name="local_S" default="1/2"/> <QUANTUMNUMBER name="S" min="local_S" max="local_S"/> <QUANTUMNUMBER name="Sz" min="-S" max="S"/> <OPERATOR name="Sz" matrixelement="Sz"/> <OPERATOR name="Splus" matrixelement="sqrt(S*(S+1)-Sz*(Sz+1))"> <CHANGE quantumnumber="Sz" change="1"/> </OPERATOR> <OPERATOR name="Sminus" matrixelement="sqrt(S*(S+1)-Sz*(Sz-1))"> <CHANGE quantumnumber="Sz" change="-1"/> </OPERATOR> </SITEBASIS> </BASIS> <HAMILTONIAN name="spin"> <PARAMETER name="J" default="1"/> <PARAMETER name="h" default="0"/> <BASIS ref="spin"/> <SITETERM> -h * Sz(i) </SITETERM> <BONDTERM source="i" target="j"> J * (Sz(i)*Sz(j) + (Splus(i)*Sminus(j)+Sminus(i)*Splus(j)))/2 </BONDTERM> </HAMILTONIAN> </MODELS> Plots DMFT 3 / 33
  • 4. ALPS アプリケーション実行チュートリアル ALPS シミュレーションの流れ ●● シミュレーションの入出力 典型的には、一つのシミュレーションは複数のパラメータセッ トからなる (異なる温度など) 「ジョブ(job)」: シミュレーション全体、「タスク」の集合 「タスク(task)」(または「simulation」): 一つのパラメータ セットに対する計算、「ラン」の集合 「ラン(run)」(または「clone」): 異なる乱数の種に対する個々 の計算 XML 入力ファイルと出力ファイル myjob.in.xml myjob.task1.in.xml myjob.task2.in.xml myjob.task3.in.xml myjob.out.xml myjob.task1.out.xml myjob.task2.out.xml myjob.task3.out.xml run a simulation 4 / 33
  • 5. ALPS アプリケーション実行チュートリアル ALPS シミュレーションの流れ ●● XML の基礎 XML = eXtensible Marckup Landuage 構造化文書を作成するのに適している 「タグ」を使って、文章の構造を記述 大文字と小文字は区別される XML の例: HTML (XHTML) an attribute contents empty element (no contents) opening tag closing tag <html> <h1 align=”center”>Header</h1> <p>A paragraph... And below it an image</p> <img src=”img.jpg”/> </html> 5 / 33
  • 6. ALPS アプリケーション実行チュートリアル ALPS シミュレーションの流れ ー● XML の文法 「開始タグ」には対応する「終了タグ」が必要 ある要素の「開始タグ」と終了タグは共通の親ノードに含まれ なければならない XML の「木」表示 html h1 p img align="center" Header A paragraph... src="img.jpg" <html> <h1 align=”center”>Header</h1> <p>A paragraph... And below it an image</p> <img src=”img.jpg”/> </html> ⇒ XML では、ユーザが独自のタグ(要素の名前) を定義すること が可能 (参考: Document Type De
  • 7. nition (DTD), XML Schema) 6 / 33
  • 8. ALPS アプリケーション実行チュートリアル ALPS シミュレーションの流れ ー● なぜXML を使うのか? plain text file # parameters 10 0.5 10000 1000 # mean, error -10.451 0.043 XML file <PARAMETER name=“L”>10</PARAMETER> <PARAMETER name=“T”>0.5</PARAMETER> <PARAMETER name=“SWEEPS”>10000</PARAMETER> <PARAMETER name=“THERMALIZATION”>1000</PARAMETER> <AVERAGE name=“Energy”> <MEAN> -10.451 </MEAN> <ERROR> 0.043 </ERROR> </AVERAGE> 人間にはどちらが読みやすい? 機械にはどちらがよみやすい? 数年後に読んで理解できるのはどっち? 7 / 33
  • 9. ALPS アプリケーション実行チュートリアル ALPS シミュレーションの流れ ー● データ形式の拡張性 新しいパラメータを追加すると、、、 # parameters 10 0.5 10000 1000 12 # RNG “lagged fibonacci” # mean, error -10.451 0.043 <PARAMETER name=“L”>10</PARAMETER> <PARAMETER name=“T”>0.5</PARAMETER> <PARAMETER name=“SWEEPS”>10000</PARAMETER> <PARAMETER name=“THERMALIZATION”>1000</PARAMETER> <PARAMETER name=”SEED”>12</PARAMETER> <RNG name=”lagged fibonacci”/> <AVERAGE name=“Energy”> <MEAN> -10.451 </MEAN> <ERROR> 0.043 </ERROR> </AVERAGE> テキスト形式の場合、これまでのプログラムは動かなくなる XML の場合には問題ない(必要のないパラメータは読まれ ない) 8 / 33
  • 10. ALPS アプリケーション実行チュートリアル ALPS シミュレーションの流れ ●● Job XML ファイル myjob.in.xml <JOB xmlns:xsi=”....” ....> <OUTPUT file="myjob.out.xml"/> <TASK status="new"> <INPUT file="myjob.task1.in.xml"/> <OUTPUT file="myjob.task1.out.xml"/> </TASK> <TASK status="new"> <INPUT file="myjob.task2.in.xml"/> <OUTPUT file="myjob.task2.out.xml"/> </TASK> ... </JOB> myjob.out.xml <JOB xmlns:xsi=”....” ....> <TASK status="finished"> <INPUT file="myjob.task1.out.xml"/> </TASK> <TASK status="finished"> <INPUT file="myjob.task2.out.xml"/> </TASK> <TASK status="running"> <INPUT file="myjob.task3.out.xml"/> </TASK> ... </JOB> 9 / 33
  • 11. ALPS アプリケーション実行チュートリアル ALPS シミュレーションの流れ ●● Task XML ファイル myjob.task1.in.xml <SIMULATION xmlns:xsi=”....” ....> <PARAMETERS> <PARAMETER name="LATTICE">chain lattice</PARAMETER> <PARAMETER name="MODEL">spin </PARAMETER> <PARAMETER name="L">128 </PARAMETER> <PARAMETER name="T">0.01 </PARAMETER> </PARAMETERS> </SIMULATION> myjob.task1.out.xml <SIMULATION xmlns:xsi=”....” ....> <PARAMETERS> .... </PARAMETERS> <AVERAGES> <SCALAR_AVERAGE name=”Energy”....> ... </AVERAGES> <MCRUN> <EXECUTED phase=”equilibration”> .... </MCRUN> </SIMULATION> 10 / 33
  • 12. ALPS アプリケーション実行チュートリアル ALPS シミュレーションの流れ ●● ALPS が作成するバイナリ形式ファイル HDF5 (拡張子.h5) 実行結果や実行時情報は, Task 毎にHDF5 形式ファイルに保存 される pyalps ツールは, HDF5 ファイルから計算結果を読み込む XDR (拡張子.xdr) 実行途中のチェックポイント情報(スピン配位等) が定期的に保 存される シミュレーションのリスタート時は, 最後のチェックポイント から再開される 11 / 33
  • 13. ALPS アプリケーション実行チュートリアル ALPS シミュレーションの流れ ●● parameter2xml ツール パラメータセットを簡易形式で書いて、parameter2xml ツール でXML に変換する LATTICE_LIBRARY=”lattices.xml”; LATTICE=”chain lattice”; MODEL_LIBRARY=”models.xml”; MODEL=”spin”; THERMALIZATION=10000; SWEEPS=1000000; L=128; { T=0.2; } { T=0.4; } { T=0.6; } { T=0.8; } { T=1.0; } myjob.in.xml myjob.task1.in.xml myjob.task2.in.xml myjob.task3.in.xml myjob.task4.in.xml myjob.task5.in.xml parameter2xml pyalps (後述) では、pyalps.writeInputFiles() メソッドが利用で きる 12 / 33
  • 14. ALPS アプリケーション実行チュートリアル ALPS シミュレーションの流れ ●● 格子とモデルの指定 格子とモデルを指定するための特別なパラメータ name description default LATTICE_LIBRARY path to an XML file containing lattice descriptions (e.g. “mylattice.xml”) $ALPS_HOME/lib/ xml/lattices.xml LATTICE name of the lattice (e.g. “square lattice”) N.A. MODEL_LIBRARY path to an XML file containing model descriptions (e.g. “mymodel.xml”) $ALPS_HOME/lib/ xml/models.xml MODEL name of the model (e.g. “spin”) N.A. 13 / 33
  • 15. ALPS アプリケーション実行チュートリアル ALPS シミュレーションの流れ ●● パラメータファイルでの数式の使用 改行, セミコロン, コンマで 変数を区別 四則演算、初等関数(sin, cos, exp など) が使える (PI), 虚数単位(I) などを 文字で指定 C 風, C++風のコメント f g で囲んだ変数は異なる セット 「循環参照」がある場合には エラーになる LATTICE = chain lattice; L = 16, SEED = 2873 // C++ style comment SWEEPS = 4096; THERMALIZATION = SWEEPS/8; /* C style comment */ { T = 2; Sq = 2*PI/3; } { T = 1.8; } 14 / 33
  • 16. ALPS アプリケーション実行チュートリアル ALPS チュートリアル ー● ディレクトリ構成(例) /opt/nano/alps/alpsvars.sh ALPS 環境変数($PATH, $ALPS HOME 等) 設定スクリプト /opt/nano/alps/tutorials アプリケーションのチュートリアル用入出力ファイル /opt/nano/alps/notebook iPython ノートブックによるチュートリアル alpsvars.sh はALPS がインストールされたスパコン全てに用意され ています https://github.com/wistaria/installer/wiki 15 / 33
  • 17. ALPS アプリケーション実行チュートリアル ALPS チュートリアル ー● 実習準備 1 実習システムにログイン $ ssh -X guestXX@hostname 2 環境変数の設定 $ source /opt/nano/alps/alpsvars.sh 3 ALPS が動くかどうか確認 $ pconfig 4 チュートリアルをコピー $ cp -rp /opt/nano/alps/tutorials/ . 5 iPython ノートブックをコピー $ cp -rp /opt/nano/alps/notebook/ . 16 / 33
  • 18. ALPS アプリケーション実行チュートリアル ALPS チュートリアル ー● 実習準備(ローカル環境を使う場合) 1 環境変数の設定 $ source $HOME/alps/bin/alpsvars.sh 2 ALPS が動くかどうか確認 $ pconfig 3 チュートリアルSourceForge からダウンロード $ tar zxf tutorials-20140623-r7482.tgz 4 iPython ノートブックをSourceForge からダウンロード $ tar zxf alps-notebook-20141016.tgz 17 / 33
  • 19. ALPS アプリケーション実行チュートリアル ALPS チュートリアル ー● 実習準備(MateriApps LIVE!を使う場合) 1 ALPS が動くかどうか確認 $ pconfig 2 チュートリアルをコピー $ cp -rp /usr/share/alps/tutorials/ . 3 iPython ノートブックをSourceForge からダウンロード $ tar zxf alps-notebook-20141016.tgz 18 / 33
  • 20. ALPS アプリケーション実行チュートリアル ALPS チュートリアル ー● ALPS の実行シナリオ 1 コマンドライン(旧来からの方法) $ parameter2xml param $ loop param.in.xml 2 シェルスクリプト(バッチ処理) 3 Python (対話的or バッチ) パラメータの準備からグラフ作成まで統一的に 対話的にもバッチコマンドとしても実行可能 グラフの作成も、Python のMatplotlib を用いる 4 IPython notebook ブラウザ上でPython コマンドを実行 入力、出力を「ノートブック」としてまとめて保存 グラフの描画もブラウザ上で可能 5 VisTrails (履歴管理ツール) 19 / 33
  • 21. ALPS アプリケーション実行チュートリアル ALPS チュートリアル ー● ALPS アプリケーション fulldiag 厳密対角化(全対角化法) sparsediag 厳密対角化(Lanczos 法) spinmc 古典モンテカルロ法 loop 量子モンテカルロ法(ループアルゴリズム) dirloop sse 量子モンテカルロ(向き付きループアルゴリズム) worm 量子モンテカルロ(ワームアルゴリズム) dmrg,tebd 密度行列繰り込み群 hirshfye,interaction,hybridization 動的平均場近似のQMC ソルバ 20 / 33
  • 22. ALPS アプリケーション実行チュートリアル ALPS チュートリアル ー● コマンドライン実行(厳密対角化ed-01) 1 実習システムにログイン $ ssh -X guestXX@hostname 2 (必要に応じて) 計算ノードにログイン 3 環境変数の設定 $ source /opt/nano/alps/alpsvars.sh 4 入力XML ファイルの準備 $ cd tutorials/ed-01-sparsediag $ parameter2xml parm1a 5 sparsediag の実行 $ sparsediag --write-xml parm1a.in.xml 6 結果はparm1a.task1.out.xml に出力される 21 / 33
  • 23. ALPS アプリケーション実行チュートリアル ALPS チュートリアル ー● シェルスクリプトによる実行(厳密対角化ed-01) 1 実習システムにログイン $ ssh -X guestXX@hostname 2 (必要に応じて) 計算ノードにログイン 3 シェルスクリプト(バッチファイル) の準備 $ cd tutorials/ed-01-sparsediag $ vi batch.sh 4 batch.sh の中身 #!/bin/sh source /opt/nano/alps/alpsvars.sh parameter2xml parm1a sparsediag --write-xml parm1a.in.xml 5 シェルスクリプトを実行(あるいはバッチキューに投入) 6 物性研スパコンでのジョブスクリプトの書き方⇒ [LINK] 22 / 33
  • 24. ALPS アプリケーション実行チュートリアル ALPS チュートリアル ー● Python での対話的実行(厳密対角化ed-01) 1 実習システムにログイン $ ssh -X guestXX@hostname 2 (必要に応じて) 計算ノードにログイン 3 環境変数の設定 $ source /opt/nano/alps/alpsvars.sh 4 IPython の起動 $ cd tutorials/ed-01-sparsediag $ ipython 5 チュートリアルページにしたがって、コマンドを実行(コマン ドはTAB で補完できる) 23 / 33
  • 25. ALPS アプリケーション実行チュートリアル ALPS チュートリアル ー● Python でのバッチ実行(厳密対角化ed-01) 1 実習システムにログイン $ ssh -X guestXX@hostname 2 (必要に応じて) 計算ノードにログイン 3 環境変数の設定 $ source /opt/nano/alps/alpsvars.sh 4 バッチ実行 $ cd tutorials/ed-01-sparsediag $ python tutorial1a.py 24 / 33
  • 26. ALPS アプリケーション実行チュートリアル ALPS チュートリアル ー● IPython notebook での実行(厳密対角化ed-01) 1 実習システムにログイン $ ssh -X guestXX@hostname 2 IPython notebook サーバの起動 $ source /opt/nano/alps/alpsvars.sh $ cd notebook/jp $ ipython notebook --no-browser --pylab inline 3 起動時に出力されるポート番号(8888 等) を控えておく 4 手元のPC でもう一つポートフォワーディング付きでSSH セッション を開く $ ssh guestXX@hostname -L 8888:localhost:8888 5 PC でブラウザを起動し、http://localhost:8888 を開く 6 ED-01 SparseDiagonalization.ipynb を開き、[Shift+Return] で実行し ていく 注: フロントエンドでの実行のため、他の人のジョブと干渉して遅くなる場 合がある 25 / 33
  • 27. ALPS アプリケーション実行チュートリアル ALPS チュートリアル ー● IPython notebook での実行(ローカル環境を使う場合) IPython notebook の起動 $ source $HOME/alps/alpsvars.sh $ cd notebook/jp $ ipython notebook --pylab inline Mac OS X の場合は, ipython-2.7 を使う MateriApps LIVE!の場合は, 1 行目は不要 26 / 33
  • 28. ALPS アプリケーション実行チュートリアル ALPS チュートリアル ー● 実行結果の確認 実行結果(JOB XML ファイル、TASK XML ファイル) は、 web ブラウザで直接開いて中身を見ることも可能 例(Linux):
  • 29. refox parm1a.task1.out.xml 例(Mac OS X): open -a safari parm1a.task1.out.xml 27 / 33
  • 30. ALPS アプリケーション実行チュートリアル ALPS チュートリアル ー● シミュレーションの並列実行 パラメータセットに関する並列実行が可能(embarassingly parallel) アプリケーションによって、ALPS parallelizing スケジューラ か、ALPS/parapack スケジューラのいずれかが使われている (オプション-l により確認可) ALPS parallelizing スケジューラ(spinmc 等) OpenMP スレッド並列には対応していない。MPI 並列のみ MPI 実行例(4 プロセス): mpirun -np 4 spinmc --mpi parm2a.in.xml ALPS/parapack スケジューラ(loop 等) OpenMP スレッド並列とMPI 並列に対応。デフォルトで自動 的にスレッド並列実行 実行例(16 スレッド): loop -r 16 parm2c.in.xml 28 / 33
  • 31. ALPS アプリケーション実行チュートリアル ALPS チュートリアル ー● 厳密対角化チュートリアル ED-01 Sparse Diagonalization (Lanczos) S = 1 の量子1 次元系(サイト数4) について, Lanczos 法によ り固有値を求め, 固有値, 相関関数などを出力する. ED-02 Spin gaps of 1D quantum systems S = 1 の量子1 次元系(サイト数4{14) について, Lanczos 法 で固有値計算を行う. 求めたエネルギー固有値からエネルギー ギャップを求めプロットする. ED-03 Spectra of 1D quantum systems 次の2 種類の量子格子模型について, Lanczos 法で固有値計算 を行う. S = 1=2 量子1 次元ハイゼンベルグ模型 S = 1=2 梯子系ハイゼンベルグ模型 29 / 33
  • 32. ALPS アプリケーション実行チュートリアル ALPS チュートリアル ー● 厳密対角化チュートリアル ED-04 Conformal
  • 33. eld theory description of 1D critical spectra 横磁場イジング模型について, Lancos 法を用いた固有値計算を 行う. 相関関数の臨界指数とエネルギーギャップとの共形場理 論から導かれる関係を数値計算から求めた固有値により実証 する. ED-05 Phase transition in a frustrated spin chain 次近接相互作用をもつハイゼンベルグ鎖について, Lanczos 法 を用いて固有値計算を行う. 得られたエネルギー固有値から臨 界点を求める. さらに共形場理論を利用した解析も行う. ED-06 Full Diagonalization S = 1 の反強磁性ハイゼンベルグ鎖(8 サイト) について全対角 化を行う. 得られた固有値をもとにいくつかの物理量について 熱力学的振る舞いをプロットする. 30 / 33
  • 34. ALPS アプリケーション実行チュートリアル ALPS チュートリアル ー● モンテカルロ法チュートリアル mc-01-autocorrelations mc-01b-equilibration-and-convergence mc-02-susceptibilities mc-03-magnetization mc-04-measurements mc-05-bosons mc-06-qwl mc-07-phase-transition mc-08-quantum-phase-transition 31 / 33
  • 35. ALPS アプリケーション実行チュートリアル ALPS Lattice Model チュートリアル ー● ALPS Lattice チュートリアル ALPS Lattice HowTo 辺と頂点を単位として簡単なグラフを指定する方法 格子と単一セルを指定する方法 単位格子に対応するグラフを指定する方法 格子とグラフのライブラリの生成方法 格子の定義から生成されたグラフを確認する方法 lattice2xml ツール、あるいは(wxPython とVTK がインストー ルされている環境では) lattice-preview 格子可視化ツールも利 用可 32 / 33
  • 36. ALPS アプリケーション実行チュートリアル ALPS Lattice Model チュートリアル ー● ALPS Model チュートリアル ALPS Model HowTo デフォルトのモデルライブラリファイル モデルライブラリファイルの構造 単一サイトの基底 完全格子モデルの基底 量子演算子 ハミルトニアンの取扱い 33 / 33