2

新しい計算クラスタをセットアップしようとしていますが、現在 SGE で qsub コマンドを使用するとエラーが発生します。問題を示す簡単な実験を次に示します。

test.sh

#!/usr/bin/zsh

test="hello"
echo "${test}"

test.sh.eXX

test=hello: コマンドが見つかりません。

テスト: 未定義の変数。

test.sh.oXX

警告: tty にアクセスできません (不正なファイル記述子)。

したがって、このシェルにはジョブ制御がありません。

ヘッド ノード (sh test.sh) でスクリプトを実行すると、正しい出力が得られます。「qsub test.sh」と入力して、ジョブを SGE に送信します。

HPC などの確立されたコンピューティング クラスターでまったく同じスクリプト ジョブを同じ方法で送信すると、期待どおりに完全に機能します。この問題を引き起こしている可能性のある設定は何ですか?

この件についてご協力いただきありがとうございます。

4

1 に答える 1

4

ほとんどの場合、クラスターのキューは、デフォルト シェルが /bin/csh の posix_compliant モードに設定されています。posix_compliant 設定は、あなたの #! 行は無視されます。キューを unix_behavior に変更するか、qsub の -S オプションを使用して必要なシェルを指定できます。

#$ -S /bin/sh
于 2013-10-16T20:35:53.827 に答える