シリーズ目次
- FrontISTR をAWS で動かす~AWSネットワーク構築編~
- FrontISTR をAWS で動かす~AWS S3, EC2 作成編~
- FrontISTR をAWS で動かす~EC2にFrontISTRをインストール編~
AMI をカスタムしていく
AMI をカスタムしていくぅ, 立ち上げたEC2インスタンスに FrontISTRをインストールしていく.ここからの作業は EC2インスタンス上の作業であることを明示するためコマンドラインの先頭に[aws]と付けることとする.
パッケージ群のアップデート
はじめに, デフォルトでインストールされているパッケージ群をアップデートする
[aws] $ sudo yum update- y
ネットワークオプションを切り替える
今回使用した AMI の EC2インスタンスは, MPIライブラリは Open-MPI がデフォルトになっているが, Elastic Fablic Adapter(EFA) とよばれる高速なネットワークオプションを利用することを見据えて Intel MPI に切り替える
[aws] $ module load intelmpi
Intel MKL のインストール
今回は FrontISTRのライブラリに Intel Math Kernel Library(MKL) を指定するので, Intel MKL のインストールをする
[aws] $ sudo yum-config-manager -add-repo https://yum.repos.intel.com/mkl/setup/intel-mkl.repo
[aws] $ sudo rpm -import https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
インテル公式から下記に似てるコマンドを探して実行する(執筆時点はこうだった)
[aws] $ sudo yum -y install intel-mkl-2020.0-088
環境設定用スクリプトを実行する
AMI の中に 環境設定用のスクリプトが用意されているので, source コマンドを利用して実行する
[aws] $ source /opt/intel/mkl/bin/mklvars.sh intel64
AMI に FRontISTR をインストールする
autofistr をダウンロードする
FrontISTRのインストールにはautofistrを使う
[aws] $ git clone https://github.com/kazuya-goto/autofistr.git
autofistr フォルダに移動し
[aws] $ cd ~/autofistr
任意のエディタで autofistrのビルド設定ファイルMakefile.inを編集する.
[aws] autofistr$ vi Makefile.in
BUILD_TYPE = RELEASE
COMPILER = GCC
MPI = IMPI
BLASLAPACK = MKL
NJOBS = 1
今回は, コンパイラはGCC, MPIライブラリはIntelMPI, BLASLAPACKは** Intel MKL** の設定でビルドすることとする.また, 無料枠の t2.micro インスタンス を利用しているため, ビルド時の並列数を意味する NJOB は 1 を入れた.
ビルド
autofistr フォルダで makeコマンドを実行する
[aws] autofistr$ make
しばらくこんな感じでビルドが終了するのを待ちます.
あとかたずけ
最後に下記のコマンドを実行して **AMI*作成前の準備をする
[aws] $ sudo /usr/local/sbin/ami_cleanup.sh
カスタムした(FrontISTRをインストールした)AMI を作成する
AWS コンソールに戻りマネジメントコンソールのサービス一覧よりEC2を選択する.
インスタンスを停止
対象のインスタンスを選択して インスタンスの状態▼-インスタンスを停止をクリックする
イメージを作成
インスタンスの停止を確認し, アクションボタンからイメージとテンプレート-イメージを作成をクリック