This is an old revision of the document!
Table of Contents
概要
ITensorのインストール方法。
事前に
- g++
- MKL あるいは LAPACK/BLAS
を用意してください。 また、任意ですが
- HDF5
- OpenMP
にも対応しているので、使いたい場合はそちらもインストールしてください
IntelコンパイラはC++17に対応していないため使用できません
準備
Linux(WSLを含む)
事前にOSをアップデートしておきます
$ sudo apt update $ sudo apt upgrade
必要に応じて再起動します。 終わったら、コンパイラ類とLAPACKをインストールします。 また、githubからITensorを入手する場合はgitも入れておきます。
$ sudo apt install build-essential $ sudo apt install liblapack-dev liblapack-doc $ sudo apt install git
MacOS
App StoreよりXCodeをインストールしてください
入手
githubから入手する場合
公式にはこちらが推奨されています。
$ git clone https://github.com/ITensor/ITensor itensor
tar.gzあるいはzipを展開する場合
以下のサイトから最新版をダウンロードします
入手したファイルをホーム・ディレクトリにおいて展開します(ファイル名はバージョンによって変化します)
$ tar -xzvf ITensor-3.1.11.tar.gz # tarの場合 $ gunzip ITensor-3.1.11.zip # zipの場合 $ mv ITensor-3.1.11/ itensor/ # 好きな名前にしてください
コンパイル
ダウンロードしたITensorのディレクトリに入ります。
$ cd itensor/
コンパイルの設定はファイルoptions.mkに書き込みます。 サンプルが付属しているので、これを書き換えます。
$ cp options.mk.sample options.mk $ vim options.mk
- 書き換えはファイルの指示に従って編集してください
- [1] … 使用するコンパイラを設定します。必須
- [2] … 使用する線形代数ライブラリを指定します。必須
- [3] … HDF5を利用する場合は設定します。任意
- [4] … OpenMPを利用する場合は設定します。任意
- [5] … コンパイラの最適化機能を設定します。任意
- MKLを使う場合は、パスが正しいか注意してください
options.mkの編集が終わったら、ITensorをビルドします
$ make
使い方
サンプルプログラム
sampleというディレクトリにITensorを使った計算の具体例がいくつか入っているので、遊んでみるとよいでしょう。
$ cd sample/ $ make dmrg $ ./dmrg (略) Ground State Energy = -138.9400860763 Using inner = -138.9400860763
“dmrg”はスピン1の等方的ハイゼンベルグ模型(100サイト、開境界条件)の計算です。 この他の例についてはREADMEを参照してください。
チュートリアル
簡単な模型でちょっと遊ぶ程度でしたらサンプルをいじるだけで十分ですが、本格的に使い始めたい場合はまずチュートリアルの練習問題を解いていくと良いでしょう。 チュートリアルに使用されているプログラムは tutrial というディレクトリに入っています。 チュートリアルのスライドは以下のサイトから手に入ります。
あとは、ITensorのHPのLearnから必要なものを読んでいけばよいでしょう。 基本的な使い方でわからないことがあれば、Discussで検索すると解決策が見つかるかもしれません。
Intelコンパイラが使えた時代のoptions.mk
バージョン1ではIntelコンパイラが使えました。
(略) ## Set which compiler to use by defining CCCOM: CCCOM=icpc -m64 -std=c++11 (略) PLATFORM=mkl ## MKL example (recommended with Intel C++ compiler icpc for performance on Intel CPUs) BLAS_LAPACK_LIBFLAGS=-L/opt/intel/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_rt -lmkl_core -liomp5 -lpthread BLAS_LAPACK_INCLUDEFLAGS=-I/opt/intel/mkl/include (略)