2022.10.13

次のエラーの対処方法を教えてほしい。Runtime Error: Cannot allocate memory for environment variable VE_FORT_UFMTENDIAN.

本エラーは、書式なしの入出力文の並びに配列が指定されており、その配列サイズが大きい場合に発生するエラーです。
以下のコンパイラオプション、実行時環境変数を指定して実行いただくことで特定可能です。
★のように、エラーの出たファイルと行数が表示されます。

例)
$ nfort main.f90 -g -traceback=verbose
$ export VE_TRACEBACK=VERBOSE
$ ./a.out
Runtime Error: Cannot allocate memory for environment variable VE_FORT_UFMTENDIAN.
Program terminated by fatal error
[ 0] 0x600c00a58910 ? ?:?
[ 1] 0x600c00a51b38 ? ?:?
[ 2] 0x600c00cd4c78 ? ?:?
[ 3] 0x60000001f850 MAIN main.f90:28 ★
[ 4] 0x60000001fc80 ? ?:?
[ 5] 0x600c02a407a8 ? ?:?
[ 6] 0x600000002d00 ? ?:?

2021.05.18

NaNを含む無効演算例外を検知し、計算を止めたい

ベクトルノード群の場合、実行時に以下の環境変数を指定いただくことでNaNを含む無効演算例外を検知することが可能です。
(NaNを演算に使用されるとエラーとなります。)

export VE_FPE_ENABLE=INV

詳細は、以下のマニュアル 6ページ「1.9 演算例外」の項目をご参照ください。
SX-Aurora TSUBASA Fortran コンパイラ ユーザーズガイド
 

また、エラーを検知した該当箇所を確認する場合は以下も合わせてご指定ください。

 コンパイラオプション:-traceback=verbose -g
 実行時環境変数:export VE_TRACEBACK=VERBOSE

詳細は上記マニュアルの24ページに記載しております。

2019.04.11

MPIプログラムを実行した際に"No PBS nodefile found"というエラーが出力される

MPIプログラム実行時に${NQSII_MPIOPTS}を指定していなかった場合、以下のようなエラーが出力されます。

[mpiexec@oct-***] HYDT_bscd_pbs_query_node_list (../../tools/bootstrap/external/pbs_query_node_list.c:23): No PBS nodefile found
[mpiexec@oct-***] HYDT_bsci_query_node_list (../../tools/bootstrap/src/bsci_query_node_list.c:19): RMK returned error while querying node list
[mpiexec@oct-***] main (../../ui/mpich/mpiexec.c:621): unable to query the RMK for a node list

以下のページに、MPIプログラムを実行する際のジョブスクリプトの例を掲載しておりますので、まずご参照ください。
OCTOPUSでのintel MPI実行方法

エラーメッセージ自体は、MPIプログラムの"nodefile"(実行する計算ノードを指定する設定ファイル)が存在しないことを通知しています。OCTOPUSでは、${NQSII_MPIOPTS}を指定いただくことで、自動的に設定されます。

2019.01.10

MPIジョブの出力ファイルにバイナリデータが書き込まれてしまう

MPI並列実行を行うプログラムで各プロセスが同名ファイルにデータを出力するよう記述していると、バイナリが書き込まれてしまう場合があります。
 

大規模計算機システムのような共有ファイルシステムにおいて各プロセスが同名のファイルにデータを出力することは、各プロセスが同一のファイルにデータを出力することと同じであるため、プロセス間で競合が発生した際にデータが破損してしまい、バイナリデータが書き込まれてしまうことがあります。各プロセスごとに別名のファイルに出力するか、MPI-IOというMPI用の入出力インターフェースを利用することで、プロセス間の競合を防ぐことが可能です。
 

MPI-IOについては下記をご覧ください。
MPIの実行結果を1つのファイルに出力したい

2018.11.13

ジョブがEXT状態で止まってしまう

ジョブがEXT状態で停止する原因として、ストレージ使用量が超過しているケースが多いです。停止したジョブの標準エラー出力に「Disk quota exceeded」と出力されている場合はこれが原因です。usage_viewコマンド等で自身のストレージ使用量が超過していないか確認してください。
 

SQUIDやOCTOPUSでは、ファイルシステムがhome領域とwork領域に分かれており、home領域には全ユーザ一律で10GBの制限がかけられています
少し大きなデータを扱うだけで簡単に超過してしまいますので、本格的なプログラムの実行はwork領域をご利用ください。ストレージに関する詳細は下記ページをご覧ください。
ファイルシステムについて(SQUID) ファイルシステムについて(OCTOPUS)

2017.11.27

qsubやqstatコマンド実行時に"Setting locale failed."と表示される

接続を行っている端末のターミナルソフトがフロントエンドサーバ接続時に環境変数を引き継ぐように設定している場合、このメッセージが表示されます。以下の2通りの方法をお試しください。
 

使用しているターミナルソフトの設定を変更する

自身の使用しているターミナル上の/etc/ssh_configファイルの"SendEnv"の記述を下記のようにコメントアウトしてください。
 ※フロントエンドに接続していない状態で行ってください。

    Host *
    # SendEnv LANG LC_*

 

フロントエンドサーバ接続時に自動で環境変数が設定されるようにする(ターミナルの設定を変更したくない場合)

profileファイルに下記のように記述してください。
bashの場合.bash_profileに記述します。

    LC_ALL=en.US UTF=8

 

2015.07.13

ジョブ実行時に「/var/spool/nqsII/jsv/jobfile/0.10989.11/user_script: 実行形式エラー. 間違ったアーキテクチャです.」というエラーが表示される

ファイル形式が、BOM(Byte Order Mark)付きの形式となっており、バッチスクリプトの1行目のシェル指定が正しく認識されていない可能性があります。
BOM付きかどうかは、下記で確認可能です。
 

% file nqs.sh

 

BOMはviなどのエディタで編集可能ですので、削除いただいた上で、再度ジョブの投入をお願いいたします。
下記に、viでの編集例を示しています。
 

編集例
% vi -b nqs.sh (-bオプションを付けてください)
 
<feff>#!/bin/csh
^^^^上記の<feff>という文字がBOMとなります。こちらを削除し、保存してください。
 

2015.05.25

ジョブ投入時にRequest could not be routed.Request deleted.というエラーが表示される

投入したジョブクラスに誤りがある可能性があります。
再度ご確認の上、問題なさそうであれば下記までご連絡ください。
 
お問い合わせ

2015.04.06

SX-ACEで特定の実行エラー出力を抑制(回避)したい

オプションF_ERROPTnを利用することで、エラーを抑制(回避)することが可能です。

setenv F_ERROPTn n1,n2,alt,err,m,t,a,cnt

n,n1,n2,alt,err,m,t,a,cntに、それぞれパラメータを設定する必要があります。

 

使用例

実行時に下記のようなエラーが出力される場合

271 DPWR -> underflow in D**I : D=XXX I=YYY PROG=test ELN=ZZ(ZZZZ) TASKID=1

ジョブスクリプトに下記のようにオプションを指定することで、
プログラム実行時に該当するエラーを検出せずに、動作し続けるようになります。

setenv F_ERROPT1 271,271,2,2,2,2,2,2

設定内容は下記のようになります。
F_ERROPT1 …F_ERROPT1~F_ERROPT9までを設定することができます。
         複数指定した場合、値の小さい方から評価されます。今回は1つだけなので"1"を指定しています。
271,271, …制御を変更したいエラーの「エラー番号」を指定します。複数指定が可能で、始点終点をコンマ区切りで指定します。
       今回は271番のエラーのみなので、始点終点に271を指定しています。
2, …利用者エラー処理ルーチンの実行有無を設定します。この例では「実行しない」設定にしています。
2, …入出力文にERR 指定子が指定されている場合に、指定された文へ制御を移すかどうかを指定します。
  この例では「制御を移さない」設定にしています。
2, …エラーメッセージを出力するかどうかを指定します。この例では「出力しない」設定にしています。
2, …トレースバックメッセージを出力するかどうかを指定します。この例では「出力しない」設定にしています。
2, …エラー検出時にプログラムを終了するかどうかを指定します。この例では「終了しない」設定にしています。
2 …エラー検出時にエラー発生回数に数えるかどうかを指定します。この例では「数えない」設定にしています。
 
上記オプションはエラーの根本解決にはなりませんので、多用はお勧めしません。
ご理解いただいた上で、ご利用ください。

 

詳細は「FORTRAN90/SXプログラミングの手引」のF_ERROPTnオプションの項をご覧ください。

FORTRAN90/SX プログラミングの手引(要認証)

2015.03.12

qsubコマンドやqstatコマンドを実行時にNQSconnect: [BSV ELICENSE] nqscui license was exceeded.というメッセージが表示される

当該エラーメッセージは、qsub/qstatコマンドのライセンス数制限を超過していることを示しています。
 
ライセンス数は十分な数を用意しておりますが、コマンドの実行が集中した場合に、一時的に不足する可能性があります。
当該エラーメッセージを確認された場合は、以下からご連絡くださいませ。
 
お問い合わせフォーム

2015.02.26

SX実行時エラーメッセージに表示されるELN 情報の見方が分からない

ELN情報には、サブルーチン内の問題箇所の行番号が出力されます。
プリプロセッサを動作させている場合は、中間ファイルの行番号がELNとして出力されますのでご注意下さい。
 

行番号のずれについて

SXのハードウェアは高度な先行処理を行っており、
プログラムの実行時に例外が発生してから実際に検出されるまでの
ごくわずかな時間にも先行して命令を処理しています。
 
これが原因で、プログラム例外を発生した命令と実際に検出した命令がずれ、行番号の対応が取れないことがあります。このずれはコンパイラが命令の並び替えなどの最適化を行っていると、さらに大きくずれ実際のソースでは何十行とずれた行になることもあります。
 
このため、例外が発生した行番号を正確に表示するには、ハードウェアの
先行制御を抑止してプログラムを実行する必要があります。
 
FORTRAN90/SX では -adv詳細オプションを用意しており、このオプションを
指定することでハードウェアの先行制御をコントロールすることができます。
 

-adv
演算プロセッサ(AP)における先行制御の状態を変更することを指定する。
すなわち、先行制御機能をプログラム単位の入口で設定し、出口で回復することを指定する。

-adv on  プログラム単位の入口で動作状態にし、出口で回復することを指定する。
-adv off  プログラム単位の入口で停止状態にし、出口で回復することを指定する。

 

例えば、ある手続きに対してハードウェアの先行制御を抑止したい場合は
-adv off を指定してください。
 
ただし、本オプションを指定した場合、著しくプログラムの実行性能が
低下します(実行時間が10倍あるいはそれ以上にもなることがあります)。
このため、ご使用される場合は、むやみに指定するのではなく、先行制御を
抑止して実行する区間が可能な限り短くなるようにしてください。
 
また、コンパイラの行う最適化によって発生しないはずの例外が発生したり、
あるいは発生する例外の位置や回数が変わったりもしますので、この点にも
ご注意ください。「FORTRAN90/SX プログラミングの手引」
「4.4 最適化機能を使用する場合の注意」を参照ください。


 
SXのエラーメッセージについては、下記にマニュアルをご用意しておりますので、まずご確認いただけますと幸いです。
 

閲覧には利用者番号での認証が必要となりますので、ご注意ください。
FORTRAN90/SX プログラミングの手引
 
こちらの「付録D 実行時のメッセージ」「D.1.1 エラーメッセージの形式」という個所をご確認ください。
 

2015.02.12

出力されるエラーメッセージについて、どのマニュアルを参照すればよいでしょうか?

各コンパイラのマニュアルをご参照ください。
マニュアルは下記に置いております。閲覧いただく場合、利用者番号での認証が必要となります。

利用マニュアル

2014.07.14

ジョブ投入時にNo request queue specified, and no local default has been defined.というエラーが表示される

スクリプトファイルにおける、制御コードに問題がある可能性があります。
当センターのシステムでは、文字コードはUTF-8となっておりますので、パソコンからファイル転送する際は、アスキーコードで送付するか、nkf コマンドで文字コード・改行コードを変換する必要があります。

2014.07.14

ジョブを実行しても、エラーメッセージに 「/var/spool/nqsII/jsv/jobfile/****/user_script: コマンドが見つかりません.」 と出力され実行されない。

このエラーの原因は基本的に以下の2つのどちらかとなります。
 

    1.先頭行の "#!" で指定されているコマンド名(通常はシェル名)の絶対パスが誤っている可能性があります。
     パスが正しいか、入力ミスが無いかをご確認ください。
     
    2.ジョブスクリプトファイルの改行コードが CRLF (Windows)になっている可能性があります。
     スクリプトファイルは、文字コードを "UTF-8"、改行コードを "LF" で作成してください。
     

改行コードがCRLFのファイルはエディタ(vi,emacsなど)で開いた際、画面下に[DOS]と表記されます。
アップロードする前の対処方法としては下記の通りです。
 

    ・文字コードや改行コードを指定できるテキストエディタを利用する。
     (秀丸エディタ[シェアウェア] や サクラエディタ 等いろいろあります)
      ※ 文字コードは "UTF-8"、改行コードは "LF" を指定
     
    ・WinSCP でファイルをアップロードする時に転送モードを"テキスト" に設定するか、
     ファイルの拡張子をテキストだと自動判別されるもの(.txt , .sh 等)にする。
     ※ この方法では文字コードには対応できません

 
またアップロード後であっても、フロントエンドノード上で以下のコマンドを実行することで、
改行コードがCRLFからLFに変換されたsample2.shが生成されます。
 

    sed 's/\r//g' sample.sh > sample2.sh