UGEにおけるメモリ利用量の確認と指定
スーパーコンピューターを使う時に、UGEでjobが割り振られるシステムが用いられる事がある。
qsubでjobを投げるが、それについては別の機会にMemoできれば。
今回は、メモリの確認と指定をMemo
qsubでjobを投げると、ソフトリミットによりUGEjobの利用可能な最大メモリ量が制限されている場合がある(5.3GBや8.0GBまでなど)。
ソフトリミットを解除するには
qsub -l s_vmem=数値G,mem_req=数値G
と使用メモリを指定して宣言する必要がある。
mem_req=8Gと指定すると、ホストの搭載メモリ量が128GBだった場合、
ホストの残りメモリ量が、mem_req=120Gとなる。
qreportを用いれば、投入予定のjobの最大メモリ量を確認できる。
と言っても、一度qsubでjobを投げなければいけない模様。
qsub memory.sh
qstat
と打って、jobIDを確認する(一番左に表示される)。
ジョブの終了を待つ(終了しなければ、最大量が分からない)。
qreport -j jobID | grep maxvmum
と打つと、memory.shを実行した際に使用した最大仮想メモリサイズ(maxvmem)が表示される。
けどこれって、完了できるjobのメモリ使用量しか分からないと思う。当然ながら仕方ないけど。メモリエラーでコアダンプが表示された場合は、どうすれば良いのか悩ましい。
一度、メモリ大きめに指定して動かすのが良いのだろうか。>記事作成後の今は、1回目はメモリ指定を大きめに取ることにして、次回から必要量だけ指定することにしている。