【发布时间】:2018-12-12 17:51:32
【问题描述】:
我正在尝试调试 HPC 集群。
一个问题:通过 Open Grid Scheduler (OGS/GE 2011.11) 将 Perl 脚本提交到数百个节点的 Linux Suse 集群中。
这会为集群中“长队列”上的 Perl 脚本生成运行时错误,但不会在“短队列”上生成运行时错误。
$> qsub -cwd -q short.q ./test.pl
输出没问题
$> qsub -cwd -q long.q ./test.pl
输出错误日志,
/var/spool/sge/comp26/job_scripts/3141815:第 2 行:意外标记附近的语法错误 my'
/var/spool/sge/comp26/job_scripts/3141815: line 2:open (my $fh, '>', 'test.out');'
如果我将一个 shell 脚本提交到它工作的长队列,包含
perl ./test.pl
有什么想法吗?
系统:GNU bash,版本 4.2.46(2),Perl v5.16.3 (yuk)
测试脚本
#!/usr/bin/perl
# Also tried #!/bin/perl
system("perl -v > perl.out");
open (my $fh, '>', 'test.out');
print $fh 'test';
close $fh;
【问题讨论】:
-
该错误消息来自 shell,而不是 perl,因此无论出于何种原因,该脚本都不会被视为 perl 脚本
-
谢谢,我问过它“哪个 perl”,但除此之外我被卡住了。
-
推荐的 shebang 是
#!/usr/bin/env perl- 请参阅 stackoverflow.com/questions/2791954/… 您是否尝试过设置 perl 二进制文件的确切路径?
标签: perl cluster-computing submission