Mac (OS10.6)へのQuantum-ESPRESS(pwscf)のインストール 2010/11/21

  • Macportsでコンパイラをインストール(注意;これを参考にする場合はまず最後まで読むこと)
    • http://www.macports.org/install.phpからSnow Leopard用のパッケージをダウンロード。普通のアプリケーションのようにGUIでインストールする。/opt/local/にインストールされる。http://guide.macports.org/を見て、使い方を少し調べる。なおmacportsを動かすにはXcodeがインストールされている必要があります。
    • とりえあずmacportsのupdate
      > sudo port selfupdate
    • gcc46が最新らしいのでgcc46とg95をインストールする(しかし後で見るようにopenmpiがgcc44に対応だし、g95は並列化に対応してないので、この作業は無駄になった)。コンパイルに時間がかなりかかった。
      > sudo port install gcc46
      > sudo port install g95
      念のために、既にあるmpi*をリネームしておく。openmpiがmacportsにあるかチェック。
      > port info openmpi
      openmpi 1.5があるが、そのためにはgcc44が必要であるとなっている。なおopenmpiはmpiのオープンソースで、Openmpとは違います。とりえあずインストールしてみる。
      > sudo port install openmpi
      見ているとまず最初にgcc-44をインストールしている。gcc-46のインストールは不要だった。openmpiをちょっとテストしてみる。コンパイルしたプログラムを動かす(openmpirun)とネットワーク接続のダイアログが一瞬出てくる。とりあえず1台でしか使わないので無視する。
  • Quantum-Espressoのインストール
    • 本家からQEのソース(この時点で最新版4.2.1)をダウンロードする。とりあえずマニュアルに載っているMac OS 10.6の例(GNUのコンパイラを使う場合)でconfigureする。
      > ./configure CC=gcc-mp-4.6 CPP=cpp-mp-4.6 CXX=g++-mp-4.6 F77=g95 FC=g95 
      結果はsuccessになっているが、g95が並列化に対応してないので、gfortranを選んだとなっている.gfortranをインストールした記憶はないが、調べるとopenmpiのインストール時にgfortran-mp-4.4が自動的にインストールされていた。openmpi, gfortranがgcc-44でコンパイルされているので、整合性の点で、C関係も4.4を使うことにする。LibraryでFFT_LIBSが検出されなかったが、QEディストリビューションに入っているソースからコンパイルするということだろう。
      >./configure MPIF90=openmpif90 CC=gcc-mp-4.4 CPP=cpp-mp-4.4 CXX=g++-mp-4.4 F77=gfortran FC=gfortran
      最も重要なpwscfのみmake pwでmakeしてみる。正常にコンパイルされた。チュートリアルに置いてあるSi結晶のscf計算の入力ファイル(si.scf.in)を動かしてみる。擬ポテンシャルのあるファイルのディレクトリを入力ファイルの頭で指定している部分を正しく書き換え、使う擬ポテンシャル名を設定する。これを以下のように実行させた。
      > pw.x < si.scf.in > si.scf.out
      ネットワーク接続のダイアログが一瞬出てくるが、計算自体は正常にsi.scf.outに出力されている。大丈夫そうなので、make allでプログラムを全てコンパイルする。GWWのコンパイル(最後のリンクのところで)エラーが出て止まる。残りは個別にmakeできた。できた実行ファイルのある場所にパスを通しておく。
    • GWWのエラーはまだ解決できてないが、これを使う予定は今のところないので、とりあえずpwscf計算で遊んでみよう。
    • cpでopenmpiを試す。使っているMacのCPUは2コアなので、プロセッサー数を2にしてみたら2−3割くらい速くなった。
      >openmpirun -np 2 cp.x < test.in > test.out &
  • 追記:2010/12/10
    • 使ってみてpw.x, cp.xでは問題が特に出てないが、bands.xなどいくつかのプログラムは実行時にエラーが発生したため、再度インストールする。もう一度ユーザーマニュアル(pdf)のMac OSXの部分をよく見直すと、./configureのオプションの最後の部分が端で切れていることに気づいた。マニュアルのTeX版の方を見ると、切れていた部分が分かり、そこではQEに同封されているBLAS,LAPACKライブラリーを使うことを指定している。Apple自体のライブラリーは安定性がよくないらしい。まずmake cleanで以前のオブジェクト等を消す。今回は以下のconfigureを実行する。
      >./configure MPIF90=openmpif90 CC=gcc-mp-4.4 CPP=cpp-mp-4.4 CXX=g++-mp-4.4 F77=gfortran FC=gfortran --with-internal-blas --with-internal-lapack
      ライブラリはBLAS_LIBS="-L/..."等と直接場所で指定してもよい。これでmake allする(GWWのみまだエラーがでる)。試しみるとbands.x等でエラーが出なくなった。以前のAppleのライブラリーはスレッドレベルで並列化されていたようだが、今回のQEのものは並列化されていない。Activity monitorでCPUの使用状態を見ると、違いがよく分かる。今回の方で並列化した場合には以前よりも速くなった。
  • なので結局QEのMac OSX 10.6 Intel Macへのインストール法としては、
    • まずMacportsでopenmpiをインストールする。これで必要なコンパイラも自動的にインストールされるはず。
    • 上の通りconfigureして、make allする。make allに含まれてない分(GIPAWなど)で必要なものは個別にmakeする。なおconfigureオプションを変更して、再makeするときは、make cleanを事前に実行する。
  • その後でMacbook AirにQEを入れてみた。まずDVDが付属してないので、XcodeはAppleからダウンロードしてインストールする必要がある。configureでうまくgfortranを見つけてくれない。必要ないけれどg95を入れたり、最初やった手順通りにやる。その後でopenmpiを再度インストールし、configureする。
    >./configure MPIF90=openmpif90 CC=gcc-mp-4.4 CPP=cpp-mp-4.4 CXX=g++-mp-4.4 F77=gfortran-mp-4.4 FC=gfortran-mp-4.4 --with-internal-blas --with-internal-lapack
    • これでやっとmake all出来た。Macbook Airで本格的な計算をすることもないだろうが、デモなどには使える。速度としてはMacbook Pro (core i7)の半分くらい。

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-01-15 (月) 10:56:04 (402d)