【问题标题】:Perl runtime bug in OGS HPC clusterOGS HPC 集群中的 Perl 运行时错误
【发布时间】: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


【解决方案1】:

正如@bytepusher 描述的那样,解决方案是

#!/usr/bin/env perl

并且提交到qsub -cwd -q long.q ./test.pl 很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 2017-02-13
    相关资源
    最近更新 更多