• Category Archives FAQ
  • Freeの64bit版Fortranのセットアップ方法(4)

    最後です。

    インストールしたgfortranがOpenMPでマルチコアで動くかどうかチェックしてみます。

    まず、環境変数の設定が必要です。
    [システムのプロパティ]-[詳細設定]-[環境変数]から、新規に以下を設定します。

    変数名:OMP_NUM_THREADS

    4つCPUがある場合は、変数値を

    変数値:4

    と入力してください。

    次に、チェックするためのFortranソースとして、姫野ベンチを使います。以下のサイトから、Fortran90用のソースをダウンロードします。

    http://accc.riken.jp/2462.htm#itemid4504

    himenoBMTxp.f90 を用意したら、MingGWのコマンドプロンプトから、以下のようにコンパイルします。

    >gfortran -O3 -m64 -fopenmp himenoBMTxp.f90 -o himeno-omp

    これで、”himeno-omp.exe”が作成されます。この後に、実行ファイルからリロケート情報とシンボルテーブルを削除するSTRIPを実行してもかまいません。

    >strip himeno-omp.exe

    これにより、実行ファイルのサイズが減少します。

    次に、姫野ベンチを実行します。

    >himeno-omp

    下記の例では、Sサイズを選択します。タスクマネージャを起動して、CPUの駆動状態を確認しましょう。CPUのコア数最大で動いていることがわかると思います。

    この計算では、4個のCPUでマルチコアモードで動作させると、1個のCPUと比べて約1.4倍計算時間が速くなりました。

    以上で説明は終わります。LAPACKを使ったコンパイルの仕方や、LAPACK95、GOTOBLASを使用したい場合などは、その都度、コンパイルオプションを変更する必要があります。また機会がありましたら、このBlogにアップしたいと思います。



  • Freeの64bit版Fortranのセットアップ方法(3)

    LAPACKのインストール方法についてです。

    NetlibからダウンロードしたLAPACKは、元々LinuxなどのOS用に最適化されていますので、Windows OSで使用する場合には、少し変更が必要になります。

    まず、LAPACKを解凍しましょう。
    以下のようなディレクトリ構造になりますので、適当な場所に保存してください。

    lapack-3.4.2 — [DOCS]
    [INSTALL]
    [lapacke]
    [SRC]
    [TESTING]
    [BLAS]
    [CMAKE]

    ここでは、”lapack-3.4.2”のディレクトリ名を”lapack”に変更します。なお、変更しなくても動作はします。

    次に、lapackのルートディレクトリにmake.incファイルを作成します。[INSTALL]ディレクトにある”make.inc.gfortran”をlapackのルートディレクトリに移動し、ファイル名を”make.inc”に変えてください。

    この状態で、Mingwのコマンドプロンプトから、
    >mingw32-make all
    とすると LAPACKのコンパイルが開始されるのですが、Windows OSでは普通エラーが起こるはずです。実は、各ディレクトにあるmakefileの一部の書式をWindows用に変更しなければなりません。主な変更点は次の通りです。

    ① パイプを示すセミコロン”;”を”&”に置換します。
      だたし、すべて変えてしまうと、動かなくなります。
      例えば、
    cd INSTALL; $(MAKE) -> cd INSTALL& $(MAKE)
    と変更してください。一方で、
       slaruv.o: slaruv.f ; $(FORTRAN) $(NOOPT) -c $< -o $@
      の中央部にあるセミコロンはそのままにしてください。

    ② ディレクトリの”/”は”¥”にしないと動かない場合があります。

    以上の変更は様子を見ながら置換して下さい。すべて変えてしまうとおかしくなる場合があります。

    ③ エディタで、LAPACKのルートディレクトリにあるmakefileを以下のように変更して、blaslibのコンパイルを有効化します。
       #lib: lapacklib tmglib
        lib: blaslib variants lapacklib tmglib

    ④ mingw32-makeを実行するにあたり、cp.exe、mv.exeが必要です。前のブログでhead.exe、tail.exeを最新版に変更する方法をアップしましたが、同じファイルの中に、cp.exe、mv.exeが含まれていますので、これらの実行ファイルをパスの通ったディレクトリにコピーするか、上記の実行ファイルがあるディレクトリについて環境変数でパスを通してください。

    ⑤ makefile中で”mv”の実行ファイルを使用する際、ファイル名に”.exe”が抜けているために移動しないことがあります。適宜付けるようにすると、動くようになります。

    LAPACKのルートディレクトリに、以下の3つのファイルが作成されていたら完成です。

    librefblas.a
    liblapack.a
    libtmglib.a



  • Freeの64bit版Fortranのセットアップ方法(2)

    続きです。

    ダウンロードした”tdm64-gcc-4.7.1-3.exe”をダブルクリックして、インストールしてください。インストール方法は、表示される指示に従えば簡単だと思いますので、特に注意点はありません。デフォルトでは、C:\MinGW64にインストルールされます。

    インストールが完了しましたら、gcc-4.7.1-tdm64-1-openmp.zip、gcc-4.7.1-tdm64-1-fortran.zipを解凍して、それぞれc:\mingw64のディレクトリに解凍されたファイルをコピーしてください。これで、インストール完了です。

    使用方法は、[スタート]-[すべてのプログラム]-[MinGW64]にある”MinGW Command Prompt”ショートカットを使って、コマンドプロンプトを起動させてください。MinGWの環境変数を読み込んで起動します。

    テストとして、
    >gfortran -v
    と入力してリターンキーを押すと、下記のような表示が出ます。

    Using built-in specs.
    COLLECT_GCC=gfortran
    COLLECT_LTO_WRAPPER=c:/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/4.7.1/lto-w
    rapper.exe
    Target: x86_64-w64-mingw32
    Configured with: ../../src/gcc-4.7.1/configure –build=x86_64-w64-mingw32 –enab
    le-targets=all –enable-languages=c,c++,fortran,objc,obj-c++ –enable-libgomp —
    enable-lto –enable-libstdcxx-debug –enable-version-specific-runtime-libs –ena
    ble-fully-dynamic-string –with-gnu-ld –disable-werror –disable-nls –disable-
    win32-registry –prefix=/mingw64tdm –with-local-prefix=/mingw64tdm –with-pkgve
    rsion=tdm64-1 –with-bugurl=http://tdm-gcc.tdragon.net/bugs
    Thread model: win32
    gcc version 4.7.1 (tdm64-1)

    次に、LAPACKのインストール方法について説明します。



  • Freeの64bit版Fortranのセットアップ方法(1)

    個人で使用したい場合にお勧めするFreeの64bit版Fortranは”TDM-MinGW”です。

    ここにあります。

    http://tdm-gcc.tdragon.net/

    中央の[Dowinload TDM-GCC]をクリックしてください。今日現在、下記のものがダウンロードできます。

    tdm64-gcc-4.7.1-3 ・・・ Cコンパイラおよびライブラリが含まれる
    gcc-4.7.1-tdm64-1-openmp ・・・ OpenMPを使用する際に必要なライブラリー
    gcc-4.7.1-tdm64-1-fortran ・・・ Fortranコンパイラ(gfortran)とライブラリー

    このほかに、LAPACKライブラリーが必要な場合は、以下からダウンロードしてください。

    http://www.netlib.org/lapack/

    現在、LAPACK version 3.4.2(2012.9.25公開)がダウンロードできます。



  • Freeの64bit版Fortranのセットアップ方法

    現在、Watcom Fortranに変えて、Intel Fortranでのコンパイル化を進めていますが、個人では高価だと思いますので、GNUの64bit版FortranコンパイラーをWindows上で構築する方法を近日アップしたいと思います。ただし、現状のDVscatソースをそのままコンパイルできないのが難点なので、SCATのコンパイル方法については、もうしばらくお時間ください。



  • VESTAによる節面を含む波動関数の3D描画

    昨日、DV−Xα研究協会spd部会を開催いたしました。その中で、VESTAによる3D表示された波動関数に、節面を加えることはできないだろうか、というご意見があり、参加者全員で試行錯誤したところ、最終的に以下のような図を作成することができました。

    Nd 4f軌道の波動関数ムービー (クリックすると開きます。)

     

    このような図は、これまであまり見たことがありませんが、ボリュームレンダリングなどによる波動関数の表示よりも、かえって軌道の広がりが分かりやすい図になっているように思います。原子だけでなく、分子軌道でも同様に表示ができ、これを使って分子の反応性などが議論できるのではないかと期待されます。

    NH3の分子軌道の波動関数のムービー (クリックすると動画が開きます)

    描き方については、近々、HP,ブログあるいはMLなどで公開する予定です。