SlideShare a Scribd company logo
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

More Related Content

PDF
ALPSチュートリアル(1) ALPSの概要
PDF
ALPSチュートリアル(7) アプリケーションのALPS化
PDF
ALPSチュートリアル(5) ALPS Python入門
PDF
ALPSチュートリアル(2) ALPSのインストール
PDF
ALPSチュートリアル(4) Python入門
PDF
ALPSチュートリアル(6) Matplotlib入門
PDF
研究生のためのC++ no.7
PDF
Subprocess no susume
ALPSチュートリアル(1) ALPSの概要
ALPSチュートリアル(7) アプリケーションのALPS化
ALPSチュートリアル(5) ALPS Python入門
ALPSチュートリアル(2) ALPSのインストール
ALPSチュートリアル(4) Python入門
ALPSチュートリアル(6) Matplotlib入門
研究生のためのC++ no.7
Subprocess no susume

What's hot (19)

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

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

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

More from Computational Materials Science Initiative (20)

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

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