AORI 並列計算機

2012 年 3 月 6日 改訂
井上 潤

マニュアル一覧はこちらです.
電子計算機システム 利用の手引き」に最低限必要な内容がまとめられています.

2012 年に導入された新システムの利用についてはこちらをご覧下さい.並列計算サーバ(p750a)は従来と同様の使い方のようです.新しく Linux のワークステーション(pe610)も導入されました.Matlab が利用できるそうです [2012 年 3 月].


ログインと環境設定

ログイン
並列計算サーバ p750a:

ssh USERID@p750a.aori.u-tokyo.ac.jp

利用者用ワークステーション pe610

ssh USERID@pe610.aori.u-tokyo.ac.jp

としてログインします.その後パスワードを聞かれるので答えます.

環境設定
ログンした後で,「tcsh」と入力して tcsh シェルにすると,コマンド補完 (Tab を押すことで候補のコマンドを完結する) を使えるようになります.
 mule や vi などで .tcshrc ファイルを作成し,以下の内容を書いてホームディレクトリ「 ~/」に保存します.

# .tcshrc
# User specific aliases and functions

setenv PATH ".:/usr/sbin:/sbin:$PATH"
setenv MANPATH "$MANPATH"
set prompt='[%n@%m %c] '

set path = ($path . /home/beosg/jinoue/bin /usr/local/bin/)



RAxML のコンパイル

RAxML の最新バージョンはこちらからダウンロードしてください.マニュアルは古いサイトにあるこちらです.
*コンパイルの前に,

rm *.o

として .o 拡張子のファイルを取り除いてください.これをやらないと,あやまったコンパイルが行われたにも係らず,プログラムが得られてしまうことがあります.



Makefile.gcc


下記部分を書き換えて

make -f Makefile.gcc

としてコンパイルを行います.

<4行目〜7行目 変更前>

CC = gcc
CFLAGS = -D_GNU_SOURCE -fomit-frame-pointer -funroll-loops -O2 -msse

<4行目〜7行目 変更後>

CC = xlc
CFLAGS = -D_GNU_SOURCE -O2



Makefile.PTHREADS.gcc

下記部分を書き換えて

make -f Makefile.PTHREADS.gcc

としてコンパイルを行います.

<4行目〜10行目 変更後>

CC = xlc_r
CFLAGS = -qsmp -D_GNU_SOURCE -D_USE_PTHREADS
LIBRARIES = -lm -lpthread -lxlsmp



paml のコンパイル

paml のコンパイルでは,make のかわりに gmake を用います.その前にいくつかファイルの内部を変更する必要があります.

Makefile の 4 行名を変更します.

---Makefile 4行目---
※先の2行目と18行目はオリジナルのまま変更しなくて大丈夫です.

<変更前>
CFLAGS = -O4 -funroll-loops -fomit-frame-pointer -finline-functions

<変更後>
CFLAGS = -O3 -qstrict

その後,"mcmctree.c"で使用している"FreeMem"がシステムのヘッダーと
名前が重複しておりエラーとなってしまうため,mcmctree.cの51行目、354行目
3126行目の計3ヶ所にある「FreeMem」を「FreeMemPAML」など適当な名前に変更してください.
以上、ファイルの変更後,

gmake -f Makefile

にてコンパイルします.5 分ぐらいかかりました.
うまく行かない場合は,paml4.4c.tar.gz を試してださい.


ちなみに,mcmctree.c の「FreeMem」を変更しないでコンパイルすると,以下のようなエラーメッセージが出ました.

[jinoue@p570a src] gmake -f Makefile
cc -O3 -qstrict -o baseml baseml.c tools.c -lm
baseml.c:
tools.c:
cc -O3 -qstrict -o codeml codeml.c tools.c -lm
codeml.c:
tools.c:
cc -O3 -qstrict -o basemlg basemlg.c tools.c -lm
basemlg.c:
tools.c:
cc -O3 -qstrict -o mcmctree mcmctree.c tools.c -lm
mcmctree.c:
"mcmctree.c", line 51.6: 1506-334 (S) Identifier FreeMem has already been defined on line 200 of "/usr/include/sys/vm_types.h".
tools.c:
gmake: *** [mcmctree] Error 1




実行パスの作成

[以下の記述は正しいかどうか自身がありません (2010 年 9 月)]

ホームディレクトリにある「.profile」ファイルを書き換えて,「/u/loadl/bin」に実行パスを追加します.「PATH=」の部分は行が別れていますが, 一行で書いてください.

[jinoue@p570a ~] cat .tcshrc
# .tcshrc
# User specific aliases and functions

setenv PATH ".:/usr/sbin:/sbin:$PATH"
setenv MANPATH "$MANPATH"
setenv TERM vt100
set prompt='[%n@%m %c] '

alias ls ls-F
set color

set path = ($path . /home/beosg/jinoue/bin /usr/local/bin/)


Job Command File の作成

Job Command File (JCF)です.これを

llsubmit test.jcf

としてジョブに投入します.


通常 version (raxmlHPC)

#!/bin/csh
# @ class = SS
# @ output = OUTFILE
# @ error = ERRFILE
# @ notify_user = jinoue@aori.u-tokyo.ac.jp
# @ notification = complete
# @ environment = COPY_ALL
# @ queue
date
./raxmlHPC -f a -x 12345 -p 12345 -\# 10 -m GTRGAMMA -s 40_11681.phy -q part -o ScyScyCan -n outfile
echo "Program Fisnished"

HPC_fol.tar.gz


Pthreads version (raxmlHPC-PTHREADS) *

#!/bin/csh
# @ class = P4
# @ resources = ConsumableCPUs(4)
# @ output = OUTFILE
# @ error = ERRFILE
# @ queue
# export OMP_NUM_THREADS=4
./raxmlHPC-PTHREADS -f a -x 12345 -p 12345 -\# 10 -m GTRCAT -s 40_1000.phy -o ScyScyCan -n outfile -T 4

Pthreads_fol.tar.gz

以上のファイルにある OUTFILE に解析状況と解析時間が書いてあります.

This is the RAxML Master Pthread
This is RAxML Worker Pthread Number: 1
This is RAxML Worker Pthread Number: 2
This is RAxML Worker Pthread Number: 3
......
Overall execution time for full ML analysis: 57.461821 secs or 0.015962 hours or 0.000665 days

のようになっていれば,-T 4 の解析が動いたことになります.

なお,Pthreads version は -T 4 が最も速いです.並列計算機システムを管理されている方に伺ったのですが,-T 4 以上を海洋研の並列計算機で使うには,プログラム側でチューニングが必要なようです.RAxML には MPI バージョンもあるので,より高速化を図るには,そちらを試す必要があるそうです.

"-T 2"
Overall execution time for full ML analysis: 76.230795 secs or 0.021175
hours or 0.000882 days

"-T 4"
Overall execution time for full ML analysis: 64.794977 secs or 0.017999
hours or 0.000750 days

"-T 8"
Overall execution time for full ML analysis: 115.052927 secs or 0.031959
hours or 0.001332 days

"-T 16"
Overall execution time for full ML analysis: 180.674046 secs or 0.050187
hours or 0.002091 days

"-T 32"
Overall execution time for full ML analysis: 475.846027 secs or 0.132179
hours or 0.005507 days


長時間にわたる解析 (mcmctree)

#!/bin/csh
# @ class = SL
# @ output = OUTFILE
# @ error = ERRFILE
# @ notify_user = jinoue@aori.u-tokyo.ac.jp
# @ notification = complete
# @ environment = COPY_ALL
# @ queue
date
mcmctree > srout_usedata2
echo "Program Fisnished"

ジョブクラス (@class =) は SL (72 時間) が最長です.マニュアルの P19 を参照してください.SS は 3 時間,P32 や P16, P14 は 24 時間です.

 

その他のコマンド

llq

投入されたジョブを確認します.

llcancel p570a.150.0

p570a.150.0 のジョブをキャンセルします.

llstatus

マシンの状態を確認します.


気付いた点
  • vi は使いにくいです.インストールを試みましたが,うまく行きませんでした.

muleの使い方

mule は「/usr/local/bin/mule」にあります.上記の .tcshrc ファイルにパスが作成されているので,どのディレクトリにいても mule とすることで起動できます.最初は以下のエラーメッセージが出ましたが,「setenv TERM vt100」を .tcshrc ファイルに書き込むことで mule が起動するようになりました.これでだめなら「unset TERMINFO」も試してみてください.

[jinoue@p570a ~] /usr/local/bin/mule
emacs: Terminal type xterm-color is not defined.
If that is not the actual type of terminal you have,
use the Bourne shell command `TERM=... export TERM' (C-shell:
`setenv TERM ...') to specify the correct type. It may be necessary
to do `unset TERMINFO' (C-shell: `unsetenv TERMINFO') as well.

基本操作はこちらが参考になります.