計算サーバに関する質問

Backspace key does not work in my editor while I work on m000.

I tried vi, vim, and emacs, but in any of the environments, backspace key does not function as I had expected.
It just produces characters like "^?".
How can I solve this?

Can you try removing the description

stty erase ^H

that may be in your ~/.bashrc or ~/.bash_profile or ~/.zshrc, and login again?
Our experiment tells us that this would fix the issue.
Files like ~/.vimrc does not matter in this case.
Also, we found that this issue does not happen when you use csh or tcsh.
(Last updated 2025 June 3)

コマンドラインからqsubスクリプトに引き数を渡すことは出来るでしょうか?

例えば変数 pbs_extravar に "ABC" という値を入れ、それをqsubスクリプトに渡したいと考えています。
qsubコマンドのオプションを使い、このようなことは可能でしょうか?

はい、可能です。
それには qsub の -v オプションを使います。具体的には以下の書式

% qsub -v pbs_extravar=ABC シェルスクリプト

を使えば変数 pbs_extravar に値 "ABC" が入り、それがシェルスクリプトに渡されます。
複数の変数に同時に値を渡すこともできます。
例えば

% qsub -v pbsvarX=ABC,pbsvarY=DEF シェルスクリプト

とすると変数 pbsvarX には値 "ABC" が入り、変数 pbsvarY には値 "DEF" が入ります。

なおこの場合、変数=値 の組の間にスペースを含めないようにしてください。
例えば

% qsub -v pbsvarX=ABC, pbsvarY=DEF シェルスクリプト

などとすると、pbsvarY=DEF の部分は qsub の別種の引数と解釈されてしまいます。
その結果として変数 pbsvarX の値は渡りますが、変数 pbsvarY の値はシェルスクリプトに渡らなくなります。
詳しくは qsub のオンラインマニュアルなどを参照してください。
(最終更新日 2025年6月3日)

ジョブを投入してもホールドされた状態(H)で止まります。

どのジョブも status が H となり、実行されません。
昨日までは普通に R 状態になり、走っていました。
何が起こったのでしょうか?

おそらく、PBSジョブからの標準出力・標準エラー出力を溜める領域に於いてquota上限に抵触したのでしょう。
利用手引きに記載があるように、この領域(/var/spool/pbs/)には 64 GB/userのquota制限があります。
この領域に於けるご自分の使用量は以下のようにして確かめられます。
xxxxxx はご自分のアカウント名に置き換えてください。

m000% egrep -e '(QUOTA|xxxxxx)' /pbslog/misc/userspace.txt
 TYPE        NAME           USED  QUOTA
 POSIX User  xxxxxx       64.5G    64G

上記では 64 GBのquota制限に対して 64.5 GBが使われており、いわゆるquota溢れとなっています。
PBSはジョブからの標準出力・標準エラー出力をこの領域に書き出そうとします。
しかしquota制限に抵触していると書き出せず、リトライを繰り返して最終的にstatusが H になります。
この挙動はOpenPBSの仕様だと思われます。

この状況に陥るのはPBSジョブが何らかの原因で異常終了したり計算ノードのハードウェア障害が生じた場合です。
システム構成上の理由により、ここでquota抵触が発生した状態からの回復は利用者自身には出来ません。
この状態が発生した場合にはお問い合わせフォームからお知らせを頂ければ、
当該領域を圧迫しているファイルを探して管理者権限で削除します。

なお、一般にコードが/var/spool/pbs/領域へ標準/エラー出力を大量に書き出すことは望ましくはありません。
標準出力・標準エラー出力の量が大きくなり過ぎないよう、ご自分のコードを見直すことを強くお薦めいたします。
(最終更新日 2025年6月3日)

公開されているコードを自力コンパイル・実行しても良いのでしょうか?

私が使いたい公開コードはCで書かれており、自分でコンパイルして使いたいです。
なおその実行にはかなり大きな計算資源が必要となりそうです。

はい、もちろん可能です。
m000上ではもちろんCコンパイラが使えます。
但しコンパイルとリンクに成功したとして、その後に当該のコードが望ましい形で動くか否かは計算の規模にも依存しますので、何も保証できません。
計算サーバや解析サーバの資源量に収まらない大型の計算をされる場合には、スーパーコンピュータやGPUクラスタの利用をご検討ください。
(最終更新日 2025年6月3日)

キュー openmp にジョブを流していますが、計算速度が遅いです。

qstat-n1 の出力は以下の状況ですが、どこに問題があるでしょうか?

Job ID          Username Queue    Jobname    SessID NDS S ETime Node Alloc
--------------- -------- -------- ---------- ------ --- - ----- ----------
543210.m000.cfc userABC  openmp   jobXYZ       9558   1 R 252:1 m234/12

上記の出力を見る限り、このジョブは 1 コアしか使っていませんね。
上記の m234/12 という表示がそれを示します (計算ノード m234 の第 12 コア)。
キュー openmp に投げたジョブが 4 コアを使う場合、qstat-n1 の表示は以下のように *4 が付加されます。
2コアの使用ならば *2 が現れます。

Job ID          Username Queue    Jobname    SessID NDS S ETime Node Alloc
--------------- -------- -------- ---------- ------ --- - ----- ----------
550969.m000.cfc itootk   openmp   para_test   10810   1 R 569:5 m012/1*4  

あなたのPBSジョブが 1 コアしか必要ないならば、openmp ではなく mid, long キューを使うべきでしょう。
本当に複数コアを使いたいなら、qsub 時に

$ qsub -l ncpus=使用コア数 ...

の指定が必要です (qsubスクリプト内に記すことも可)。
必要に応じて適切な選択肢を取ってください。
(最終更新日 2025年6月3日)

計算サーバ上では IDL を使うことが出来ますか?

module をロードすることで一応の利用は出来ます。
しかし m000 上のコマンドラインで IDL を実行することは避けてください。
他利用者の作業に大きな支障が発生します。
コマンドラインからのIDLの対話的な実行には解析サーバをご利用ください。
(最終更新日 2025年6月3日)

解析サーバから作業領域 /mwork{1,2} が見えません。

解析サーバのマニュアルによると、計算サーバの作業領域 /mwork{1,2} は解析サーバにも /misc/mwork{1,2} などとマウントされているとのことです。
しかし解析サーバ上で以下のコマンドを打っても、それらしいディレクトリは表示されません。

an09$ ls /misc
fs50/  xd-work/

何がおかしいのでしょうか?

計算サーバの作業領域 /mwork{1,2} は解析サーバ上では自動マウント (automount) されています。
つまり、利用者がこれらの場所を必要とする際にしかマウントされず、それ以外の状況では見えません。
よって以下のように当該ディレクトリの内部を表示するか、もしくは直接そこへ cd してください。

an09$ ls /misc/mwork2/
an09$ cd /misc/mwork2/

(最終更新日 2025年6月3日)

Intel CompilerでコンパイルしたバイナリがPBSジョブとして実行されません。

私のコードをオプション -shared-intel -mcmodel=medium を付けてコンパイルし、qsubを使って投入しました。
しかし、以下のエラーが出て終わります。

./a.out: error while loading shared libraries: libifport.so.5: cannot open shared object file: No such file or directory

他のコードでは以下のエラーとなりました。

./a.out: error while loading shared libraries: libimf.so: cannot open shared object file: No such file or directory

qsub 経由ではなく m000 のコマンドライン上で直接実行すると、これらは正常に動きます。
何がおかしいのでしょうか?

利用者向け手引のPBS関係の記載の下部の「qsubスクリプト内でのモジュールのロード」にもありますが、PBSジョブの実行に必要なモジュールをqsubスクリプト内でも読み込んでおく必要があります。
もしqsubスクリプトがsh対応なら、実行させたいコードの前に以下を置いてください。

source /usr/share/Modules/init/sh
module load intel/2024

もしqsubスクリプトがcshやtcsh対応なら、sourceするファイルを変更します。

source /usr/share/Modules/init/csh
module load intel/2024

もしくは

source /usr/share/Modules/init/tcsh
module load intel/2024

などです。
Intel環境以外のモジュールを読み込む際も上記と同様な記載を行います。
例えばPBSジョブ内でPython環境を同時に利用したいならば、以下のようです。

source /usr/share/Modules/init/sh
module load anaconda intel/2024

必要な条件に応じて適切なモジュールを読み込んでください。
(最終更新日 2025年6月3日)

ある計算ノードでは全PBSジョブが suspend されています。

例えばm038はコア数が4なので4本のPBSジョブが走るはずですが、現在は以下のようです。

% qstat-n1 | grep m038
Job ID          Username Queue    Jobname    SessID NDS S ETime Node Alloc
--------------- -------- -------- ---------- ------ --- - ----- ----------
435526.m000.cfc userAA   long     tpf         19060   1 S 1411: m038/1
435789.m000.cfc userAA   long     tpf         14894   1 S 1339: m038/2
437685.m000.cfc userBB   long     65_7_ml5_t  19188   1 S 927:1 m038/3
450056.m000.cfc userAA   long     sechaos      3016   1 S 82:26 m038/0

上記ように全てのPBSジョブが status = S (suspend) の状況にあります。これは何かおかしくないでしょうか?

恐らく他利用者のarray jobsが流れているのでしょう。
qstat-n1 に -t オプションを追加してください。

% qstat-n1 -t | grep m038
Job ID          Username Queue    Jobname    SessID NDS S ETime Node Alloc
--------------- -------- -------- ---------- ------ --- - ----- ----------
435526.m000.cfc userAA   long     tpf         19060   1 S 1411: m038/1
435789.m000.cfc userAA   long     tpf         14894   1 S 1339: m038/2
437685.m000.cfc userBB   long     65_7_ml5_t  19188   1 S 927:1 m038/3
450056.m000.cfc userAA   long     sechaos      3016   1 S 82:26 m038/0
451693[251].m00 userCC   mid      c10ht.log   26201   1 R 02:41 m038/0
451693[252].m00 userCC   mid      c10ht.log   26413   1 R 03:07 m038/0
451693[253].m00 userCC   mid      c10ht.log   26655   1 R 02:41 m038/0
451693[254].m00 userCC   mid      c10ht.log   26794   1 R 02:54 m038/0

ご覧のように現在は利用者 userCC のarray jobs (451693[251-254])が流れ、他ジョブが suspend されています。
こうした状況は、複数の利用者による多数ジョブの qsub や qdel が繰り返される状況で時折り発生します。
障害ではありませんので、先行ジョブの終了まで今しばらくお待ちください。
(最終更新日 2025年6月3日)

私のPBSジョブはまだ終わっていないのに強制終了されたようです。

何が問題でしょうか?

誠に申し訳ございませんが、当該ジョブの実行中に何らかのシステム障害が発生していた可能性があります。
またジョブ投入のPBSスクリプト内で下記のように -r n が指定されていると、システム復旧後に当該ジョブは自動的に再投入されません。

  #PBS -r n

障害からの復旧後にジョブが自動再投入されるためには、PBSスクリプト内にて下記のように-r y を指定してください。

  #PBS -r y

(最終更新日 2025年6月3日)