2014.07.14

ジョブがなかなかスケジューリングされません

ジョブは各利用者様の優先度に応じて、スケジューリングされますので、場合によっては待ち時間が発生することがあります。
以下のコマンドを実行することで、ジョブの予約状況を確認することが可能です。

sstat

実行開始時刻が決定していると、
STT(スケジューリング状態)がASG(Assigned)となり、PlannedStartTime(実行開始予定時間)に開始時刻が表示されます。詳細は下記をご覧ください。

スケジューラコマンドについて

あまりに長時間の待ちが発生する場合は、何らかの制限に抵触しているか、もしくはシステムに問題がある可能性があります。以下までご連絡ください。

system{at}hpc.cmc.osaka-u.ac.jp

2014.07.14

実行中のジョブが終了したことを合図に、次のジョブを自動で投入したい。 その際、実行中のjobが成功したかどうかで、投入するジョブを変えたい。

「qwait」コマンドを使用することで、実現可能です。

このコマンドは引数で与えたリクエストID(例:12345.cmc)を待ち合わせするというものです。
指定のリクエストIDのジョブが終了するとメッセージ終了と共にコマンドが終了します。

コマンドの詳細についてはポータルで公開されておりますマニュアル
「NQS利用の手引」のリファレンス編 第1章 ユーザコマンドをご参照頂けますようお願い致します。

NQSII利用の手引き(要認証)
NQSV利用の手引き
※ man qwait でもヘルプを参照できます。

qwait については下記のような使い方が可能です。

監視スクリプトをバックグラウンド実行し、スクリプト内で qwaitを実行します。
exitコード(上記のマニュアルに記載があります)で判定し、その後の動作を分岐させています。
参考にしてください。

-----------
$ qsub job1-1
Request 12345.cmc submitted to queue: Pxx.
$ (./chkjob >& log &)

----- chkjob
#!/bin/sh
while :
do
qwait 12345.cmc #リクエストIDを任意のものに変更して下さい
case $? in
0) qsub job1-2;exit;;
1) qsub job2-1;exit;;
2) qsub job3-1;exit;;
3) echo NQS error | mail xxxx@yyyy.ac.jp;exit;;#メールアドレスを任意のものに変更してください
7) continue;;
*) ;;
esac
done
------------

以上です。

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

2014.07.14

FortranプログラムからC言語プログラムのサブルーチンを呼び出したい

SX用クロスコンパイラの場合、下記のようにコンパイルすることが可能です。

% sxc++ -S a.c
% sxf90 b.f90 a.s

intelコンパイラの場合、下記のようにコンパイルすることが可能です。

% icc -c a.c
% ifort b.f90 a.o

« Previous