センターの計算機利用に関するよくある質問集です。
新規ジョブが投入できなくなります。
グループの CPU 点数を超過した場合、超過から 24 時間以上経過すると投入済みのジョブも削除されます。
使用量がシステム側に認識されるまで(showlim の表記に反映されるまで)には最大 10 分程度の時間がかかります。
ディスク使用量の制限値を超過し、データを削除した場合には、10 分程度待った上で、新規ジョブの投入を行うようにしてください。
ジョブのCPU点数は実際の実行時間から計算されます。例えばジョブの制限時間(walltime)が 24 時間で実際の実行時間が 1 時間だった場合、1 時間分の CPU 点数が消費されることになります。
こちらのページに申請方法があります。
ビルド作業やデバッグについてはログインサーバー(ccfep*)でそのまま行って下さい。
並列 make (例: make -j 12 のようなコマンド)や MPI プログラムの実行(例: mpirun -np 16 ...)も問題ありません。
ただし、速度面についてはいくつか制約もありますので、その点はご注意下さい。
また、ccfep* では CPU の利用状況に応じて CPU 点数も消費されます。(ただログインしている程度ならば事実上消費はありません。)
インタラクティブジョブについては、申請があれば利用可能となっております。
ログインサーバー(ccfep)では対応できない GPU プログラムのテスト等には特に有用かと思います。
利用を希望される場合はお問い合わせください。
なお、インタラクティブジョブにはいくつか追加の制限(制限時間、CPU/GPU数)もありますのでご注意ください。
制限値は原則として初期の割り当て点数から決められます。具体的な値はこちらの表をご覧下さい。
現在の制限値は jobinfo -s を実行すると上の方(User/Group Stat)に表示されます。
以下の表記中、赤や青の **** で表示されている部分にあたります。
[user@ccfep* ~]$ jobinfo -s
User/Group Stat:
--------------------------------------------------------------------------------
queue: H | user | group
--------------------------------------------------------------------------------
NJob (Run/Queue/Hold/RunLim) | x/ x/ x/- | x/ x/ x/****
CPUs (Run/Queue/Hold/RunLim) | x/ x/ x/**** | x/ x/ x/****
GPUs (Run/Queue/Hold/RunLim) | x/ x/ x/**** | x/ x/ x/****
core (Run/Queue/Hold/RunLim) | x/ x/ x/**** | x/ x/ x/****
lmem (Run/Queue/Hold/RunLim) | x/ x/ x/- | x/ x/ x/****
--------------------------------------------------------------------------------
note: "core" limit is for per-core assignment jobs (jobtype=core/gpu*)
note: "lem" limit is for jobtype=largememQueue Status (H):
(以下略)
制限値にはグループ全体のものと、個々のユーザのもの(代表者がリソース制限のページより設定できます)とがあります。
また、jobtype=core, largemem については全ユーザー共通の制限値があり、それも表示されています。
日本国内からのアクセスで問題がある場合はこのページ内のSSH接続エラーの項目やクイックスタートガイドの内容をまずはご覧ください。
日本国外からのアクセスについてはまずこちらのページにある手続きが必要です。
こちらのページに申請方法があります。いくつか制限もありますので、ご注意ください。
現在はログインシェルを csh (tcsh), bash, zsh の中から選ぶことができますが、その変更はこのウェブページでしか行えません。ログインしている状態であれば、ページ左側メニューに「アカウント情報」という項目が存在するので、それをクリックしてください。そこから、「編集」タブに移動すると、ログインシェルを選択する項目がありますので、csh, bash, zsh の中から好きなものを選んでください。ログインシェルを選択したあとは忘れずにページ下部にある「保存」をクリックしてください。
ジョブが中々実行されない原因についてはいくつかのパターンが考えられます。以下に当てはまらない不明な点等ありましたお問い合わせ下さい。
CPUやGPUの空き状況についてはこのウェブサイトにログインしてトップページを表示すると、右側のカラムに空き状況が表示されます。混雑していてジョブが入らない状況でも、他の jobtype では空きがある場合もあります。もし可能であれば、ジョブの振り替えもご検討下さい。
jobinfo コマンドを実行し、右端のカラムに表示される理由をご確認下さい。主要な表示は以下のようなものです。
(group)の場合は、ご自身もしくはグループの他メンバーが多く利用しているため、制限されている状態です。代表者ならばグループの個々のメンバーのリソース使用量に制限をかけることもできます(リソース制限; 代表者がログインしている場合のみ設定可能)。
(long)の場合は、walltime を短くするか、さもなくばメンテナンス明けまで待つ必要があります。(通常の月例メンテナンスではジョブの消去は行いませんので、メンテナンス時にジョブが残っていても問題ありません。)
多数のコアを使う jobtype=core のジョブは空きコアがあっても流れない可能性があります。jobtype=core では複数ノードにまたがったジョブは許されていないので、空きコアの総数が多くても、大きな空きがあるノードが存在しない場合があるためです。状況に応じて jobtype=vnode で 64 or 128 コアを利用することもご検討下さい。
制限を超えてメモリを使った場合、以下のようなメッセージが標準エラーに出力され、ジョブが異常終了します。
Cgroup mem limit exceeded: oom-kill:constraint=CONSTRAINT_MEMCG,nodemask=(null),cpuset=*******.ccpbs1,mems_allowed=*,oom_memcg=/pbs_jobs.service/jobid/*******.ccpbs1,task_memcg=/pbs_jobs.service/jobid/*******.ccpbs1,task=molpro.exe,pid=******,uid=******
[Wed Feb 1 **:**:** 2023] memory: usage ********kB, limit *********kB, failcnt ********
[Wed Feb 1 **:**:** 2023] memory+swap: usage *********kB, limit *****************kB, failcnt 0
[Wed Feb 1 **:**:** 2023] kmem: usage ******kB, limit *****************kB, failcnt 0
[Wed Feb 1 **:**:** 2023] Memory cgroup stats for /pbs_jobs.service/jobid/*******.ccpbs1:
インプットを工夫して使用するメモリ量を減らす、jobtype=largemem を利用するなどして回避する必要があります。
jobtype=core の場合は利用可能なメモリ量が ncpus の指定に比例することにご注意ください。
使用するプログラムの性質によっては、ヘッダで ncpus=8 で 8 コア分のメモリを確保した上で
mpirun -np 4 のように 4 コアだけ計算に使うようなことも考える必要があるかもしれません。
確保したメモリが超過していても、超過分が使われていない場合には Cgroup mem limit exceeded が表示
されるもののジョブは正常に実行できる場合があります。この場合、Cgroup mem limits exceeded だけが
表示され、それに続くプロセスの情報は表示されません。潜在的にはジョブがエラーになる可能性があり
ますので、確保するメモリ量を減らす等の対応を行っておくべきだと思われます。
演算ノードのローカルディスク(/lwork/users/(ユーザー名)/(ジョブID))を使っていて、その容量を超過して
しまった可能性が高い状況です。演算ノードのローカルディスクの容量制限は 11.9 GB * ncpus (ncpus は
そのノードで確保したコア数; ジョブ全体での ncpus ではありません)に比例するため、ncpus を増やすことで
エラーを回避できる可能性があります。あるいは、ローカルディスク(/lwork)のかわりに速度は落ちるものの
大容量なグローバル領域(/gwork)を使って回避することもできます。
g16sub/g09sub の場合、デフォルトではローカルディスク(/lwork)を使いますが、実行時に -N オプションを追加
することでグローバル(/gwork)領域を使うように変更できます。
計算ノードやネットワークスイッチ、ストレージのダウン等によりジョブが影響を受けた場合、ジョブを実行したユーザー宛にこのようなタイトルのメールが送られます。カッコでくくられた部分や***となっている部分はユーザー、ジョブ、発生日時、障害の内容に依存します。
(uid)様
2020年**月**日**時**分頃、****において
障害(****************)が発生しました。影響を受けたジョブの一覧をお知らせします。
--------+------+--------+--------------+-----+------------------
Job ID Queue User Job Name #Core Treatment
--------+------+--------+--------------+-----+------------------
(jobid) PN (uid) (jobname) (num) Exit_status=XXX
--------+------+--------+--------------+-----+------------------
このメールは表示されているジョブが障害の影響を受けたことを示しますが、上記では赤文字で示した Exit_status の値に注意する必要あります。
障害時は本来 Exit_status が常に負の値になるはずですが、障害の影響のためにシステムが正確に判断できず、非負の値が出る場合があります。もし、非負の値が出ているようでしたら、お手数ではありますがジョブを再度投入下さい。また、ジョブの種類によっては強制終了された前のジョブの中間ファイル等の影響で再実行がうまくいかないケースもありえます。こちらについては、ジョブスクリプトを工夫して中間ファイルを適宜消去するなどの処理で再実行されても大丈夫な形にしたり、#PBS -r n をスクリプトに加えて再実行を抑制したりして対応するようお願いいたします。
多くの原因が考えられる状況ではありますが、現在のシステムでは hcoll 由来の問題が多く確認されています。
Intel MPI の場合には mpirun 実行前に以下のように環境変数を設定することで解消する可能性があります。(bash の場合)
export I_MPI_COLL_EXTERNAL=no
Open MPI の場合には以下のオプションを mpirun に渡すことで解消する可能性があります。
-mca coll_hcoll_enable 0
これらでも解決しないようであれば、ご相談ください。大規模な並列計算でなければ、これらの設定による速度の
低下は無視できる程度である可能性が高いと想定しております。
.bashrc が出力するデータが大きい場合に上記のようなエラーが出る場合があります。
例えば、Intel oneAPI の setvars.sh を .bashrc で読み込んだ場合に発生することが確認されています。
エラーを回避するためには出力を /dev/null に捨てる、$PS1 が存在する場合にのみ出力を許すような形にする、
あるいは .bash_profile に移動させる形ような方法が考えられます。
複数のリビジョンの g16 の設定(g16.login, g16.profile)を読み込んだ場合に発生することがあります。
出力例:
Entering Gaussian System, Link 0=/apl/gaussian/******/g16/._.g16
Initial command:
/apl/gaussian/****/g16/l1.exe "/gwork/users/***/********.ccpbs1/Gau-66921.inp" -scrdir="/gwork/users/***/********.cccms1/"
sh: /apl/gaussian/***/g16/l1.exe: Permission denied
典型的な例としては、ホームディレクトリの設定ファイルで読み込んでいて、さらにジョブスクリプトで別リビジョンのものを読み込むような場合があります。直すには、設定ファイルかジョブスクリプトの読み込み部分を修正する必要があります。
通常、同じものを複数回読み込む分には問題ありません。バージョンが違う(g09 と g16)ものを読み込む場合も問題が出ないケースがあります。
以下のコマンドを実行してからformchkコマンドを実行してください。ログインシェルの種類により実行するコマンドが異なることに注意してください。
ログインシェルが csh (tcsh) の場合:
$ source /apl/gaussian/16c02/g16/bsd/g16.login
ログインシェルが bash, zsh の場合:
$ source /apl/gaussian/16c02/g16/bsd/g16.profile
(PYTHONPATH: Undefined variable. というメッセージが表示された場合も設定は読み込まれています。そのまま formchk を実行できます)
他のバージョンの Gaussian や違うキューを用いた計算等の場合には適宜ディレクトリの場所を置き換えてください。
また、上記設定の代わりに gaussian の module を load した場合も formchk コマンドは利用可能です。
メモリが足りない場合、formchk が以下のようなメッセージでエラー終了します。
Out-of-memory error in routine WrCIDn-* (IEnd= ******** MxCore= ***********)
Use %mem=***MW to provide the minimum amount of memory required to complete this step.
Error termination via Lnk1e at (***date***).
formchk の使うメモリ量は GAUSS_MEMDEFで指定できますので、以下のように設定の上(値は適宜調整して下さい)、formchk を再度実行ください。
csh:
setenv GAUSS_MEMDEF 800000000
bash/zsh:
export GAUSS_MEMDEF=800000000
上記の例では 800MW (=6.4GB) のメモリを指定しています。
ディストリビューション提供のパッケージが存在すれば管理者側でそれらを /usr 以下にインストールすることはできます。必要に応じてお問い合わせください。あるいは、以下の例のように pip に --user オプションをつけてインストールすれば、ご自身のホームディレクトリ以下にパッケージを導入することもできます。
$ pip install numpy --user
他では pyenv や miniforge を使った環境構築も推奨しています。ライセンス上問題がなければ、Anaconda も便利です。GPU の利用を想定している場合は、miniforge のような conda 環境の方が便利なことが多いです。(cudatoolkit や cudnn の導入が手軽です。)
センターで用意した Miniforge 環境もあります。利用方法等については、パッケージプログラム状態一覧のページの Python の項目にあるリンク先をご覧下さい。
現在のシステムでは、ユーザーの皆様にインテルコンパイラを提供しておりません。
必要な場合は以下のリンクより Intel oneAPI Base Toolkit と HPC Toolkit をホームディレクトリ以下に導入してください。
https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit.html (Base Toolkit)
https://www.intel.com/content/www/us/en/developer/tools/oneapi/hpc-toolkit.html (HPC Toolkit)
(無償で導入できます。ただし、再配布には制限があります。)
こちらのページにいくつかサンプルを用意しました。
利用の手引きの情報、各アプリケーション用のサンプル(/apl/(アプリ名)/(バージョン)/samples 以下に配置しています)も参考になると思います。
下記の項目を全てご記入の上、rccs-admin[at]ims.ac.jp宛(迷惑メール対策のため、@を[at]に置換しています)に送信してください。
有料ソフトウェアの場合、導入できないことがあります。
Permission denied (publickey)
Permission denied (publickey,hostbased).
秘密鍵と公開鍵が一致しないか、公開鍵の登録がされていない場合に表示されます。秘密鍵が存在しない場合(置き場所の指定を間違えた場合も含む)もこのエラーになることがあります。
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,hostbased).
クライアントで秘密鍵が設定されていない場合に表示されます。
ssh:connect:Network is unreachable
ssh:connect:Host is unreachable
ネットワーク設定の不備か、ネットワーク経路の不調によりRCCSとネットワーク接続が出来無かった場合に表示されます。
ssh:connect:Connection refused
ssh:connect:Connection timed out
保守や停電のために、センターがサービスを一時的に停止しているか、下記の接続制限により接続が拒否されている場合に表示されます。
ssh_exchange_identification: Connection closed by remote host
Server unexpectedly closed network connection
何らかの通信不具合もしくは下記の接続制限のため接続が拒否されています。
接続できない場合、詳細なログを表示させることで原因がわかる場合があります(方法は利用するソフトウェアにより異なります)。例えば、LinuxやMacでターミナルからsshコマンドで接続している場合には、-vオプションをつけることで詳細なログを見ることができます。