地域密着型エリア広告配信リクルートの地域密着型広告ドコイク?アドネットワーク Ads by ドコイク?[無料でホームページを作成] [通報・削除依頼]
[無料でホームページを作成] [通報・削除依頼]

Phase(2012年6月以降無更新)

 ここではPhaseを用いて状態密度分布やバンド図を描く方法などを解説する。(現在、windows7上での操作方法を確認中です)
PHASE ver.11.00http://www.ciss.iis.u-tokyo.ac.jp/riss/dl/download/index.php
------------------------------------------------------------------------------
■ Phaseの利用方法

□ マニュアルはCISSのHPから得られるので利用は難しくないと思います。

□ VESTAを利用した入力の仕方
1) phase-viewer を立ち上げる。
2) samplesのところで右クリックしてcreate project を選択
    project nameを入力し、create initial sub project にチェックを入れてok
3) initial input file で wizard にしてnextを押す。
4) select coords file においてVESTAで作成したcase.cifを選択
5) 以後は計算する系に該当した条件を選択していくだけで良い。

□ 分子動力学(MD)の利用方法
MDが上手く動作しない場合は下記のようにすると計算できる場合があります。
1) basic settings
    solver と charge mixing をdelete ボタンをして削除して下さい。
2) structural evolution
    method で velocity_verlet を選択し、dt には100を入力。
以上で構造最適化計算が出来る場合がありますが、Max CPU time は 数日と余裕のある設定にすることをお勧め致します。

□ ALDOSの計算方法
各原子の部分状態密度分布の出力方法
1) create input for PHASE (上記VESTAを利用した入力の仕方を参照)
  この時点で入力を指定しておくとよい。
  DOS
    total dos: on
    method: tetrahedral
    aldos: on
2) Preperation panel でのDOS
    a) ALDOS: on
    b) critical distance: 6
      状態密度分布を計算する場合に、どの距離まで計算させるかを入力するもので0だと結果が出ません。原子の大きさ程度の6 Bohrなどを入力しておくとよい。
    c) from atomとto atomがあります。出力させたい原子を選択します。入力しないと全ての原子に対して計算がなされます。原子の番号+1のALDOSが出力された場合は、critical distanceよりも外側の電子状態密度の分布です。その他、下の欄にあるaldosのチェックを表示させたい原子に対して入れて下さい。(WIEN2kと厳密には異なりますが、critical distanceはWIEN2kでのRMTだと考えると分かりやすいです。WIEN2kはRMTの範囲で各原子と各軌道の状態密度分布が出力されます。RMTを超える部分はinterstitial成分として状態密度分布が別に表示されます。全状態密度分布ではinterstitial成分も全て含まれて表示されます。WIEN2kもPhaseも各軌道及び各原子の状態密度分布を全部足しても全状態密度分布にはなりません。WIEN2kではinterstitial成分を、Phaseでは原子の番号+1のALDOSを足すことで全状態密度分布となります)
    d) DOSをなめらかに表示するには、basic settingsでのaccuracyの入力場面で、K point samplingでのmethodをmesh(monkでもよいかも)にして、Smearingでのmethodをtetrahedronに指定します。Meshを選択するとこれまでよりも収束するまでにかなりの時間が掛かります(meshを指定した場合には20×20×20を超えると計算されないことにも注意しておいて下さい)。
3) Phaseでは原子または各層での状態密度分布を出力させることができます。各軌道(s, p, d, f)を個別に出力させるプログラムはありませんが、どの軌道が支配的かは分かります。気になる場合は、計算できそうな系をWIEN2kで計算してみたり、DVXaで計算してみたりして、その殆どを特定の軌道が占めていることを確認してみるとよいでしょう。
4) ALDOSはSCF計算時に指定しないと計算されません。後からekcalで計算させると筆者の経験では容易に動かなかった。

□ 収束状況の確認
以下の二種類がある
A.  計算中に exe での monitor を押す。次いで 右端(右から2つ目)にある三角(右矢印?)のアイコンを押す。さらに右側のアイコンがカラーになるので押す。そうすると収束上を示すグラフが表示される。計算が終わるとそのグラフは変化しなくなる。
B.  「results」→「log」→「SCF」→「stdout(energy)」→Controlを押しながら「edel(全エネルギーの差分)」を選択し、下にある「quick plot」を押す。

□ 利用上の注意点
  Phase-viewer 320ではSCFでの経過を知ることはできますが、DOSやバンド分散の計算における経過を知ることはできません。途中でDOSやバンド分散に関する結果のデータを見ようとするとエラーで止まったりしてしまいます。CPUが計算しているかを知りたい場合は、「ctrl + Alt + Delete」でタスクマネージャーを開いて、パフォーマンスやプロセスを見ておくのも良いでしょう。数%CPUを使用してしまいますが、複数の人がPCを利用している場合や動作が心配な場合はこれを利用することをお勧めします。

□ 「4.2節(SCFのこと)の計算を実行し、電荷密度を求める。k点サンプリングはMonkhorst-Pack法で求めておく。次に得られた電荷密度で固定し、tetrahedron法による状態密度の計算を実行する。このように、固定電荷の計算を行うにあたって、電荷密度を求めるために行った4.2節(SCFのこと)の計算の時に用いたk点サンプリング法やメッシュ数、バンド数は、同一である必要は無い」、小池聡、「第一原理バンド計算ソフトウェア Advance/PHASE」 、アドバンスシミュレーション、2011.10.Vol 9

□ オススメの参考文献
[1] 「第一原理バンド計算ソフトウェア Advance/PHASE」 、アドバンスシミュレーション、2011.10.Vol 9
[2] 「第一原理バンド計算ソフトウェア Advance/PHASE」 、アドバンスシミュレーション、2013.1.Vol 14
[3] 第41回薄膜・表面物理基礎講座(2012年)「簡単に使えるようになります! 実験補完ツールとしての材料シミュレーション入門」 テキスト

□ Phase Ver.3.1 にて、計算ユニットセルの自動最適化が可能になっている。それ以前のものは各格子定数での全エネルギーを計算して最適値を求める必要がある。
------------------------------------------------------------------------------
□ Windows7 Home での調査(周辺ソフトのインストールは左欄の Windows7 Home を参照 )

PCの構成(今回はTSUKUMOで購入)
1. OS: [64bit版] Windows 7 Home Premium 64-bit
2. CPU: Intel Core i5-2500
3. マザーボード: Intel H67 Express チップセット Micro ATX マザーボード
4. メモリ: DDR3-1333 DDR3 SDRAM 4GB × 4枚
5. 追加ビデオカード: ASUS GT430/1GB ENGT430/DI/1GD3
6. ハードディスク: 1TB 7200 rpm シリアルATA3 ハードディスク
7. パーティション分割: パーティション分割無し
8. 光学ドライブ: DL対応DVDスーパーマルチ(LG電子製 GH24NS70 / 書き込みソフト付き / SATA接続)
9. PCケース: eX.computerオリジナル MicroATXスリムタワーケースラック / EX1-7302T-S12F
10. ケースオプション: AeroSlim 用 12cm 冷却ファン
11. ケースオプション: AeroSlim 用 12cmフィルター(防塵エアロフィルター)
12. 入力機器: SRSET/YDKBU02BK-M2055R
詳細な設定は左欄の「windows7 home」 へ

■ Phase viewer
0. Phase-viewerを入れる前に、ゴーストスクリプト(gs902w32.exe)をインストール。
1. CISSPHASE-Viewer_v320_winを解凍(例えば、ファイルをLhaplusに入れる)
2. setupwin32を起動
3. 格納場所が(x86)と付くので、そのままインストールしてみる。
4. Enter the maximum heap size in MB にて、
  PCのメモリーが1GB以上あればディフォルトの512 MBで良い。
5. Install source code for third party softwares にチェックを入れる。
6. Phase_v1100またはuvsor_v341にあるwbinの中身を、C:\Program Files (x86)\CISS\PHASE-Viewer\bin にある bin の中へコピーして入れる。uvsor_v341のwbinの中にはPhase_v1100のwbinの中身が入っている。tools/binの中身も必要であればコピーしてbinの中へ入れる。
7. gncpp2_paw.gzを解凍。さらに、中にあるファイルも解凍する。そのファイルの中に、PAW用のPPが入っている。←これは上手くいかないかもしれない。
8. C:\Program Files (x86)\CISS\PHASE-Viewer\bin にある phase-viewer (windows用のバッチファイル)を起動する(ショートカットを作っておいてもよい)。 または、スタート→すべてのプログラム→CISS→PHASE-Viewer→PHASE-Viewerでも起動可能。
------------------------------------------------------------------------------

------------------------------------------------------------------------------
■ Ubuntu 11.10 (oneric) でのインストール

Phase-Viewer
1. mkdir Phase_viewer
2. cd Phase_viewer
3. tar zxvf CISSPHASE-Viewer_v320_linux.tar.gz
4. setupLinux.bin
5. Directory Name: を /home/username/CISS/PHASE-Viewer
6. Enter the maximum heap size in MB を 512
7. Install source code for third party softwares にチェックを入れる
8. /home/username/CISS/PHASE-Viewer/bin/phase-viewer で実行可能
日本語の部分の文字化け対処方法(多くの方から情報を頂いて解決。感謝)。
1. cd $HOME/CISS/PHASE-Viewer/_jvm/lib/fonts
2. mkdir fallback
3. cd fallback
4. ln -s /usr/share/fonts/truetype/takao/Takao* ./
上記で駄目な場合
4. ln -s /usr/share/fonts/truetype/ttf-japanese* ./
4. ln -s /usr/share/fonts/truetype/sazanami/sazanami* ./

-------------------------------------------------------------------------------------
■ 日本語の部分の文字化け対処方法(以下これまでの失敗例)。
1. Ubuntu Software Centerで OpenJDK Java 6 Runtime をダウンロード
2. cd /usr/lib/jvm/java-6-openjdk/jre/lib
3. cd fonts/fallback
  cd $HOME/CISS/PHASE-Viewer/_jvm/lib/fonts でも失敗。
  cd $HOME/CISS/PHASE-Viewer/_jvm/lib/oblique-fonts でも失敗。 
  cd $HOME/CISS/PHASE-Viewer/_jvm/lib/fonts/fallback で成功。
4. sudo ln -s /usr/share/fonts/truetype/takao/Takao* ./
http://coffeecupman.blog28.fc2.com/blog-entry-5.html 
5. Ubuntu Software Centerで kochi系 をダウンロード
6. ln -s /usr/share/fonts/TTF/kochi-gothic-subset.ttf
7. ln -s /usr/share/fonts/TTF/kochi-mincho-subset.ttf
http://nekolinux.blogspot.jp/2009/05/java.html
下記も試してみたが駄目だった。
wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
sudo wget https://www.ubuntulinux.jp/sources.list.d/oneiric.list -O /etc/apt/sources.list.d/ubuntu-ja.list
sudo apt-get update
http://www.ubuntulinux.jp/japanese

------------------------------------------------------------------------------
■ Phase のコンパイル
ifortとiccを用いる場合: http://www-fps.nifs.ac.jp/ito/memo/index.html
------------------------------------------------------------------------------
■ Phase のコンパイル

gfortran + ACML + FFTW3

ACMLのダウンロード
amcl-5-1-0-gfrotran-64bit.tgz
amcl-5-1-0-gfrotran-64bit-int64.tgz : Integer * 8 の場合
2. mkdir acml
3. cd acml
4. tar zxvf amcl-5-1-0-gfrotran-64bit.tgz
5. install-acml-5-1-0-gfortran-64bit.sh
http://www.softek.co.jp/SPG/Pgi/TIPS/acml.html 

FFTW3のダウンロード
1. ubuntu software center でfftw3-dev をインストール
または左欄の「ライブラリの設定」を参考にしてPCに最適な条件でライブラリを作成

OpenMPIのダウンロード
1. ubuntu software center でopenmpi をインストール
または左欄の「ライブラリの設定」を参考にしてPCに最適な条件でOpenMPIを使用可能にする

MPICH2のダウンロード
1. ubuntu software center でMPICH2 をインストール 
または左欄の「ライブラリの設定」を参考にしてPCに最適な条件でMPICH2を使用可能にする

◆ OpenMPI (gfortran) (ubuntu 12.04 64-bit)
0) ダウンロード
  sudo apt-get install openmpi-bin
  sudo apt-get install libopenmpi-dev
  sudo apt-get install emacs
1. tar zxvf phase_v1100.tar.gz
2. cd phase_v1100
3. install.sh で sh configure を bash configure に書き換える
4. ./install.sh
5. 1) GNU Linux (EM64/AMD64)
6. 0) GNU compiler collection (gfortran)
7. 1) MPI parallel
8. 2) Open MPI
   /usr
9. 0) Netlib BLAS/LAPACK
10. 0) Built-in FFT libraries
11. Do you want to use DGEMM.. [no]
12. Do you want to edit the makefile... [yes]
   emacs
   F90 のgfortran をmpif90.openmpi に書き換える0
   CC の gcc を mpicc.openmpi に書き換える
   LINK のgfortran をmpif90.openmpi に書き換える
   F90FLAGS の -I/usr/include を -I/usr/lib/openmpi/include に書き換える
   F90FLAGS 行の最後に 、-O2 -march=nocona -pipe を追加する
   F77FLAGS の -I/usr/include を -I/usr/lib/openmpi/include に書き換える
   F77FLAGS 行の最後に 、-O2 -march=nocona -pipe を追加する
   CFLAGSの -O を -O2 -march=nocona -pipe に書き換える
   LIBS の -I/usr/lib を -I/usr/lib/openmpi/lib に書き換える
13. Do you want to make PHASE now? [yes]
14. Do you want to check the installed programs? [yes]
15. /usr/bin/mpirun.openmpi -machinefile /home/*/hosts -np 2 /home/*/phase_v1100/bin/phase ne=1 nk=2

◆ OpenMPI (gfortran) + ACML 5.3.0 + FFTW3 (ubuntu 12.04 64-bit)
0) ダウンロード
  sudo apt-get install openmpi-bin
  sudo apt-get install libopenmpi-dev
  sudo apt-get install emacs
ACMLのダウンロード
  a. amcl-5-3-0-gfrotran-64bit.tgz
  b. mkdir acml
  c. cd acml
  d. tar zxvf amcl-5-3-0-gfrotran-64bit.tgz
  e. sudo ./install-acml-5-3-0-gfortran-64bit.sh
  f. accept
  g. /opt/acml5.3.0
  h. .bashrc に export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/acml5.3.0/gfortran64/lib を追加し、Terminal 上で bash を入力。
1. tar zxvf phase_v1100.tar.gz
2. cd phase_v1100
3. install.sh で sh configure を bash configure に書き換える
4. ./install.sh
5. 1) GNU Linux (EM64/AMD64)
6. 0) GNU compiler collection (gfortran)
7. 1) MPI parallel
8. 2) Open MPI
  /usr
9. 1) AMD Core Math Library (ACML)
  /opt/acml5.3.0/gfortran64/lib
10. 0) Built-in FFT libraries
11. Do you want to use DGEMM.. [no]
12. Do you want to edit the makefile... [yes]
   emacs
   F90 のgfortran をmpif90.openmpi に書き換える0
   CC の gcc を mpicc.openmpi に書き換える
   LINK のgfortran をmpif90.openmpi に書き換える
   F90FLAGS の -I/usr/include を -I/usr/lib/openmpi/include に書き換える
   F90FLAGS 行の最後に 、-O2 -march=nocona -pipe を追加する
   F77FLAGS の -I/usr/include を -I/usr/lib/openmpi/include に書き換える
   F77FLAGS 行の最後に 、-O2 -march=nocona -pipe を追加する
   CFLAGSの -O を -O2 -march=nocona -pipe に書き換える
   LIBS の -I/usr/lib を -I/usr/lib/openmpi/lib に書き換える
13. Do you want to make PHASE now? [yes]
14. Do you want to check the installed programs? [yes]
15. /usr/bin/mpirun.openmpi -machinefile /home/*/hosts -np 2 /home/*/phase_v1100/bin/phase ne=1 nk=2

◆ OpenMPI (gfortran) + ACML 5.3.0 + FFTW3 + OpenMP (ubuntu 12.04 64-bit)
0) ダウンロード
   sudo apt-get install openmpi-bin
   sudo apt-get install libopenmpi-dev
   sudo apt-get install emacs
ACMLのダウンロード
   a. amcl-5-3-0-gfrotran-64bit.tgz
   b. mkdir acml
   c. cd acml
   d. tar zxvf amcl-5-3-0-gfrotran-64bit.tgz
   e. sudo ./install-acml-5-3-0-gfortran-64bit.sh
   f. accept
   g. /opt/acml5.3.0
   h. .bashrc に export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/acml5.3.0/gfortran64_mp/libを追加し、Terminal 上で bash を入力。
   i. .bashrc に export OMP_NUM_THREADS=2 を追加し、Terminal 上で bash を入力。
1. tar zxvf phase_v1100.tar.gz
2. cd phase_v1100
3. install.sh で sh configure を bash configure に書き換える
4. ./install.sh
5. 1) GNU Linux (EM64/AMD64)
6. 0) GNU compiler collection (gfortran)
7. 1) MPI parallel
8. 2) Open MPI
   /usr
9. 1) AMD Core Math Library (ACML)
  /opt/acml5.3.0/gfortran64_mp/lib
10. 0) Built-in FFT libraries
11. Do you want to use DGEMM.. [no]
12. Do you want to edit the makefile... [yes]
   emacs
   F90 のgfortran をmpif90.openmpi に書き換える0
   CC の gcc を mpicc.openmpi に書き換える
   LINK のgfortran をmpif90.openmpi に書き換える
   F90FLAGS の -I/usr/include を -I/usr/lib/openmpi/include に書き換える
   F90FLAGS 行の最後に 、-O2 -march=nocona -pipe を追加する
   F77FLAGS の -I/usr/include を -I/usr/lib/openmpi/include に書き換える
   F77FLAGS 行の最後に 、-O2 -march=nocona -pipe を追加する
   CFLAGSの -O を -O2 -march=nocona -pipe に書き換える
   LIBS の -I/usr/lib を -I/usr/lib/openmpi/lib に書き換える
   LIBS の -lacml を -lamcl_mp に書き換える
13. Do you want to make PHASE now? [yes]
14. Do you want to check the installed programs? [yes]
15. /usr/bin/mpirun.openmpi -machinefile /home/*/hosts -np 2 /home/*/phase_v1100/bin/phase ne=1 nk=2
------------------------------------------------------------------------------
◆ gfortran
1. tar zxvf phase_v1001.tar.gz
2. cd phase_v1001
3. install.sh で sh configure を bash configure に書き換える
4. ./install.sh
5. src_phase にある m_constraints.F90 の 5262 と 5272行にある write(nfout, '(i,3f20.10)' ) を write(nfout, '(i1,3f20.10)' ) に変える。
6. ディフォルトでのコンパイルは成功する。
※ check プログラムでは正常に動作したが、規模が大きくなると正常に動作するかは分からない。ソースコードの文脈から考えるに大丈夫だと思うが、iの出力が2桁以上だと i2 など桁数に応じた数をiの後に付け加えなければならない。
http://ameblo.jp/yakiniku-kuihoudai-001/entry-11147742426.html  

◆ gfortran + FFTW3
1. tar zxvf phase_v1001.tar.gz
2. cd phase_v1001
3. install.sh で sh configure を bash configure に書き換える
4. ./install.sh
5. src_phase にある m_constraints.F90 の 5262 と 5272行にある write(nfout, '(i,3f20.10)' ) を write(nfout, '(i1,3f20.10)' ) に変える。
6. ubuntu software center でfftw3-dev をインストールした場合、FFT のところで 1) とし、/usr/lib を入力する。FFTW3をコンパイルした場合は /usr/local/lib を入力。
7. ディフォルトでのコンパイルは成功する。
8. .bashrc に export PATH=$HOME/phase_v1001/bin:$PATH を追加する。
※ check プログラムでは正常に動作したが、規模が大きくなると正常に動作するかは分からない。ソースコードの文脈から考えるに大丈夫だと思うが、iの出力が2桁以上だと i2 など桁数に応じた数をiの後に付け加えなければならない。

◆ gfortran + ACML 5.1.0 + FFTW3
1. tar zxvf phase_v1001.tar.gz
2. cd phase_v1001
3. install.sh で sh configure を bash configure に書き換える
4. ./install.sh
5. src_phase にある m_constraints.F90 の 5262 と 5272行にある write(nfout, '(i,3f20.10)' ) を write(nfout, '(i1,3f20.10)' ) に変える。
6. .bashrc に export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/acml5.1.0/gfortran64/lib を追加し、Terminal 上で bash を入力。
7. ubuntu software center でfftw3-dev をインストールした場合、FFT のところで 1) とし、/usr/lib を入力する。FFTW3をコンパイルした場合は /usr/local/lib を入力。
8. ディフォルトでのコンパイルは成功する。
9. .bashrc に export PATH=$HOME/phase_v1001/bin:$PATH を追加する。
※ check プログラムでは正常に動作したが、規模が大きくなると正常に動作するかは分からない。ソースコードの文脈から考えるに大丈夫だと思うが、iの出力が2桁以上だと i2 など桁数に応じた数をiの後に付け加えなければならない。
※ /opt/acml5.1.0 でない場所に ACML をインストールした場合には書き換える。筆者の場合、/home/acml5.1.0/gfortran64/lib とした。
http://d.hatena.ne.jp/msr_humpy/20120421/1335025888 
http://devgurus.amd.com/thread/125370 

◆ gfortran + ACML 5.1.0 + FFTW3 + OpenMP
1. tar zxvf phase_v1001.tar.gz
2. cd phase_v1001
3. install.sh で sh configure を bash configure に書き換える
4. ./install.sh
5. src_phase にある m_constraints.F90 の 5262 と 5272行にある write(nfout, '(i,3f20.10)' ) を write(nfout, '(i1,3f20.10)' ) に変える。
6. .bashrc に export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/acml5.1.0/gfortran64_mp/lib を追加し、Terminal 上で bash を入力。 
7. ubuntu software center でfftw3-dev をインストールした場合、FFT のところで 1) とし、/usr/lib を入力する。FFTW3をコンパイルした場合は /usr/local/lib を入力。
8. edite the makefile のところで yes にして、 emacs か kwrite を入力
   F90FLAGS と F77FLAGS 行の最後に -fopenmp を追加。
   LIBS 行で -lacml を -lacml_mp に書き換え、この行の最後にある -lfftw3 の後に -lfftw3_threads -lfftw3_omp を追加して保存して閉じる。
9. ディフォルトでのコンパイルは成功する。
 10. .bashrc に export PATH=$HOME/phase_v1001/bin:$PATH を追加する。
※ check プログラムでは正常に動作したが、規模が大きくなると正常に動作するかは分からない。ソースコードの文脈から考えるに大丈夫だと思うが、iの出力が2桁以上だと i2 など桁数に応じた数をiの後に付け加えなければならない。
※ /opt/acml5.1.0 でない場所に ACML をインストールした場合には書き換える。筆者の場合、/home/acml5.1.0/gfortran64_mp/lib とした。

◆ MPICH2(gfortran) + ACML 5.1.0 + FFTW3 (調査中)
0. MPICH2のダウンロード
   sudo apt-get install mpich2
   sudo apt-get install mpich-mpd-bin
1. tar zxvf phase_v1001.tar.gz
2. cd phase_v1001
3. install.sh で sh configure を bash configure に書き換える
4. ./install.sh
5. src_phase にある m_constraints.F90 の 5262 と 5272行にある write(nfout, '(i,3f20.10)' ) を write(nfout, '(i1,3f20.10)' ) に変える。
6. .bashrc に export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/acml5.1.0/gfortran64_mp/lib を追加し、Terminal 上で bash を入力。
7. 1) MPI parallel を選択し、1) MPICH を選び、/usr と入力。
8. ubuntu software center でfftw3-dev をインストールした場合、FFT のところで 1) とし、/usr/lib を入力する。FFTW3をコンパイルした場合は /usr/local/lib を入力。
9. MPI parallel FFT? で yes を選択
10. edite the makefile のところで yes にして、 emacs か kwrite を入力
    F90 と LINK のgfortran をmpif90.mpich2 に書き換える
    CC の gcc を mpicc.mpich2 に書き換える
    F90FLAGS の -I/usr/include を -I/usr/mpich2/include に書き換える
    F77FLAGS の -I/usr/include を -I/usr/mpich2/include に書き換える
    LIBS 行で -lacml を -lacml_mp に書き換え、-lfftw3 の後に -lfftw3_threads -lfftw3_mpi を追加し、-L/usr/lib を -L/usr/mpich2/lib に書き換えて保存して閉じる。
11. ディフォルトでのコンパイルは成功する。
12. .bashrc に export PATH=$HOME/phase_v1001/bin:$PATH を追加する。
※ check プログラムでは正常に動作したが、規模が大きくなると正常に動作するかは分からない。ソースコードの文脈から考えるに大丈夫だと思うが、iの出力が2桁以上だと i2 など桁数に応じた数をiの後に付け加えなければならない。
※ /opt/acml5.1.0 でない場所に ACML をインストールした場合には書き換える。筆者の場合、/home/acml5.1.0/gfortran64_mp/lib とした。
※ checkでの計算は正常に動作したが並列化されているかは不明。http://www.arch.itc.nagoya-u.ac.jp/~hirano/pukiwiki/index.php?mpd%A4%CE%B5%AF%C6%B0
http://www.nslabs.jp/mpi-setup.rhtml 
http://am112705.blog.so-net.ne.jp/2009-09-13 
http://tech.ckme.co.jp/mpi.shtml

◆ OpenMPI(gfortran) + ACML 5.1.0 + FFTW3 (調査中)
0. OpenMPIのダウンロード
  sudo apt-get install openmpi-bin
  sudo apt-get install libopenmpi-dev
  下記はもしかしたら必要かもしれない。
  sudo apt-get install mpi-default-bin
  sudo apt-get install yorick-mpy-openmpi
  sudo apt-get install libhdf5-openmpi-dev
1. tar zxvf phase_v1001.tar.gz
2. cd phase_v1001
3. install.sh で sh configure を bash configure に書き換える
4. ./install.sh
5. src_phase にある m_constraints.F90 の 5262 と 5272行にある write(nfout, '(i,3f20.10)' ) を write(nfout, '(i1,3f20.10)' ) に変える。
6. .bashrc に export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/acml5.1.0/gfortran64_mp/lib を追加し、Terminal 上で bash を入力。
7. 1) MPI parallel を選択し、2) Open MPI を選び、/usr と入力。
8. ubuntu software center でfftw3-dev をインストールした場合、FFT のところで 1) とし、/usr/lib を入力する。FFTW3をコンパイルした場合は /usr/local/lib を入力。
9. MPI parallel FFT? で yes を選択
10. edite the makefile のところで yes にして、 emacs か kwrite を入力
   F90 と LINK のgfortran をmpif90.openmpi に書き換える
   CC の gcc を mpicc.openmpi に書き換える
   F90FLAGS の -I/usr/include を -I/usr/openmpi/include に書き換える
   F77FLAGS の -I/usr/include を -I/usr/openmpi/include に書き換える
   LIBS 行で -lacml を -lacml_mp に書き換え、-lfftw3 の後に -lfftw3_threads -lfftw3_mpi を追加し、-L/usr/lib を -L/usr/openmpi/lib に書き換えて保存して閉じる。
11. ディフォルトでのコンパイルは成功する。
12. .bashrc に export PATH=$HOME/phase_v1001/bin:$PATH を追加する。
※ check プログラムでは正常に動作したが、規模が大きくなると正常に動作するかは分からない。ソースコードの文脈から考えるに大丈夫だと思うが、iの出力が2桁以上だと i2 など桁数に応じた数をiの後に付け加えなければならない。
※ /opt/acml5.1.0 でない場所に ACML をインストールした場合には書き換える。筆者の場合、/home/acml5.1.0/gfortran64_mp/lib とした。
※ checkでの計算は正常に動作したが並列化されているかは不明。

◆ gfortran + ACML 5.1.0 + ACML FFTW3(調査中)
1. tar zxvf phase_v1001.tar.gz
2. cd phase_v1001
3. install.sh で sh configure を bash configure に書き換える
4. ./install.sh
5. src_phase にある m_constraints.F90 の 5262 と 5272行にある write(nfout, '(i,3f20.10)' ) を write(nfout, '(i1,3f20.10)' ) に変える。
6. .bashrc に export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/acml5.1.0/gfortran64/lib を追加し、Terminal 上で bash を入力。
7. FFT のところで 2) とし、/opt/acml5.1.0/gfortran64/lib を入力する。
8. ディフォルトでのコンパイルは成功する。
9. .bashrc に export PATH=$HOME/phase_v1001/bin:$PATH を追加する。
※ check プログラムでは正常に動作したが、規模が大きくなると正常に動作するかは分からない。ソースコードの文脈から考えるに大丈夫だと思うが、iの出力が2桁以上だと i2 など桁数に応じた数をiの後に付け加えなければならない。
※ /opt/acml5.1.0 でない場所に ACML をインストールした場合には書き換える。筆者の場合、/home/acml5.1.0/gfortran64/lib とした。
※ ソースコード中にACMLFFT用の書き込みが無い。m_FFTにてcontainsの部分と他のソースコードで use により呼ばれるサブルーチンの記述が無い。

------------------------------------------------------------------------------
◆ 高速化

◆ gfortran + ACML 5.1.0 + FFTW3 + OpenMP + コンパイルオプション
1. tar zxvf phase_v1001.tar.gz
2. cd phase_v1001
3. install.sh で sh configure を bash configure に書き換える
4. ./install.sh
5. src_phase にある m_constraints.F90 の 5262 と 5272行にある write(nfout, '(i,3f20.10)' ) を write(nfout, '(i1,3f20.10)' ) に変える。
6. .bashrc に export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/acml5.1.0/gfortran64_mp/lib を追加し、Terminal 上で bash を入力。
7. ubuntu software center でfftw3-dev をインストールした場合、FFT のところで 1) とし、/usr/lib を入力する。FFTW3をコンパイルした場合は /usr/local/lib を入力。
8. edite the makefile のところで yes にして、 emacs か kwrite を入力
  F90FLAGS と F77FLAGS 行の最後に -fopenmp -O2 -march=nocona -pipe を追加
  CFLAGSの -O を -O2 -march=nocona -pipe に書き換える。
  LIBS 行で -lacml を -lacml_mp に書き換え、この行の最後にある -lfftw3 の後に -lfftw3_threads -lfftw3_ompを追加して保存して閉じる。
9. ディフォルトでのコンパイルは成功する。
10. .bashrc に export PATH=$HOME/phase_v1001/bin:$PATH を追加する。
※ check プログラムでは正常に動作したが、規模が大きくなると正常に動作するかは分からない。ソースコードの文脈から考えるに大丈夫だと思うが、iの出力が2桁以上だと i2 など桁数に応じた数をiの後に付け加えなければならない。
※ /opt/acml5.1.0 でない場所に ACML をインストールした場合には書き換える。筆者の場合、/home/acml5.1.0/gfortran64_mp/lib とした。
※ FFTW3を Ubuntu Software Center でダウンロードせずに、cpuに適切なオプションを用いてコンパイルする場合は、左欄のライブラリを参考にしてみるとよい。下記(付録:コンパイルオプションでの対策)を参照。この場合、上記7. では /usr/lib ではなく /usr/local/lib を指定するとディフォルトの指定になる。
※ -march のオプションのより詳細な記述は下記(付録:コンパイルオプションでの対策)を参照。

◆ gfortran + GotoBLAS2 + FFTW3 + OpenMP + コンパイルオプション(調査中:失敗)
1. tar zxvf phase_v1001.tar.gz
2. cd phase_v1001
3. install.sh で sh configure を bash configure に書き換える
4. ./install.sh
5. src_phase にある m_constraints.F90 の 5262 と 5272行にある write(nfout, '(i,3f20.10)' ) を write(nfout, '(i1,3f20.10)' ) に変える。
6. ubuntu software center でfftw3-dev をインストールした場合、FFT のところで 1) とし、/usr/lib を入力する。FFTW3をコンパイルした場合は /usr/local/lib を入力。
7. edite the makefile のところで yes にして、 emacs か kwrite を入力
   F90FLAGS と F77FLAGS 行の最後に -fopenmp -O2 -march=nocona -pipe を追加
   CFLAGSの -O を -O2 -march=nocona -pipe に書き換える。
   LIBS 行で -L./ -llapack -lblas を -L/usr/local/lib -lgoto2 -lgoto2_lapack -lgoto2_blas に書き換え、この行の最後にある -lfftw3 の後に -lfftw3_threads -lfftw3_ompを追加して保存して閉じる。
8. ディフォルトでのコンパイルは成功する。
9. .bashrc に export PATH=$HOME/phase_v1001/bin:$PATH を追加する。
※ check プログラムでは正常に動作したが、規模が大きくなると正常に動作するかは分からない。ソースコードの文脈から考えるに大丈夫だと思うが、iの出力が2桁以上だと i2 など桁数に応じた数をiの後に付け加えなければならない。
※ /opt/acml5.1.0 でない場所に ACML をインストールした場合には書き換える。筆者の場合、/home/acml5.1.0/gfortran64_mp/lib とした。
※ FFTW3を Ubuntu Software Center でダウンロードせずに、cpuに適切なオプションを用いてコンパイルする場合は、左欄のライブラリを参考にしてみるとよい。下記(付録:コンパイルオプションでの対策)を参照。この場合、上記7. では /usr/lib ではなく /usr/local/lib を指定するとディフォルトの指定になる。
※ -march のオプションのより詳細な記述は下記(付録:コンパイルオプションでの対策)を参照。
※ undefined reference to 'omp_get_num_threads'や'omp_get_thread_num'、'GOMP_parallel_start'、'GOMP_parallel_end' などが表示される。

◆ gfortran + ATLAS + FFTW3 + OpenMP + コンパイルオプション(調査中)
今後調査してみる方法・要点
A) Netlib を選択
B) edite the makefile のところで yes にして、 emacs か kwrite を入力
C) LIBSの行を ATLASを用いたコンパイル形式に書き換える(左欄 ライブラリ参照)

◆ MPICH2(gfortran) + ACML 5.1.0 + FFTW3 (調査中)
0. MPICH2のダウンロード
    sudo apt-get install mpich2
    sudo apt-get install mpich-mpd-bin
1. tar zxvf phase_v1001.tar.gz
2. cd phase_v1001
3. install.sh で sh configure を bash configure に書き換える
4. ./install.sh
5. src_phase にある m_constraints.F90 の 5262 と 5272行にある write(nfout, '(i,3f20.10)' ) を write(nfout, '(i1,3f20.10)' ) に変える。
6. .bashrc に export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/acml5.1.0/gfortran64_mp/lib を追加し、Terminal 上で bash を入力。
7. 1) MPI parallel を選択し、1) MPICH を選び、/usr と入力。
8. ubuntu software center でfftw3-dev をインストールした場合、FFT のところで 1) とし、/usr/lib を入力する。FFTW3をコンパイルした場合は /usr/local/lib を入力。
9. MPI parallel FFT? で yes を選択
10. edite the makefile のところで yes にして、 emacs か kwrite を入力
     F90 と LINK のgfortran をmpif90.mpich2 に書き換える
     CC の gcc を mpicc.mpich2 に書き換える
     CFLAGSの -O を -O2 -march=nocona -pipe に書き換える
     F90FLAGS の -I/usr/include を -I/usr/mpich2/include に書き換える
     F77FLAGS の -I/usr/include を -I/usr/mpich2/include に書き換える
     F90FLAGS と F77FLAGS 行の最後に 、-O2 -march=nocona -pipe を追加する
     LIBS 行で -lacml を -lacml_mp に書き換え、-lfftw3 の後に -lfftw3_threads -lfftw3_mpi を追加し、-L/usr/lib を -L/usr/mpich2/lib に書き換えて保存して閉じる。
11. ディフォルトでのコンパイルは成功する。
12. .bashrc に export PATH=$HOME/phase_v1001/bin:$PATH を追加する。
※ check プログラムでは正常に動作したが、規模が大きくなると正常に動作するかは分からない。ソースコードの文脈から考えるに大丈夫だと思うが、iの出力が2桁以上だと i2 など桁数に応じた数をiの後に付け加えなければならない。
※ /opt/acml5.1.0 でない場所に ACML をインストールした場合には書き換える。筆者の場合、/home/acml5.1.0/gfortran64_mp/lib とした。
※ checkでの計算は正常に動作したが並列化されているかは不明。
http://www.arch.itc.nagoya-u.ac.jp/~hirano/pukiwiki/index.php?mpd%A4%CE%B5%AF%C6%B0 
http://www.nslabs.jp/mpi-setup.rhtml 
http://am112705.blog.so-net.ne.jp/2009-09-13 
http://tech.ckme.co.jp/mpi.shtml 

◆ OpenMPI(gfortran) + ACML 5.1.0 + FFTW3 (調査中)
0. OpenMPIのダウンロード
   sudo apt-get install openmpi-bin
   sudo apt-get install libopenmpi-dev
   下記はもしかしたら必要かもしれない。
   sudo apt-get install mpi-default-bin
   sudo apt-get install yorick-mpy-openmpi
   sudo apt-get install libhdf5-openmpi-dev
1. tar zxvf phase_v1001.tar.gz
2. cd phase_v1001
3. install.sh で sh configure を bash configure に書き換える
4. ./install.sh
5. src_phase にある m_constraints.F90 の 5262 と 5272行にある write(nfout, '(i,3f20.10)' ) を write(nfout, '(i1,3f20.10)' ) に変える。
6. .bashrc に export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/acml5.1.0/gfortran64_mp/lib を追加し、Terminal 上で bash を入力。
7. 1) MPI parallel を選択し、2) Open MPI を選び、/usr と入力。
8. ubuntu software center でfftw3-dev をインストールした場合、FFT のところで 1) とし、/usr/lib を入力する。FFTW3をコンパイルした場合は /usr/local/lib を入力。
9. MPI parallel FFT? で yes を選択
10. edite the makefile のところで yes にして、 emacs か kwrite を入力
    F90 と LINK のgfortran をmpif90.openmpi に書き換える
    CC の gcc を mpicc.openmpi に書き換える
    CFLAGSの -O を -O2 -march=nocona -pipe に書き換える
    F90FLAGS の -I/usr/include を -I/usr/openmpi/include に書き換える
    F77FLAGS の -I/usr/include を -I/usr/openmpi/include に書き換える
    F90FLAGS と F77FLAGS 行の最後に 、-O2 -march=nocona -pipe を追加する
    LIBS 行で -lacml を -lacml_mp に書き換え、-lfftw3 の後に -lfftw3_threads -lfftw3_mpi を追加し、-L/usr/lib を -L/usr/openmpi/lib に書き換えて保存して閉じる。
11. ディフォルトでのコンパイルは成功する。
12. .bashrc に export PATH=$HOME/phase_v1001/bin:$PATH を追加する。
※ check プログラムでは正常に動作したが、規模が大きくなると正常に動作するかは分からない。ソースコードの文脈から考えるに大丈夫だと思うが、iの出力が2桁以上だと i2 など桁数に応じた数をiの後に付け加えなければならない。
※ /opt/acml5.1.0 でない場所に ACML をインストールした場合には書き換える。筆者の場合、/home/acml5.1.0/gfortran64_mp/lib とした。
※ checkでの計算は正常に動作したが並列化されているかは不明。
 
------------------------------------------------------------------------------
付録:コンパイルオプションでの対策
※ 指定されたCPUに対応したオプションを選定すると計算速度が速くなる。
◆ 一般的なIntel系CPUの場合
gfortran -march=nocona -pipe
gcc -march=nocoa -pipe
◆ Core2 の場合
gfortran -mtune=core2 -march=core2 -m64 -O3 -pipe -funroll-all-loops
gcc -mtune=core2 -march=core2 -m64 -O3 -pipe -funroll-all-loops
◆ Core i7 の場合
gfortran -mtune=corei7 -march=corei7 -m64 -O3 -pipe -funroll-all-loops
gcc -mtune=corei7 -march=corei7 -m64 -O3 -pipe -funroll-all-loops
※ 上手くコンパイルできない場合は、-funroll-all-loops を除いたり、-O3 を -O2 にしたりする。
http://www.cc.toin.ac.jp/sc/sugimoto/gfortran/gfor0610.pdf 
◆ 一般的な Intel系CPUの場合(下記のオプションでは自動で最適なものを選んでくれる)
ifort -axSSE4.2,SSE4.1,SSSE3,SSE -mcmodel=large -i-dynamic -O2
icc -axSSE4.2,SSE4.1,SSSE3,SSE -mcmodel=large -i-dynamic -O2
※ -m64 や -mcmodel=large -i-dynamic は大規模計算の場合
※ 最適化のオプションは副作用の少ない -O2 が推奨。ただし、副作用の生じないコードを書けている自信がある場合はより計算速度が速くなると予測される -O3 などでも良い。
http://seismon.blog85.fc2.com/blog-entry-80.html 
http://home.hiroshima-u.ac.jp/~tyoshida/pukiwiki/index.php?FortranTips 
http://tsubame.gsic.titech.ac.jp/docs/guides/tsubame2/html/programming.html 
------------------------------------------------------------------------------
QRコード
携帯用QRコード
アクセス数
ページビュー数