株式会社アスムス
先頭へ
先頭へ

技術情報:計算機使いこなしのコツ

プログラム開発環境構築(2016年3月版)

材料シミュレーションに役立つ優れたオープンソースソフトウェアが多数公開されています。これらソフトウェアの多くは、ソースコードのみが配布されていて、利用するには事前のコンパイルが必要です。特にMPI並列を利用するソフトウェアは、その実行形式ファイルがMPI実行環境に依存するため、実行形式ファイルでの配布が難しいことが、この背景にあります。そこでコンパイル(プログラム開発)環境を整えようとするのですが、科学技術計算では現在でもFortranが用いられることが多く、そのコンパイラとMPI開発環境を用意することは、それほど簡単ではありません。

そこで、できるだけ簡単に、無料で利用可能なソフトウェアのみを用いて、FortranコンパイラとMPI開発環境を含む、プログラム開発環境を整える方法をご紹介します。この目的を達成するためには、WindowsではなくLinuxを利用した方が便利です。各ソフトウェアは、執筆時点の最新版です。

仮想計算機の用意

Linuxをインストールするためのパソコンを新たに一台用意できればそれに越したことはありませんが、それができなくても仮想化技術を用いればWindows上(Macでも良い)で動作する仮想的な計算機(仮想マシン)を実現できます。この仮想マシンには、Windows(ホストOSと呼ばれます)とは別のOS(ゲストOS)をインストールして利用します。仮想化のためのソフトウェアは複数ありますが、ここではVirtualBoxを使います。ダウンロードして、インストールして下さい。以下ではWindows 64bit版の5.0.16を使って説明します。

仮想マシン作成

インストールできたら、早速起動しましょう。メニューから「新規」を選んで、仮想マシンを新規作成します。「名前」に仮想マシンの名前を入れますが、ここでは「CentOS」として下さい。「タイプ」と「バージョン」が自動設定されます。64 bit OSが選択できない場合は、BIOSで仮想化機能が無効になっていませんか。有効にしてから再実行して下さい。「次へ」を押して先に進むと、いくつかの設定項目があります。メモリは多めに割り当てたいので、搭載されているメモリ量の半分程度を指定します(後から簡単に変更できるので適当に決めて下さい)。その他、大量のデータを扱えるようにハードディスク量を増やす以外は、デフォルトの設定で良いでしょう。ディスクは、指定した量が直ちに利用されるのではなく、必要な分だけが利用されます。上限を指定すると考えて、多めに設定することをお勧めします。

作成した仮想マシンを選択して「設定」を押すと、多数の設定項目が現れます。まず、「システム」-「プロセッサー」から、CPU数を設定します。せっかくMPIをインストールするのですから、複数のCPUを仮想マシンに割り当てましょう。後から変更できるのでとりあえず「2」とします、

同じく設定画面から「ネットワーク」を選択します。最初はアダプター1のみが有効化されていると思います(割り当てはNAT)。アダプター2を有効化して、割り当てを「ホストオンリーアダプター」に設定します。それぞれ以下の役割を果たします。

ローカルオンリーアダプターの追加

ホストオンリーアダプターを選択した際に「無効な設定が見つかりました(ホストオンリーアダプターが未選択です)」となった場合は、メイン画面のファイルメニューから「環境設定」を選択し、「ネットワーク」-「ホストオンリーネットワーク」から、新しいネットワークを追加して、Windowsを再起動して下さい。

次に、仮想マシンにゲストOSとして、Linuxをインストールします。

Linuxインストール

仮想マシン設定

Linuxには様々なディストリビューションが存在します。その多くは互いに良く似ているのですが微妙な差異があり、不慣れな方を混乱させます。ここでは、CentOSを利用します。Red Hat Enterprise Linux互換を目指しているディストリビューションであり、FOCUSスパコンでも利用されています。DVDイメージ(ISOファイル)をダウンロードしてください。ここでは「CentOS-7-x86_64-DVD-1511.iso」を用います。

仮想マシンの光学ドライブは「空」になっているのでクリックして「ディスクイメージを選択」から、このISOファイルを指定します。仮想マシンを「起動」すると、CentOSのインストーラーが起動します。表示される指示に沿って操作してください。

ソフトウェアの選択

インストール途中「ソフトウェアの選択」には注意して下さい。デフォルトは「最小限のインストール」になっていますがこれはお勧めしません。GUIがあった方が便利です。GUIを含む選択肢(ベース環境)は複数ありますが「GNOME Desktop」を選びました。その上で「選択した環境のアドオン」から「開発ツール」を追加してください。またこの段階で、ネットワークを有効にしておくと良いでしょう。

インストールが終了して仮想マシンを再起動すると、Linuxが利用できます。ネットワークが無効になっている場合は、画面右上部分を操作して、二つのインターフェースを「接続」して下さい。

高性能開発環境のインストール

(本作業は省略可能です)

ここまでの手続きでオープンソースのコンパイラ(GNUコンパイラ;Fortran, C, C++)がインストールされているのですが、残念ながら、これらでコンパイルした実行形式ファイルの性能はあまり高くありません。そこで、より良い実行性能を得るためのプログラム開発環境Oracle Solaris Studioをご紹介します。「Download」から、Red Hat Linux用RPM installerを入手してください(ダウンロードは無料ですが、登録が必要です)。CentOSで動作するとは謳われていませんが、おそらく大丈夫です。

インストーラーを起動するに当たって、OracleのJava実行環境が必要です。こちらの説明に沿ってインストールして下さい。

Solaris Studioのインストールは、ダウンロードファイルを展開して、インストーラーを実行します。

$ tar jxvf SolarisStudo12.4-linux-x86-rpm.tar.bz2
$ cd SolarisStudo12.4-linux-x86-rpm/
$ su
Password: 【パスワード】
# ./solarisstudio.sh

インストールが終了しても、そのままではライブラリが不足しているためにコンパイラを利用できませんでした。以下のコマンドを実行して、ライブラリを追加します。

# yum install ld-linux.so.2
# yum install libelf.so.1
特に指定しなければ、コンパイラは/opt/oracle/solarisstudio12.4/binにインストールされます。ログイン時に同ディレクトリが環境変数PATHに自動的に追加されるよう、.bashrcに次の一行を追加します。(引き続きMPIをインストールする場合は、コマンドとして次の行を実行して下さい。)
export PATH=/opt/oracle/solarisstudio12.4/bin:$PATH

MPIのインストール

材料シミュレーションの実行は長時間に及ぶことが多く、ソフトウェアの多くは計算時間短縮のためにMPIを利用した並列計算に対応しています。そのようなソフトウェアをコンパイルするためには、MPI開発環境が必要であり、ここではOpen MPIを利用します。ファイルをダウンロードして展開します。

$ tar jxvf openmpi-1.10.2.tar.bz2
$ cd openmpi-1.10.2

GNUコンパイラを利用する場合はインストール場所の指定のみ追加します。

$ ./configure --prefix=/opt/openmpi

Solaris Studioを利用する場合には、コンパイラ起動コマンドを追加指定します。

$ ./configure --prefix=/opt/openmpi CC=cc FC=f90 CXX=CC

その後の操作は共通です。

$ make
$ su
Password: 【パスワード】
# make install

最後に、MPI関連コマンドのPATHをログイン時に設定するように、.bashrcに次の一行を追加します。

export PATH=/opt/openmpi/bin:$PATH

以上でMPIを含むプログラム開発環境が整いました。こちらでは利用例としてPHASEシステム研究会から配布されているPHASE/0のコンパイルとテスト計算をご紹介します。


PHASE/0製品版のご利用にあたりご不明な点や、解析、カスタマイズのご依頼・ご相談などにつきましてはお問い合せください。

ナノ材料シミュレーション お問い合わせ ナノ材料シミュレーション 解析のご依頼へ