问题标签 [qsub]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
10602 浏览

bash - 当我的 qsub 作业在服务器上完成时,如何自动运行 bash 脚本?

当我发送到服务器的所有作业都完成后,我想运行一个脚本。

例如,我发送

我得到了一份已经开始的工作清单。一旦完成,我想在服务器上自动启动另一个脚本来处理这些作业的输出。

如果有任何建议可以帮助我避免以下不雅的解决方案,我将不胜感激:

如果我将上述调用中的 1000 个作业 ID 中的每一个保存在一个单独的文件中,我可以根据当前正在运行的作业列表检查每个文件的内容,即来自调用的输出:

我只需要每半小时检查一次,但我想有更好的方法。

0 投票
2 回答
5858 浏览

environment - SGE - QSUB 无法在 -sync 模式下提交作业

我有一个 perl 脚本,它为二进制程序的输入准备文件,并将二进制程序的执行提交给 SGE 排队系统版本 6.2u2。

提交作业时可以-sync y选择允许父 perl 脚本使用 waitpid 函数监视已提交作业的状态。

这也非常有用,因为向父 perl 脚本发送 SIGTERM 会将此信号传播给每个子代,然后子代会将这个信号转发到 qsub,从而优雅地终止所有关联的提交作业。

因此,我能够使用此-sync y选项提交作业是相当重要的。

不幸的是,我不断收到以下错误:

Unable to initialize environment because of error: range_list containes no elements

请注意“包含”的不正确拼写。那不是错字。它只是向您展示了代码/错误消息的这个区域必须维护得多么糟糕。

产生此错误的尝试提交甚至无法生成 STDOUT 和 STDERR 文件*.e{JOBID}*.o{JOBID}. 提交完全失败。

在 google 上搜索此错误消息只会导致在晦涩的留言板上出现未解决的帖子。

这个错误甚至不会可靠地发生。我可以重新运行我的脚本,相同的作业甚至不一定会产生错误。我尝试从哪个节点提交作业似乎也无关紧要。

我希望这里有人可以解决这个问题。

回答这些问题中的任何一个都可以解决我的问题:

  1. 此错误是否在较新版本的 SGE 中仍然存在?
  2. 我可以更改 qsub 的命令行选项以避免这种情况吗?
  3. 这个错误消息到底在说什么?
0 投票
2 回答
614 浏览

matlab - matlab分布式计算与sge(qsub)

最近我可以在集群上运行我的代码。我的代码是完全可并行化的,但我不知道如何最好地利用它的并行特性。我必须计算一个大矩阵的元素,每个元素都独立于其他元素。我想提交作业以在多台机器(如 100 台)上运行以加快矩阵的计算。

现在,我编写了一个脚本来提交多个作业,每个作业负责计算矩阵的一部分并将其保存在 .mat 文件中。最后,我将它们合并以获得整个矩阵。为了提交每个单独的作业,我创建了一个新的 .m 文件(run1.m、run.2、...)来设置一个变量,然后运行该函数来计算矩阵中的相关部分。所以基本上 run1.m 是

然后 compute_dists_matrix 使用 id 来查找它要计算的部分。然后我编写了一个脚本来创建 run1.m 通过 run60.m 和 qsub 到集群。

例如,我想知道是否有更好的方法可以使用一些 MATLAB 功能来做到这一点。因为这似乎是一个非常典型的任务。

0 投票
1 回答
1611 浏览

perl - 将 Perl 生成的脚本提交给 SGE 时捕获作业 ID

Perl 无法打开进出运行的命令管道,这会在通过 qsub 提交到 SGE 时出现问题,因为我丢失了提交的作业 ID。如何将生成的脚本提交给 SGE获取 SGE 分配的作业 ID?

0 投票
3 回答
2659 浏览

performance - 让 qsub 阻塞直到工作完成?

目前,我有一个驱动程序,它运行数千个“有效负载”程序实例并对输出进行一些后处理。驱动程序当前使用shell()函数从多个线程直接调用有效负载程序。该shell()函数在当前工作目录中执行一个命令,阻塞直到命令完成运行,并返回该命令发送到标准输出的数据。这在单个多核机器上运行良好。我想修改驱动程序以将qsub作业提交到大型计算集群,以获得更多并行性。

有没有办法让qsub命令将其结果输出到标准输出而不是文件并阻塞直到作业完成?基本上,我希望它尽可能地像“正常”执行命令一样,这样我就可以在尽可能少地修改我的驱动程序的情况下并行化到集群。

编辑:我认为所有的网格引擎都非常标准化。如果他们不是并且这很重要,我正在使用 Torque。

0 投票
0 回答
295 浏览

python - python程序在没有信息的情况下在pbs中被杀死

我正在由 pbs_torque 管理的集群中使用 rpy2 运行一个简单的 Python 程序。我的问题是同一段代码运行良好,而其他时间在没有逻辑原因或错误跟踪的情况下被杀死。在程序执行期间的随机点,执行结束。我得到的唯一输出错误是:

kill: 20: 没有这个进程

我不需要提及,我没有打印该消息。一些输出错误文件甚至多次包含此消息。我已经进行了一些搜索,但没有找到任何相关的帮助。集群的所有节点都具有相同的配置,并且应该每个核心运行一个程序实例。

欢迎提出建议。

谢谢

0 投票
2 回答
248 浏览

cluster-computing - How to set the qsub to run job2 five seconds (or any desired value) after the job1 is finished?

Currently what I do is to estimate when job1 will be finished, then using the “#PBS -a [myEstimatedTime+5]" directive I run qsub for job2. But I’m not happy with my approach since sometimes it is over/under estimated.

Is there any better solution?

0 投票
4 回答
1264 浏览

cluster-computing - QSUB 为目录中的每个文件创建一个进程?

我一直在使用

在 Sun GridEngine 集群上提交我的任务,但现在发现自己使用的数据集(也超大的)不太方便命名。解决这个问题的最佳方法是什么?我可以尝试将它们全部重命名,但名称包含需要保留的信息,这显然会带来很多问题。我可以将所有内容预处理为 jsons,但如果有办法只使用 qsub -all_contents_of_directory,那将是理想的。

我是索尔吗?我应该去有问题的目录并找到 . -exec 'qsub setupscript.sh {}'?

0 投票
3 回答
1641 浏览

continuous-integration - 在 Jenkins 持续集成测试系统中向 Oracle Grid Engine 提交作业

我知道如何在 Jenkins 上运行 bash 脚本。但是,如果我使用 qsub 将 bash 脚本提交给 OGE 系统,Jenkins 如何知道我的工作是否终止?

0 投票
3 回答
6808 浏览

linux - 在多线程应用程序中使用 qsub (sge)

我想向我正在使用的集群网络提交一个多线程作业 - 但关于 qsub 的手册页不清楚这是如何完成的 - 默认情况下,我猜它只是将它作为正常作业发送,而不管多线程 -线程 - 但这可能会导致问题,即将许多多线程作业发送到同一台计算机,从而减慢速度。

有谁知道如何做到这一点?谢谢。

批处理服务器系统是 sge。