目次 >> AWS >> AWS ParallelClusterのその他の設定
maintain_initial_sizeはinitial_queue_sizeで指定された計算ノード数を維持するかどうかを決める。
デフォルトではfalseであり、クラスターがアイドル状態だと計算ノード数が最終的にすべて削除される。
maintain_initial_size = false
これをtureにしておくと、どんなにアイドル状態が続いても、initial_queue_size以下にはならない。リザーブドインスタンスなどを利用している場合は、このオプションをtrueにしておくと、ジョブ投入後、ノードの起動を待たずに実行することができる。
マスターノードのディスクのサイズである。デフォルトでは17GBである。
8GBでも立ち上がるが、データを格納したり、アプリケーションをインストールすることを考えると最低でも10GBはほしいところである。
大きくすれば、その分価格に跳ね返ってくる。ただし、ディスクの価格はCPUの価格と比べると微々たるものである。
また、多数のノードを立ち上げるとgangliaが意外なほど容量を使う(数GB)場合があるので、注意が必要である。100ノード程度立ち上げる場合は、最低でも30GBは用意しておいたほうが良い。
master_root_volume_size = 50
計算ノードのディスクサイズである。デフォルトでは17GBである。
15GB以下では立ち上がらない。ディスクの読み書きをローカルディスクにするプログラムを走らせる場合、大きくする必要がある。
計算ノードは数が多い分、値を大きくすれば、価格に大きく跳ね返ってくるので注意。
ローカルディスクに書き込みが必要な場合、RAMディスク(/dev/shm/)を利用することも検討すべきである。
compute_root_volume_size = 17
この項目は、/sharedでマウントされるボリュームの設定である。
volume_sizeで、サイズを設定する。デフォルトでは20GBである。
[ebs custom] volume_size = 20
/sharedは複数のユーザーで共有できるディレクトリであるが、不要な場合も多い(各ユーザーのホームディレクトリの容量はmaster_root_volume_sizeで決まる)。
サイズを0にしてもデフォルトの大きさで作成されてしまうので、不要な場合は下記のようにして削除し、料金がかからないようにする。
まず、/etc/fstabファイルをviで編集する。
sudo vi /etc/fstab
# LABEL=/ / ext4 defaults,noatime 1 1 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/disk/by-ebs-volumeid/vol-1a0fcd97 /shared ext4 _netdev 0 0
このようになっていると思うので、最後の行を削除し、
# LABEL=/ / ext4 defaults,noatime 1 1 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0
のようにして、再起動する。
あとはEC2 Management Consoleから該当ボリュームをデタッチして削除すればよい。(削除作業を忘れると、料金がかかり続けるので注意)
AWS ParallelClusterはジョブのキューの長さによって、ノードの数を自動的に増減させる。
Auto Scaling増減の基準を設定するのがこの項目である。
scaling_cooldownは増減動作が行われてから、次に増減動作を行うまでの間隔を設定する。
デフォルトでは300秒、すなわり5分なのであるが、この数値は少し短すぎるようで、1つ増やしたものの、立ち上がりに5分前後かかり、キューには1つしか待ちがないのに2つノードが起動してしまう場合がしばしばおこる。
倍の600秒前後に設定すればこのような問題は起きないようである。
[scaling custom] scaling_cooldown = 600
ec2-user以外でクラスターを利用したい場合(例えば複数人で使う場合など)、ユーザーを追加する必要がある。マスターノードで、いわゆるUnixの通常の方法で追加しただけでは、計算ノード上にユーザーが存在しないのでうまくいかない。
やりかたは、まず、additionalsetting.shというテキストファイルを用意して、中身を
sudo useradd -m -d /home/foo foo sudo useradd -m -d /home/boo boo sudo useradd -m -d /home/hoge hoge
のように書く。foo、boo、hogeは実際のユーザー名にする。改行コード(LFにする)に注意する。そしてこのadditionalsetting.shをS3にアップロードして、公開設定(public)にする。
あとは、configファイルに
post_install = https://hogehogehoge.s3.amazonaws.com/additionalsetting.sh
と設定して、クラスターを起動すればよい。
sudo su
でルートになれる
GCCはあらかじめインストールされているので、C言語で書かれたソースファイルなどはすぐにコンパイルして実行することができる。
もし、最新版のGCCを独自にコンパイルしてインストールしたい場合は、こちらを参照してください。
静止画を変換するImageMagickはマスターノードで使用する場合は
$ sudo yum install ImageMagick
でインストールできる。
しかし、これは、計算ノードからは使えない。計算ノードから使用する場合は、下記のFFmpeg同様、独自にコンパイルして、${HOME}/binなどに置いて、パスを通しておく必要がある。
下記のスクリプトを実行すると、
wget https://www.imagemagick.org/download/ImageMagick.tar.xz tar xvJf ImageMagick.tar.xz cd ImageMagick* ./configure --prefix=${HOME}/bin --disable-shared --enable-delegate-build make -j make install cp -p ${HOME}/bin/bin/convert ${HOME}/bin/
${HOME}/binにconvertが作成される。${HOME}/bin以下にもいくつかディレクトリが作成されるがそれらは削除してはいけない。
動画のエンコードには、ffmpegが便利であるが、yumコマンドではインストールできない。
独自にコンパイルして、インストールする必要がある。やり方はこちら
最終更新日