Linuxシステムでのプログラミング環境の構築

1.Linuxのインストール(ディストリビューションの一覧

後述の数値計算パッケージ(行列計算などに便利)を使用しないならこれだけでプログラミングを開始できる。

Fortranサンプル(area.f)

> g77 -o area area.f       (コンパイル)
> ./area                   (実行)
input radius
1.0
radius r = 1.00000 area = 3.1415920
STOP area statement executed

C言語サンプル(area.c)

> gcc -o area area.c -lm   (コンパイル)
> ./area                   (実行)
input radius
1.0
radius r = 1.000000, area a = 3.141592

 

2.数値演算ライブラリLAPACKのインストール(LAPACK公式マニュアル

以下の中から好きな方法を選んでください。下に行くほど労力を要します。(gccがインストールされていることを仮定しています)

  1. 最もお手軽な方法

    http://stat.scphys.kyoto-u.ac.jp/~ryoichi/CP/lapack/lapack.tar.gz にアクセスし、lapack.tar.gzを任意のディレクトリ(例えば ~/lapack)に保存する。

    > mkdir lapack
    > cd lapack
    > netscape &  (netscapeから上のファイルにアクセスし、保存)

    保存したディレクトリで以下を実行してライブラリを解凍・インストールし、不要なファイルを削除する。

    > tar xvfz lapack.tar.gz
    > su
    Password:
    # mv *.a /usr/lib/.
    # exit
    > rm lapack.tar.gz


    サンプルプログラム[Fortran, C]でテストをする。

    > gcc sample.c -O -llapack -lblas -lm -lg2c
    > ./a.out
    ....
    > g77 sample.f -O -llapack -lblas
    > ./a.out
    ....


     
  2. 多少こだわりたい人

    Linuxでは各ベンダーからBLAS/LAPACKのrpmファイルが 供給されていること が多いので、それをインストールしてもよい。例えば該当rpmファイルのあるディレクトリで以下のようにする。

    > rpm -ivh blas-3.0-14.i386.rpm
    > rpm -ivh lapack-3.0-14.i386.rpm
    > gcc linear.c -O -llapack -lblas -lm -lg2c
    > ./a.out
    ....
    > g77 linear.f -O -llapack -lblas
    > ./a.out
    ....

     
  3. ライブラリのコンパイルを自分でやりたい人

    Netlibよりソースファイル(atlas3.*.*.tgz, lapack.tzg)をダウンロード・解凍する。[ATLAS/LAPACK]

    LAPACKのインストール(以下、ソースファイルを各自のホームディレクトリで解凍したものと仮定する。)

    > cd LAPACK
    > cp INSTALL/make.inc.LINUX ./make.inc
    > make lapacklib
    > su
    Password:
    # mv lapack_LINUX.a /usr/lib/liblapack.a
    # exit

    ATLASのインストール

    > cd ATLAS
    > make config
    .... (各種質問に答える。ほとんどデフォルトでよい。)
    ....
    Configuration completed successfully. You may want to examine the make include
    file (Make.Linux_P4SSE2) for accuracy before starting the install with the command:
    make install arch=Linux_P4SSE2 (←ここに出るコマンドを次に実行する)
    ....
    > make install arch=Linux_P4SSE (Linux_P4SSEの部分は適宜変更すること)
    ....
    > su
    Password:
    # mv lib/Linux_P4SSE/*.a /usr/lib/.
    # exit

    サンプルプログラム[Fortran, C]でテストをする。

    > gcc sample.c -llapack -lf77blas -latlas -lg2c -lm
    > ./a.out
    ....
    > g77 sample.f -llapack -lf77blas -latlas
    > ./a.out
    ....

 

3.Intelのコンパイラ・数値演算ライブラリをインストールすればPentiumプロセッサーで最高の性能が得られる(オプション)

Intelからよりパフォーマンスの優れたf90, c++コンパイラ(非商用に限りLinux版はフリー、Windows版は非商用でも有料)がリリースされており

http://www.intel.com/software/products/

からダウンロードして利用することができる(要登録)。

さらに同じ場所にある「パフォーマンスライブラリの数値演算ライブラリ(Intel Math Kernel Library)」にはPentium用に最適化されたBLASとLAPACKが含まれ ている。(Linux用、Windows用があり、どちらも研究用途でのダウンロードが認められている、要登録)

インストール後、以下のコマンドでコンパイル

Fortran90
> ifc sample.f -O3 -L/opt/intel/mkl/lib/32/ -lmkl_lapack -lmkl_p4 -lpthread

C, C++
> icc sample.c -O3 -L/opt/intel/mkl/lib/32/ -lmkl_lapack -lmkl_p4 -lpthread

-lmkl_p4 (Pentium4)
-lmkl_p3 (Pentium3)
-lmkl_def (それ以外)