「海洋科学研究用電子計算機システム」 利用の手引き

東京大学 大気海洋研究所
「海洋科学研究用電子計算機システム」
利用の手引き
平成 24 年 5 月 17 日版
株式会社アルゴグラフィックス
「海洋科学研究用電子計算機システム」利用の手引き
目次
1
本システムについて ...................................................... 3
1.1
1.2
2
システムの基本利用方法 .................................................. 5
2.1
2.2
3
システムへのログイン方法 .............................................................. 5
各自利用可能なディスクエリアについて................................................... 5
コンパイラ等の利用 ...................................................... 7
3.1
3.2
3.3
3.4
3.5
4
システムの概要........................................................................ 3
ソフトウェア構成...................................................................... 4
Fortran Compiler...................................................................... 7
C/C++ Compiler........................................................................ 9
並列プログラムのコンパイル方法 ....................................................... 10
ESSL ................................................................................ 12
LoadLeveler ......................................................................... 13
オンラインマニュアルについて ........................................... 19
2/19
「海洋科学研究用電子計算機システム」利用の手引き
1
本システムについて
1.1 システムの概要
本システムは IBM の Power7 プロセッサを搭載した IBM Power750 サーバを中心とした並列計算機システムで
す。Power750 サーバは 1 台あたり Power7 CPU (3.6GHz)を 32 コア、メモリを 256GB 搭載したサーバ 5 台で構
成されており、1 台は対話型処理を行うフロントエンドサーバ、残り 4 台はバッチ処理を行うバックエンドサ
ーバとして運用致しております。Power750 の各ノード間接続、ならびに基幹スイッチには高速な 10G イーサネ
ットで接続されております。また、共有データ領域として、約 100TB 容量(RAID6 フォーマット)のディスクア
レイ装置を装備し、スケーラブルファイルシステムの GPFS によりディスク共有を行っております。
その他、利用者用の端末として、ワークステーション(Linux)と PC(Windows)が用意されております。また印
刷装置 XEROX 社製レーザープリンタと EPSON 社製のプロッタが用意されております。
<各機器のスペック>
1、フロントエンドサーバ (IBM Power 750×1 台)
【CPU】 Power7/3.6GHz 8core x 4 =32core
【Memory】 256GB
【HDD】 146GB/15000rpm x 4 /RAID1
【Adapter】 1000Base-T x 4,10GbE x 1, 8Gbps FC x 2
2、バックエンドサーバ (IBM Power 750×4 台)
【CPU】 Power7/3.6GHz 8core x 4 =32core
【Memory】 256GB
【HDD】146GB/15000rpm x 4 /RAID1
【Adapter】 1000Base-T x 4,10GbE x 1, 8Gbps FC x 2(1 台のみ)
3、管理用端末 (IBM Power 710×1 台)
【CPU】 Power7/3.0GHz 4core
【Memory】 46GB
【HDD】 146GB/15000rpm x 2 /RAID1
【Adapter】 1000Base-T x 4
4、ストレージシステム (IBM DS5020+EXP520)
【HDD】 2TB x 52 本 → 実効約 104TB
(RAID6:Parityx2,Sparex1,Datax13/Box x 4 =2TB x 52 = 104TB)
5、利用者用 WS (DELL PowerEdge T610)
【CPU】 Intel Xeon X5670 2.93GHz 12MB Cache
【Memory】 24GB
【HDD】1TB/7,200rpm SATA 2.5”
【Other】 1000BaseT、キーボード/マウス/ディスプレイ
6、利用者用 PC (DELL OptiPlex390)
【CPU】 Intel Core i5-2400 3.1GHz 6MB Cache
【Memory】 4GB
【HDD】 500GB/7,200rpm SATA 3.5”
【Other】 1000BaseT、キーボード/マウス/ディスプレイ
図、システム全体概要図
3/19
「海洋科学研究用電子計算機システム」利用の手引き
1.2 ソフトウェア構成
本システムに搭載している OS ならびにソフトウェアはそれぞれ下記のようになります。
<A.フロントエンド/バックエンドサーバ (IBM Power 750>
ソフトウェア名
バージョン
オペレーティングシステム
AIX7
7.1
コンパイラ
XL Fortran
13.1
XL C/C++
11.1
ライブラリ/ツール
ESSL
5.1
PESSL
3.3
PE
5.2
その他
LoadeLeveler
4.1
GPFS
4.5
<B.利用者用ワークステーション (DELL PowerEdge T610>
ソフトウェア名
バージョン
オペレーティングシステム
RedHat Enterprise
6.1
Linux Server x86_64
アプリケーション
MATLAB
7.14
<C.利用者用ワークステーション (DELL OptiPlex390>
ソフトウェア名
オペレーティングシステム
Windows7 professional
64bit
アプリケーション
Microsoft Office
Professional
Adobe Creative Suite
Open Text Exceed
Fortran コンパイラ
C/C++コンパイラ
数値演算ライブラリ
数値演算ライブラリ(並列版)
MPI ライブラリ・実行環境
バッチシステム
クラスタファイルシステム
内容
数値計算ソフトウェア
バージョン
7 (sp1)
内容
2010
オフィス統合環境
5.5
グラフィック・デザイン ソフト
ウェア
PC X サーバ
14J
4/19
内容
「海洋科学研究用電子計算機システム」利用の手引き
2
システムの基本利用方法
2.1 システムへのログイン方法
下記のサーバにログインが可能です。
フロントエンドサーバ
p750a.aori.u-tokyo.ac.jp

利用者用ワークステーション
pe610.aori.u-tokyo.ac.jp
※それぞれのシステムには希望のあったユーザのみ登録されます

各マシンへは ssh でのアクセスが可能です。所内からはパスワード認証によるアクセスが可能ですが、
所外からは、よりセキュアな ssh の公開鍵認証を用いたアクセスしか行えないよう制限されております。
例えば所内の端末からコマンドラインからフロントエンドサーバにログインするには、次のようにコマン
ド入力致します。
% ssh 自分のユーザ [email protected]
[email protected]'s password: mypassword
←パスワードを入力
※バックエンドサーバはバッチ処理専用である為、ログインして利用することはできません。
2.2 各自利用可能なディスクエリアについて
各ユーザは、ホームディレクトリならびに一時保管用ディレクトリが利用可能です。ディスクエリアは
フロントエンドサーバ、利用者用ワークステーションでそれぞれ独立しており、利用可能な容量がそれぞ
れ異なります。各自ホームディレクトリに保存できるディスク容量は下記のコマンドで確認を行います。
A)フロントエンドサーバ
$ mmlsquota
Block Limits
Filesystem type
gpfs02
KB
USR
File Limits
limit
in_doubt
grace |
files
quota
74688 524288000 629145600
0
none |
815
0
現在の使用量↑
quota
|
↑利用可能な容量 ↑一定期間まで許容される容量
B)利用者用ワークステーション
$ quota
Disk quotas for user argo (uid 75):
Filesystem blocks
quota
limit
grace
files
quota
limit
11
0
0
/dev/mapper/VolGroup00-LogVol05
44 5000000 6000000
現在の使用量↑
↑利用可能な容量
一定期間まで許容される容量
5/19
grace
limit in_doubt
0
0
grace Remarks
none
「海洋科学研究用電子計算機システム」利用の手引き
ホームディレクトリ以外に計算処理の一時保管用として/data1 ファイルシステムが用意されています。
各自自由に利用することが可能ですが、消去条件に従って定期的にファイルが消去されますので、あくま
でも一時的な利用にとどめ、利用後必要なデータはホームディレクトリへ退避するようにしてください。
<一次保管用ディレクトリ>
システム
領域名
容量
フロントエンドサーバ
/data1
20TB
利用者用ワークステーション
/data1
100GB
6/19
消去条件
毎週火曜日午前3時に強制消去
「海洋科学研究用電子計算機システム」利用の手引き
3
コンパイラ等の利用
3.1 Fortran Compiler
XL Fortran V.13.1 for AIX コンパイラは、Fortran77、90、95の各標準規格に完全準拠し、本システム
が搭載するPowerPCプロセッサファミリーのアーキテクチャーに併せた最適化機能を有したコンパイラです。
またSMP環境での並列処理を可能にする為、POSIX ptheradsライブラリやOpenMP2.0 Fortran APIをサポート
しており、自動並列化機能もサポートされています。
3.1.1 プログラムのコンパイルと実行例
次のようなサンプルプログラム”test.f”をコンパイルするには次のようにします。
① ソースファイル”test.f”の作成
program testf
write(*,*)”Hello World , XL Fortran !”
end
② コンパイル&リンク
% xlf -o testf test.f
** testf === End of Compilation 1 ===
1501-510 Compilation successful for file test.f.
*コマンド部分”xlf”をf77,f90,f95にすることで、コンパイラを選択することが可能です。
③ 実行
% ./testf
Hello World , XL Fortran !
3.1.2 大きな配列を使用する場合
コンパイラのデフォルトのデータ領域の最大は256MBに定義されています。256MBを超える大きな配
列を使用するプログラムをコンパイルする場合は、"-bmaxdata"オプションを以下の様に指定してコ
ンパイル、リンクして実行してください。(最大2GBまで定義可能)
$ xlf -bmaxdata:512000000 largeprog.f
(総計512,000,000バイトの配列、変数を使用したプログラムをコンパイル、リンク)
3.1.3 64 ビット・モードでのコンパイル及びリンク
AIX 5Lは、64ビット・モードをサポートしています。Fortranコンパイラもこれに伴い64ビット・
モードのサポートがされています。2GBを超えるような大規模な配列を操作する場合等は、次の様に
64ビット・モードでコンパイルしてご利用ください。(デフォルトは32ビット・モード)
$ xlf -q64 testprog.f
7/19
「海洋科学研究用電子計算機システム」利用の手引き
3.1.4 CPU のアーキテクチャに依存したコードの生成
本システムにはPOWER7と呼ばれるアーキテクチャのCPUが搭載されています。このCPUに依存した命
令コードにより最適化させたモジュールを生成することが可能です。但し、異なるCPUタイプのマシン
では実行できない場合があります。
$ xlf -qarch=pwr7 -qtune=pwr7 testprof.f
(POWER5プロセッサ向けのコードを作成する場合)
3.1.5 最適化コードの生成
コンパイル時に次のようなオプションを付加することにより、最適化することが可能です。
[一般的な最適化オプション(Optimize Level)]
-O3
メモリとコンパイル時間を使用して追加の最適化を行います。
-O4
-O3と次のオプションを含めて最適化を行います。
-qarch=auto,-qtune=auto,-qcache=auto
-O5
-O4と次のオプションを含めて最適化を行います。
-qipa=level=2
[特定の最適化オプション]
-qhot
このオプションで指定する引数により配列やループなどの高位変換で
最適化を行います。
-qtune
特定のハードウェア・アーキテクチャにあわせて最適化を行います。
-qturn=pwr7
-qarch
特定のハードウェア・アーキテクチャにあわせて最適化を行います。
-qarch=pwr7
-qips
このオプションで指定する引数により、プロシージャー間分析(IPA)を行い、
-O?の最適化を増大させます。
それぞれのオプションを付加することにより、コンパイル時間は増大します。また全てのオプショ
ンがそれぞれのユーザプログラムに有効ではありませんので、最適化オプションを付加しないほうが
速い場合があります。また一部の最適化オプションによってプログラムの意味や実行結果が変わって
しまう場合があります。その場合は"-qstrict"オプションを付加することにより回避させることが可
能です。
この他の最適化オプション等や詳細につきましては、XL Fortran Compiler マニュアルをご参考く
ださい。
3.1.6 XL Fortran V13.1 コンパイラ呼び出しコマンド(参考)
呼び出しコマンド名主機能
xlf
f77
xlf_r
xlf90
xlf90_r
xlf95
xlf95_r
xlf_r7
xlf90_r7
xlf95_r7
FORTRAN77
FORTRAN77
スレッド・セーフFORTRAN77、
OSデフォルト POSIX pthreads API
Fortran90
スレッド・セーフFortrn90
OSデフォルト POSIX pthreads API
Fortran95
スレッド・セーフFortrn95
OSデフォルト POSIX pthreads API
スレッド・セーフFORTRAN77
ドラフト7 POSIX pthreads API
スレッド・セーフFortrn90
ドラフト7 POSIX pthreads API
スレッド・セーフFortrn95
ドラフト7 POSIX pthreads API
8/19
「海洋科学研究用電子計算機システム」利用の手引き
3.2 C/C++ Compiler
IBM XL C/C++ for AIX V.11.1 コンパイラは 2003 年改訂国際 C++標準 ISO/IEC(C++言語) 14882:2003
および ISO/IEC9899:1999(C 言語)に準拠し、C99 標準に対する拡張をサポートしたコンパイラで、32 ビッ
トと 64 ビットの両方のアーキテクチャと最適化テクノロジーがサポートされます。また SMP 環境での並
列化標準規格である OpenMP2.0 をサポートし、自動並列化機能もサポートされます。
3.2.1 プログラムのコンパイルと実行例
次のようなサンプルプログラム”test.c”をコンパイルするには次のようにします。


ソースファイル”test.c”の内容
#include<stdio.h>
void main()
{
puts(“Hello World, Visual Age C++ Professional!”);
}
コンパイル&リンク
% xlc –o testc test.c

実行
% ./testc
Hello World, Visual Age C++ Professional !
3.2.2 XL C/C++ v.11.1 コンパイラ呼び出しコマンド(参考)
呼び出しコマンド名
主機能
xlc
C Compiler (標準言語ansi)
cc
C Compiler(拡張言語版)
c89
ANSI標準に一致
xlc128
xlc long,double 128bit拡張版(標準64bit)
cc128
cc long,double 128bit拡張版(標準64bit)
スレッドセーフ xlc Compiler
xlc_r
Posix threaded xlc Compiler
スレッドセーフ cc Compiler
cc_r
Posix threaded cc Compiler
xlc_r4
DCE threaded xlf Compiler
cc_r4
DCE threaded cc Compiler
Posix thread Standard Draft 7準拠 xlc Compiler
xlc_r7
Posix thread Standard Draft 7準拠 cc Compiler
cc_r7
3.2.3 その他
最適化オプション等は、XL Fortran Compiler と同様です。詳細につきましては、IBM XL C/++
Compiler マニュアルをご参考ください。
9/19
「海洋科学研究用電子計算機システム」利用の手引き
3.3 並列プログラムのコンパイル方法
3.3.1 SMP 並列プログラムのコンパイルと実行例
3.3.1.1 コンパイル
"testprog.f"というFORTRANプログラムをSMP並列モジュールとしてコンパイルする場合、
以下のようにコンパイルします。
$ xlf_r -qsmp testprog.f
上記のように SMP 並列モジュールの生成は、
~_r コンパイルコマンドに "-qsmp"オプションを
付加して行います。(FORTRAN/C/C++共通です)
"-qsmp"関連のオプションとして、以下のようなオプションと動作の違いがあります。
-qsmp
:自動並列化を行い、OpenMP の指示行(PARALLEL DO)が指定されている
DO ループを強制的に並列化します。
コンパイルとリンクを別に行う場合、-qsmp はリンク時に必要です。
-qsmp=noauto
:自動並列化は行わず、OpenMP の指示行(PARALLEL DO)が指定されている
DO ループのみを強制的に並列化することを指示します。
-qnosmp
:並列化を一切行いません。
注意
-qsmp オプションは-qhot というプログラムの意味を変えてしまう可能性のある最適化オプショ
ンが暗黙指定されます。これは -qstrict オプションを付加することで抑止することができます。
3.3.1.2 環境変数と実行例
<並列数の指定>
"a.out"実行モジュールを2CPU(2スレッド)で実行するには以下のように
"OMP_NUM_THREADS"環境変数にスレッド数を指定して実行します。
("OMP_NUM_THREADS"を指定しない場合は搭載されている CPU 数が自動定義されます)
% setenv OMP_NUM_THREADS 2 (csh 環境の場合)
% ./a.out
(なお、上記 "% setenv OMP_NUM_THREADS 2" と同じく環境変数で
"% setenv XLSMPOPTS parthds=2" としても、起動スレッド数の指定ができます)
<高速化>
以下の環境変数を指定すると、並列化された部分でスレッドを起動する時間が
速くなり、パフォーマンスが向上することがあります。
% setenv XLSMPOPTS profilefreq=0:spins=0:yields=0
% setenv YIELDLOOPTIME 500
% setenv SPINLOOPTIME 500
10/19
「海洋科学研究用電子計算機システム」利用の手引き
3.3.2 MPI 並列プログラムのコンパイル
3.3.2.1 コンパイル
本システムには MPI ライブラリならびにその実行環境として、IBM Parallel Environment (PE) V5.2
が導入されています。並列プログラムをコンパイルする場合には、次のようなコンパイラ呼び出し
コマンド(mp~コマンド)を利用します。
・mpcc ………
・mpxlf ………
C Compiler の場合
XL Fortran Compiler の場合
これらのコンパイラ呼び出しコマンドはスクリプトであり、
このスクリプトにより並列プログラム
に必要なライブラリ等が呼び込まれます。内部ではそれぞれのコンパイラ呼び出しコマンドを実行
しています。
3.3.2.2 実行例、その他
<実行例>
単純にプログラムを並列実行する為には以下のように poe コマンドを利用します。
$ poe <program name> -procs <tasks> -hostfile <host.list> <options>
ここでは予め host.list というファイルに実行するタスク(プロセス)を起動するホスト名
を、並列する数 列挙しておき、-hostfile オプションでこのファイルを指定するようにしま
す。例えば多重度を 2 として”hostname”コマンドを変列実行するには、次のようにします。
$ poe hostname -procs 2 -hostfile host.list -labelio yes
“-procs”オプションにより多重度の指定、”-hostfile”オプションで先に作成した
「host.list」
ファイルの指定、
”-labelio”オプションによりタスク番号を出力させています。
またこれらのオプションは、環境変数”MP_PROCS”,”MP_LABELIO”,などにより、予め指定し
ておくことが可能です。
※MPI 並列プログラムをロードレベラ上で実行する際は、上記のような poe コマンドは必要
ありません (起動するタスク数や実行するホストなどバッチシステム側で管理する為です)
実際の MPI プログラムの実行に関しては、次章「バッチシステム(ロードレベラ)使用方法」
の部分を参照下さい。
<高速化>
共有メモリ環境下においては、以下の環境変数を指定すると各プロセス間の通信でネット
ワークインタフェースを介さずメモリ内で直接コピーを行うようになり、パフォーマンス
が向上します。
% setenv MP_SHARED_MEMORY yes
その他、PE の詳しい利用方法につきましては、AIX Parallel Environment マニュアルをご参
考ください。
11/19
「海洋科学研究用電子計算機システム」利用の手引き
3.4 ESSL
ESSL(Engineering and Scientific Subroutine Library V5.1)は IBMにて提供している数値演算用のサブ
ルーチンライブラリです。高速なアルゴリズムを用い、かつ CPUである POWER アーキテクチャの性能を
引き出すようチューニングがされていますで、このサブルーチンを利用するだけでプログラムが高速化で
きます。また、PESSLではMPIによる並列処理機能もサポートしており、それぞれFORTRAN、C、C++から利
用することができます。
□ ESSL リンク例
ESSL を利用する場合以下のようにコンパイルします。
% xlf -lessl testprog.f
SMP 対応の ESSL を利用する場合以下のようにコンパイルします。
% xlf_r -qsmp -lesslsmp testprog.f
※ESSL に付属する、SMP 対応の ESSL サブルーチンは、呼び出し形式が通常(シングル
プロセッサ用)と同じである為、上記のようにリンクのオプションを変更するだけで
並列に実行できます。
ESSL の詳細な情報は「ESSL V5.1 Guide and Reference」を参照下さい。
□ PESSL(並列版 ESSL)リンク例
PESSL を利用する場合、以下のようにコンパイルします。
% mpxlf -lessl -lpessl -lblacs testprog.f
※上記は BLACS ライブラリをリンクする場合の例です
PESSL で提供されるサブルーチンや詳細な情報は「PESSL V3.3 Guide and Reference」
を参照下さい。
12/19
「海洋科学研究用電子計算機システム」利用の手引き
3.5 LoadLeveler
並列計算サーバに導入されているLoad Leveler v4.1は、単一あるいは複数のマシンに投入された
ジョブのスケジューリングと管理を行います。投入されたジョブを受け取り、ジョブを実行するため
の用件を確認し、そのシステムがジョブの実行に最適かを決定しジョブの実行とチェックポイントの
サポートに十分なリソースを持ったシステムで実行します。
ジョブ投入する方法は、llsubmit コマンドコマンドを用います。次のようなパラメータをロード
レベラ JCF(Job Command File)ファイルに指定、またはキー入力します。
・ジョブクラスの指定
・mail の返信を行うか否かの指定。
・実行プログラムを指定
本計算機に設定されているバッチジョブクラスは、次の 5 種類となります。
クラス名
P32
P16
P8
P4
SS
CPU時間
24 hour
24 hour
24 hour
24 hour
24 hour
利用メモリ 最大CPU数(多重度) 最大同時実行数 実行ノード
unlimited
32
3
バックエンドサーバ
unlimited
16
6
バックエンドサーバ
unlimited
8
6
バックエンドサーバ
unlimited
4
8
バックエンドサーバ
unlimited
1
16
バックエンドサーバ
バッチジョブクラスは利用状況により変更されることがあります。現在設定されているバッチジョブ
クラスは"llclass"コマンドで確認することができます。
13/19
「海洋科学研究用電子計算機システム」利用の手引き
3.5.1 基本利用方法
ロードレベラを利用場合、例えば Fortran のプログラムを実行して結果をメール通知するには、次
のような JCF を作成して、llsubmit コマンドにより、ジョブを投入します。
① ファイル名"test.jcf"を下記のように作成します。
#!/bin/csh
・・・・・・・・・・・・ スクリプトが csh 構文であることの宣言
# @ class = SS
・・・・・・・・・・ クラスの指定
# @ output = OUTFILE ・・・・・・・・ 標準出力ファイル名(任意)
# @ error = ERRFILE ・・・・・・・・・ エラー出力ファイル名(任意)
# @ notify_user = ユーザ名 ・・・・・ メール転送先(例: username@hostname)
# @ notification = complete ・・・・・ 処理終了後にメールを受け取る
# @ environment = COPY_ALL ・・・・・・ ユーザ環境の引継ぎ(必須)
# @ queue ・・・・・・・・・・・・・・ 実行(必須)
date ・・・・・・・・・・・・・・・・ 実行ステートメント
f77 -o sampleprog.exe sampleprog.f
sampleprog.exe
echo "Program Finished"
② llsubmit コマンドで①で作成した"test.jcf"をジョブに投入します。
$llsubmit test.jcf
llsubmit: The job "p750a.156" has been submitted.
③
投入されたジョブの確認は llq コマンドで行います。
$ llq
Id
Owner
Submitted ST PRI Class
------------------------ ---------- ----------- -- --- -----------p750a.151.0
argo
1/29 16:53 R 50 P16
p750a.153.0
argo
1/29 16:54 R 50 P4
p750a.156.0
argo
1/29 16:54 R 50 SS
p750a.157.0
argo
1/29 16:54 R 50 P8
p750a.155.0
argo
1/29 16:54 I 50 P8
Running On
----------p750e
p750b
p750b
p750c
5 job step(s) in queue, 1 waiting, 0 pending, 4 running, 0 held, 0 preempted
ここでステータス(ST)が、"R"になっていれば、そのジョブは実行中です。ST が"I"の場合は、
実行待ちです。"Running On"は、そのジョブが実行されているノード名(マシン)です。
④ ジョブをキャンセルする場合は llcancel コマンドで行います。
$ llcancel p750a.156.0
……
キャンセルするジョブの ID を指定します。
llcancel: Cancel command has been sent to the central manager.
(他利用者のジョブは、管理者以外キャンセルできません)
14/19
「海洋科学研究用電子計算機システム」利用の手引き
⑤ マシンの状態を確認する場合は llstatus コマンドを実行します。
$ llstatus
Name
Schedd InQ Act Startd Run LdAvg Idle Arch
p710
Avail
0 0 None
0 0.03 6846 R6000
p750a
Avail
0 0 None
0 0.00 197 R6000
p750b
Avail
0 0 Idle
0 0.00 9173 R6000
p750c
Avail
0 0 Idle
0 0.12 9999 R6000
p750d
Avail
0 0 Idle
0 0.01 9999 R6000
p750e
Avail
0 0 Idle
0 0.02 9999 R6000
R6000/AIX71
Total Machines
6 machines
6 machines
0 jobs
0 jobs
OpSys
AIX71
AIX71
AIX71
AIX71
AIX71
AIX71
0 running tasks
0 running tasks
The Central Manager is defined on p710
The BACKFILL scheduler is in use
All machines on the machine_list are present.
主な表示項目の意味は以下の通りです。
・Schedd スケジュールデーモンの稼動 ... Avail:稼動中、Down:停止中
・Startd ジョブスケジュール状況 ... Busy:実行中(最大実行中)、Down:停止、
Idle:ジョブ待ち、Running:実行中(余裕有り)
3.5.2 ロードレベラの主なコマンド
 llcancel <options> <joblist>
ロードレベラのキューから 1 つまたは複数のジョブを取り消します。一つのジョブ
を取り消すには、llq コマンドなどで得られるジョブ順序番号名を指定します。
(オプション)
-?
簡易ヘルプメッセージ表示
-H
詳細ヘルプメッセージ表示
-u <userid>
指定ユーザのジョブすべてをキャンセル
(例)
llcancel p750a.366.0

llclass <option> <class name>
利用可能なジョブクラスを表示します。単に llq コマンドを実行すると利用可能な
クラスと、クラスの利用状況が確認します。
(オプション)
-?
簡易ヘルプメッセージ表示
-H
詳細ヘルプメッセージ表示
-l
指定したクラスの詳細を表示
(例)
llclass
15/19
「海洋科学研究用電子計算機システム」利用の手引き

llq <option> <job nomber/name>
ディスパッチされたジョブに関する情報を表示します。単に llq コマンドを実行す
ると、現在キューイング及び実行しているジョブ情報を表示します。
(オプション)
-?
簡易ヘルプメッセージ表示
-H
詳細ヘルプメッセージ表示
-l
指定されたジョブの詳細を表示
(例)
llq

llstatus <option> <host>
ロードレベラ・クラスタ内のマシン状況に関する情報を表示します。
(オプション)
-?
簡易ヘルプメッセージ表示
-H
詳細ヘルプメッセージ表示
(例)
llstatus

llsubmit <option> <JCF file name>
JCF のジョブ用件に基づいてディスパッチされるジョブを、ロードレベラにサブミ
ットします。
(オプション)
-?
簡易ヘルプメッセージ表示
-H
詳細ヘルプメッセージ表示
(例)
llstatus
16/19
「海洋科学研究用電子計算機システム」利用の手引き
3.5.3 JCF の例
3.5.3.1 SMP 並列ジョブを実行する場合
SMP 並列ジョブを実行する場合には、下記の例のように「# @ resources = ConsumableCPUs(NN)」
ならびに「# @ parallel_threads = NN」の"NN"部分に並列数(使用する CPU 数)を、指定クラス
で許されている最大値までの範囲内で指定します。(※OpenMP の環境変数「OMP_NUM_THREADS」
によるスレッド数の指定は行わないでください) なお、ここで実行させるプログラムは SMP 用に
コンパイルされたプログラムを指定する必要があります。
#!/bin/ksh
# @ class = P4
# @ resources = ConsumableCPUs(4)
# @ parallel_threads = 4
# @ error = sample2.$(Host).$(Cluster).$(Process).err
# @ output = sample2.$(Host).$(Cluster).$(Process).out
# @ queue
./smpprog.exe
3.5.3.2 MPI 並列ジョブを実行する場合
MPI 並列ジョブを実行するには、totak_task という値で多重度を指定する必要があります。多
重度は、指定クラスで許されている最大値までの範囲で任意に指定することが可能です。ここで
実行するコマンドは MPI で並列化されたプログラムである必要があります。
下記例の「# @ rset = rset_mcm_affinity」と「export MEMORY_AFFINITY=MCM」の行はチュー
ニングのオプションです。
#!/bin/ksh
# @ class = P4
# @ job_type = parallel
# @ total_tasks = 4
# @ rset = rset_mcm_affinity
# @ error = sample3.$(Host).$(Cluster).$(Process).err
# @ output = sample3.$(Host).$(Cluster).$(Process).out
# @ queue
export MEMORY_AFFINITY=MCM
./mpiprog.exe
17/19
「海洋科学研究用電子計算機システム」利用の手引き
3.5.3.3 SMP と MPI のハイブリッド並列ジョブを実行する場合
MPI の各タスクが OpenMP で並列化されたプログラムを実行するには、前述の SMP と MPI で指
定したキーワードを併せて指定します。
下記例のように SMP 並列ジョブ指定である「# @ resources = ConsumableCPUs(NN)」ならびに
「# @ parallel_threads = NN」の"NN"部分に OpenMP の並列数(スレッド数)を、「# @ totak_task
= NN」の部分に MPI の並列数(タスク数)をそれぞれ指定します。ここで SMP(OpenMP)と MPI それ
ぞれの並列数を掛け合わせた値が指定クラスで許されている最大値までの範囲内になるよう指
定してください。
#!/bin/ksh
# @ class = P32
# @ job_type = parallel
# @ resources = ConsumableCPUs(8)
# @ parallel_threads = 8
# @ total_tasks = 4
# @ rset = rset_mcm_affinity
# @ error = sample4.$(Host).$(Cluster).$(Process).err
# @ output = sample4.$(Host).$(Cluster).$(Process).out
# @ queue
export MEMORY_AFFINITY=MCM
./smp-mpiprog.exe
※上記は OpenMP でプロセスあたり 8 スレッド並列、MPI で 4 並列の計 32CPU 並列ジョブ
の場合の例です。
その他、ロードレベラの詳細につきましては、ロードレベラマニュアルをご参考ください。
18/19
「海洋科学研究用電子計算機システム」利用の手引き
4
オンラインマニュアルについて
コンパイラやロードレベラなど、より詳しい情報は IBM より発行されている各種マニュアルに詳細の記
述があります。各種マニュアルは PDF または HTML 形式で用意されており、学内から下記の URL へアクセス
してマニュアルを入手してください。
<並列計算機オンラインマニュアル>
http://whale.aori.u-tokyo.ac.jp/manual/
19/19