Relionからジョブ管理システムOpenPBSにジョブを投入すると失敗します.
OpenPBSのバージョンにも寄りますが、v19.1.1以降はダメみたい.
大丈夫なのは 14.1.2 と 18.1.4

原因はOpenPBSがジョブ名称[-N]に「/(スラッシュ)」を含むと「変な文字がありますよ」ってエラーにするため.

Relionの「Running」タブで「Queue submit command」でジョブ名称を上書きするように
「qsub -N 2DClass」
と記載すれば回避されます.
2020y12m28d_071139390.png

っが面倒くさい.
ならqsub.shの「#PBS -N XXXnameXXX」を「#PBS -N relion_job」として名称を統一するのも宜しいかと.

...何のジョブを走らせているかが不明で困る...

ここでは OpenPBS を修正してジョブ名に「/(スラッシュ)」が入ってもジョブが流れるようにしてみます.
以前はrelion側で修正の場合とかを掲示しましたが、削除しました

OpenPBSのコードを修正

Relionを改修せずそのままとして、ジョブ管理システムOpenPBSを修正するなら

まずgitでソースコードを拾って、最新版v20.0.1(2021.01時点)に移り

git clone https://github.com/openpbs/openpbs
cd openpbs
git checkout -b v20.0.1 refs/tags/v20.0.1

エラーと指摘される判断部分(src/lib/Libcmds/ck_job_name.c)に手を加える

diff --git a/src/lib/Libcmds/ck_job_name.c b/src/lib/Libcmds/ck_job_name.c
index decfc3c..fbd54f5 100644
--- a/src/lib/Libcmds/ck_job_name.c
+++ b/src/lib/Libcmds/ck_job_name.c
@@ -60,7 +60,7 @@ isalnumspch(int c)
        if (isalnum(c) != 0)
                return c;
 
-       if (c == '-' || c == '_' || c == '+' || c == '.')
+       if (c == '-' || c == '_' || c == '+' || c == '.' || c == '/')
                return c;
 
        return 0;

この修正を含むソースパッケージ(tar.gz)を下記のようにして作って、specファイルもrpmbuildに写します.

cd ..
tar --exclude-vcs --transform 's/openpbs/openpbs-20.0.1/' -cvzf ~/rpmbuild/SOURCES/openpbs-20.0.1.tar.gz openpbs
cp openpbs/openpbs.spec ~/rpmbuild/SPEC/

一応ソースを弄ったのでpbs_releaseを「c1」とします.
またpbs_homeもちょいと弄ります.

--- rpmbuild/SPECS/openpbs.spec.orig    2021-01-03 12:36:41.439212969 +0900
+++ rpmbuild/SPECS/openpbs.spec 2021-01-03 12:39:19.861564518 +0900
@@ -48,7 +48,7 @@
 %endif
 
 %if !%{defined pbs_release}
-%define pbs_release 0
+%define pbs_release c1
 %endif
 
 %if !%{defined pbs_prefix}
@@ -56,7 +56,7 @@
 %endif
 
 %if !%{defined pbs_home}
-%define pbs_home /var/spool/pbs
+%define pbs_home /var/lib/pbs
 %endif
 
 %if !%{defined pbs_dbuser}

こうして rpmbuild でパッケージを作ります

rpmbuild -ba rpmbuild/SPECS/openpbs.spec

できたパッケージは

ls -l rpmbuild/RPMS/x86_64/openpbs-*c1*
-rw-r--r-- 1 root root 1857224 Jan  3 12:43 rpmbuild/RPMS/x86_64/openpbs-client-20.0.1-c1.x86_64.rpm
-rw-r--r-- 1 root root 8076836 Jan  3 12:43 rpmbuild/RPMS/x86_64/openpbs-debuginfo-20.0.1-c1.x86_64.rpm
-rw-r--r-- 1 root root  428728 Jan  3 12:43 rpmbuild/RPMS/x86_64/openpbs-devel-20.0.1-c1.x86_64.rpm
-rw-r--r-- 1 root root 2256884 Jan  3 12:43 rpmbuild/RPMS/x86_64/openpbs-execution-20.0.1-c1.x86_64.rpm
-rw-r--r-- 1 root root 3418256 Jan  3 12:43 rpmbuild/RPMS/x86_64/openpbs-server-20.0.1-c1.x86_64.rpm

となります。

以降のインストール・設定はOpenPBSを参照してください

これでジョブタイトルに[/(スラッシュ)]が入ってもジョブがそのまま実行されます


留意
qsub.shの内容にも寄りますが、「#PBS -o <標準出力先>」「#PBS -e <標準エラー先>」を明記しないと
タイトル名に「.o<ジョブID>」「.e<ジョブID>」が付いたそれぞれのファイルが用意されます。

末尾が「/(スラッシュ)」で終わっていると標準出力、標準エラーは共に不可視ファイルな「.o<ジョブID>」「.e<ジョブID>」となります。


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2022-03-18 (金) 20:07:24 (154d)