问题标签 [sungridengine]
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.
cluster-computing - 使用 sun Grid Engine 运行大量作业
我想使用 Sun Grid Engine 运行大量(约 30000 个)作业。
我理论上可以执行 30000 次“qsub”命令来提交作业。但是,我担心这会太多。
有更好的方法吗?(即来自文件)否则,您认为它仍然可以工作吗?
谢谢
exit-code - 从使用 qsub 在 Sun Grid Engine 上提交的进程中获取退出代码
我想通过 Sun Grid Engine(现在:Oracle Grid Engine?)上的 qsub 提交作业。我不希望使用 -sync yes 选项或 qrsh,因为我希望我的控制程序是单线程的并且能够一次启动许多作业。这些选项会阻塞我的控制程序的线程。
但是,我想收到我启动的进程的退出状态。从手册页来看,似乎没有办法在不阻塞我的线程的情况下获取此代码。除了修改我正在启动的作业以将其退出代码打印到标准输出之外,有没有办法获得这种状态?
mpi - 在 Sun Grid Engine (SGE) 中将作业分布在集群的不同节点上
我正在尝试让 sun gridending (sge) 在集群的所有节点上运行 MPI 作业的单独进程。
发生的事情是每个节点都有 12 个处理器,因此 SGE 将我的 60 个进程中的 12 个分配给 5 个单独的节点。
我希望它为 30 个可用节点中的每一个分配 2 个进程,因为每个节点上运行 12 个进程(dna 序列比对),节点内存不足。
所以我想知道是否可以明确让 SGE 将进程分配给给定节点?
谢谢,
保罗。
timeout - 太阳网格引擎上的超时作业
我正在使用 sun Grid Engine (linux) 运行很多工作。有些工作需要(非常)长时间才能运行,我不知道哪些工作提前。
我想停止运行超过 2 小时的作业。是否可以使用 SGE 运行?是否可以从 unix shell 执行此操作?
谢谢
sungridengine - 将输出重定向到 Sun Grid Engine 阵列作业的不同目录
我正在使用 Sun Grid Engine 运行很多工作。由于这些是作业(〜100000),我想使用数组作业,这在队列中似乎更容易。
另一个问题是每个作业都会产生一个 stdout 和 stderr 文件,我需要跟踪错误。如果我在其中定义它们,qsub -t 1-100000 -o outputdir -e errordir
我最终将拥有包含 100000 个文件的目录,这太多了。
有没有办法让每个作业将输出文件写入一个目录(例如,一个由作业 ID 的前 2 个字符组成的目录,它是随机的十六进制字母;或作业编号模 1000,或类似的东西)。
谢谢
perl - 如何控制提交网格作业时使用的 Perl 版本?
我正在使用 SGE(Sun Grid Engine)将作业提交到网格。我也perlbrew
用来管理我安装的 Perl 版本。我编写了一些简短sh
的脚本,用于运行需要特定 Perl 版本 (5.12.2) 的 perl 脚本,如下所示:
现在,当我提交一个作业时,一切正常,但是当我提交许多作业时,我开始收到perlbrew
相关的错误消息,例如:
所以我猜是这/home/dave/perl5/perlbrew/bin/perlbrew switch perl-5.12.2
条线导致了问题。
我能做些什么?
如何使用 perl-5.12.2(默认为 5.8.8)使我的脚本运行?
python - 在 GridEngine 集群的多个节点上运行作业
我可以访问一个 128 核集群,我想在该集群上运行并行作业。该集群使用 Sun GridEngine,我的程序是使用 Parallel Python、numpy、scipy 在 Python 2.5.8 上编写的。在单个节点(4 核)上运行作业会比单核产生约 3.5 倍的改进。我现在想把它提升到一个新的水平,并将工作拆分到大约 4 个节点上。我的qsub
脚本看起来像这样:
有谁知道如何做到这一点?
c++ - 在集群上加载库
我在我们这里的一个集群上成功地用 c++ 编译了一个程序,并带有 boost。我需要运行 SGE 脚本来运行模拟。我得到的错误是这个
./main:加载共享库时出错:libboost_thread.so.1.45.0:无法打开共享对象文件:没有这样的文件或目录
启动程序时是否需要指定库的名称?我使用的脚本如下
谢谢
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 上搜索此错误消息只会导致在晦涩的留言板上出现未解决的帖子。
这个错误甚至不会可靠地发生。我可以重新运行我的脚本,相同的作业甚至不一定会产生错误。我尝试从哪个节点提交作业似乎也无关紧要。
我希望这里有人可以解决这个问题。
回答这些问题中的任何一个都可以解决我的问题:
- 此错误是否在较新版本的 SGE 中仍然存在?
- 我可以更改 qsub 的命令行选项以避免这种情况吗?
- 这个错误消息到底在说什么?
perl - 确定脚本是否在 SGE 中运行
如何从 Perl 脚本中确定它是通过 SGE 运行还是从命令行本地运行?