FLASH codeは、オープンソースの物理ソルバーです。本項では、OCTOPUSでFLASH codeを使用するためのインストール方法、ジョブ投入方法について解説します。
 

ソフトウェアの取得

下記のページから、FLASH codeをダウンロードしてください。ユーザ登録が必要となりますので、ご自身で登録の上ダウンロードをお願いいたします。
FLASH code(Flash Center, University Chicago)
 

コンパイル前の事前準備

FLASH codeをコンパイルするためには、事前にOpenMPの設定及び、HDF5、PnetCDF、HYPREのインストールが必要となります。
 

    OpenMPIの設定

      FLASH code及び全ての関連ソフトウェアはOpenMPIおよびGNUコンパイラを用いてコンパイルします。
      コンパイルする前に、以下のコマンドを実行し、OpenMPI-GNUコンパイラを設定してください。

      BASE=/octfs/apl/HPC-X/hpcx-v2.2.0-gcc-MLNX_OFED_LINUX-4.2-1.2.0.0-redhat7.3-x86_64
      source ${BASE}/hpcx-init.sh
      hpcx_load

      OpenMPIの利用方法については下記を参考にしてください。
      OpenMPI利用方法
       

    HDF5のインストール

    HDF5(Hierarchical Data Format 5)とは階層化されたデータを格納し、管理するデータモデル、ライブラリ、ファイル形式のことです。柔軟かつ効率的なI/O、大量で複雑なデータ向けに設計されています。
    本項では、hdf5-1.8.20をダウンロードし、自身のhomeディレクトリ配下にインストールする際の手順を示します。
    HDF5配布元 HDF Gourp
     

    1. 下記よりhdf5-1.8.20のソースコードをダウンロードします。

    2. 任意のディレクトリに設置し、解凍してください。

      tar xvzf hdf5-1.8.20.tar.gz

     

    3. make,make installを実施します。

      cd hdf5-1.8.20
      ./configure --prefix=/octfs/work/(ご自身のグループ名)/(ご自身の利用者番号)/HDF5/ --enable-fortran CC=mpicc F9X=mpif90 --enable-parallel
      make
      make install

       

    PnetCDFのインストール

    PnetCDFとは、NetCDF形式(配列指向のデータアクセスの為の形式)のファイルにアクセスするための高性能並列I/Oライブラリです。
    本項では、PnetCDF-1.9.0をダウンロードし、自身のhomeディレクトリ配下にインストールする際の手順を示します。
    PnetCDF配布元
     

    1. 下記よりPnetCDF-1.9.0のソースコードをダウンロードします。

    2. 任意のディレクトリに設置し、解凍してください。

      tar xvzf parallel-netcdf-1.9.0.tar.gz

     

    3. make,make installを実施します。

      cd parallel-netcdf-1.9.0
      ./configure --prefix=/octfs/work/(ご自身のグループ名)/(ご自身の利用者番号)/PnetCDF/
      make
      make install

       

     

    HYPREのインストール

    HYPRE-2.11.2をダウンロードし、自身のhomeディレクトリ配下にインストールする際の手順を示します。
    HYPRE配布元
     

    1. 下記よりHYPRE-2.11.2のソースコードをダウンロードします。

    2. 任意のディレクトリに設置し、解凍してください。

      tar -xzvf hypre-2.11.2.tar.gz

     

    3. make,make installを実施します。

      cd hypre-2.11.2/src
      ./configure --prefix=/octfs/work/(ご自身のグループ名)/(ご自身の利用者番号)/HYPRE/ CC=mpicc F9X=mpif90
      make
      make install

       

コンパイル方法

    本項ではFLASH code 4.5でLaserSlab Simulationをコンパイルする方法を解説します。
    公式よりコンパイル方法や利用方法を解説するマニュアルが提供されておりますので、併せてご参照ください。
    FLASH code サポートページ
     
    1.FLASH codeを任意のディレクトリに設置・解凍してください。
     

    2.setupスクリプトを実行します。

    cd FLASH4.5/
    ./setup -auto LaserSlab

     

    3.Makefileを修正します。

    cd object
    vi Makefile.h

    以下を修正してください。

    MPI_PATH = /octfs/apl/HPC-X/hpcx-v2.2.0-gcc-MLNX_OFED_LINUX-4.2-1.2.0.0-redhat7.3-x86_64/ompi/
    HDF5_PATH = /octfs/work/(ご自身のグループ名)/(ご自身の利用者番号)/HDF5
    NCMPI_PATH = /octfs/work/(ご自身のグループ名)/(ご自身の利用者番号)/PnetCDF
    HYPRE_PATH = /octfs/work/(ご自身のグループ名)/(ご自身の利用者番号)/HYPRE

    ※ご自身のグループ名は"id -gn"コマンド等で確認可能です。

     

    4.LD_LIBRARY_PATHを設定します。

    export LD_LIBRARY_PATH=/octfs/work/(ご自身のグループ名)/(ご自身の利用者番号)/HDF5/lib:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH=/octfs/work/(ご自身のグループ名)/(ご自身の利用者番号)/PnetCDF/lib:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH=/octfs/work/(ご自身のグループ名)/(ご自身の利用者番号)/HYPRE/lib:$LD_LIBRARY_PATH

     

    5.makeを実行します。

    make

    再コンパイルする際はmake cleanコマンドを実行した後に、makeコマンドを実行してください。
    コンパイルに成功すると、"flash4"という実行ファイルが生成されます。
     

実行方法

    FLASH codeはバッチリクエストによる処理のみ許可しております。
    フロントエンドノードに接続し、計算に必要な入力ファイル、ジョブスクリプトを作成後、ジョブ投入して行います。
    FLASH codeを利用する際のジョブスクリプト例と、ジョブ実行方法について以下で解説いたします。
     

    ジョブスクリプトの作成

    以下の例は96プロセス(4ノード使用、ノード当たり24プロセス)で実行する場合のジョブスクリプト例です。
    ファイル名に特に指定はありませんが、本項ではflash.shとしています。
     

     

    実行方法

    作成したジョブスクリプトを投入します。

    % qsub flash.sh

    実行が成功すると、結果ファイルに計算結果が出力されます。