问题标签 [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.

0 投票
1 回答
317 浏览

regex - 在 Sun Grid Engine (SGE) 中否定多个队列

在为 Sun Grid Engine 作业提交指定目标队列时,是否可以否定多个目标?

通常我会有类似的东西:

它将在与模式“chrom*”不匹配的每个主机/队列上运行。例如,如果我想在除“chrom*”和“reef”之外的每台机器上运行怎么办?我能找到的所有文档都表明 SGE 应该支持这一点(它们支持 OR 和多种模式),但是到目前为止我的所有尝试都失败了。

我尝试过的一些事情:

(等等)。

我在这里忽略了一些简单的事情吗?我找到的关于他们的模式匹配的最佳文档在这里,在“匹配类型”下:http: //linux.die.net/man/1/sge_types

0 投票
2 回答
358 浏览

variables - 在 Oracle/Sun GridEngine 中执行 bash 脚本

我有一个脚本,它首先定义一系列变量,然后使用这些变量运行程序。但是,该脚本被 Grid Engine 拒绝(它在工作站上工作,但作为阵列作业的一个组件,它需要通过 SGE 运行),因为变量被作为命令读取,导致“找不到命令”回复。

使用以下内容完全重现该错误:

输出示例:

如何让 GridEngine 使用 bash 作为该脚本的解释器?

0 投票
3 回答
9479 浏览

linux - 如何在 qsub 命令中使用管道或重定向?

我想使用 qsub(SGE 8.1.3,CentOS 5.9)在网格上运行一些命令,这些命令需要使用管道(|)或重定向(>)。例如,假设我必须并行化命令

(显然是一个简化的例子:实际上我可能需要将像 bowtie 这样的程序的输出直接重定向samtools 。如果我这样做了:

的结果内容hello.txt看起来像

同样,如果我使用管道 ( echo "hello world" | myprogram),则该消息将传递给myprogram,而不是实际的标准输出。

我知道我可以编写一个小的 bash 脚本,每个脚本都包含带有管道/重定向的命令,然后执行qsub ./myscript.sh. 但是,我正在尝试使用脚本同时运行许多并行化作业,因此我必须编写许多这样的 bash 脚本,每个脚本都使用稍微不同的命令。在编写此解决方案的脚本时,可能会开始感觉非常骇人听闻。Python中此类脚本的示例:

这令人沮丧有几个原因,其中我的程序甚至无法删除许多jobXX.sh脚本以自行清理,因为我不知道作业将在队列中等待多长时间,并且脚本必须工作开始时到场。

有没有办法将我的完整echo 'hello world' > hello.txt命令提供给 qsub ,而不必创建另一个包含该命令的文件?

0 投票
1 回答
181 浏览

database - 从 IPython 并行集线器数据库中检索结果

我一直在使用 IPython 并行在 SGE 集群上运行并行作业。稍后,当所有作业完成后,我使用作业消息 ID 提交我的作业并从中心数据库 (SQlite) 检索结果。这工作正常,直到我的控制器崩溃;在重新启动控制器时,我无法检索提交给旧控制器的作业。我收到了这个错误:

数据库文件 (tasks.db) 仍然存在,并且大小与集线器崩溃前相同。所以,我确定结果在数据库中。我可以使用新控制器检索它们吗?另外,如果我使用 bd_query 命令:

我得到一个空的结果。

0 投票
1 回答
1564 浏览

memory - 如何估计将作业提交到运行 SGE 的集群的内存需求?

我正在尝试将作业提交到集群 [运行 Sun Grid Engine (SGE)]。该工作不断被终止,报告如下:

我设定的资源要求是:

mem_free是我的作业需要h_vmem的内存量,是作业允许使用的内存量的上限。我想知道我的工作将被终止,因为它需要超过该阈值(12G)。有没有办法估计我的操作需要多少内存?我试图弄清楚应该是上限。提前致谢。

0 投票
2 回答
3055 浏览

python - Python - glob.glob 在 Unix 操作系统的指定文件路径中找不到 *.txt

我正在将我在 Windows 环境中编写的一些 Python 脚本转换为在 Unix(Red Hat 5.4)中运行,并且在转换处理文件路径的行时遇到了麻烦。在 Windows 中,我通常使用以下方式读取目录中的所有 .txt 文件:

似乎也可以在 Unix 中使用 glob.glob() 方法,所以我正在尝试实现此方法以使用以下代码在名为“source”的目录中查找所有文本文件:

当我运行此代码时,testout.txt 文件按预期出现,但 sourceout.txt 文件为空。我认为如果我改变线路,问题可能会解决

然后从 /hill 目录运行代码,但这并没有解决我的问题。其他人知道我如何能够读取源目录中的文本文件吗?对于其他人可以提供的任何见解,我将不胜感激。

编辑:如果相关,上面引用的目录 /afs/ 树位于我通过 Putty SSH 进入的远程服务器上。我还使用 test.job 文件来 qsub 上面的 Python 脚本。(这一切都是为了让自己在 SGE 集群系统上提交作业。) test.job 脚本如下所示:

0 投票
1 回答
487 浏览

python - python sge api提交到特定节点

我尝试将我的程序与集群一起使用。现在我创建小作业,并使用 bash 脚本将其提交给特定节点。这些作业将一个大文件复制到节点,在该文件上执行 5 个其他程序,最后该作业将文件复制回来并在节点上将其删除。

这个提交作业的 bash 脚本检查给定目录中有多少硬盘是可用的,计算可以在该节点上运行的最大作业数,并将该作业数发送到该特定节点。这种方法的缺点是我必须在所有作业完成后多次运行这个 bash 脚本。

现在我想用 python 和 drmaa api 做到这一点。但现在我想知道它是否能够使用这个 api 进行节点控制。是否可以使用 drmaa api 提交到特定节点?

或者我是否必须使用 Popen 编写一个解决方法来执行 qsub 命令并通过解析 qstat 命令的输出来获取每个节点的作业数?

0 投票
1 回答
1623 浏览

java - SGE h_vmem 与 java -Xmx -Xms

在我的工作中,我们有几个运行各种 RHEL 版本的 SGE 集群,我们正在使用更新的 Redhat 测试一个新集群,所有 . 在旧集群(“Centos 5.4 版”)上,我可以提交如下作业,并且运行良好:

echo "java -Xms8G -Xmx8G -jar blah.jar ..." |qsub ... -l h_vmem=10G,virtual_free=10G ...

在新集群“CentOS release 6.2 (Final)”上,具有这些参数的作业由于内存不足而失败,我必须将 h_vmem 更改为 h_vmem=17G 才能使其成功。新节点的 RAM 大约是旧节点的 3 倍,在测试中我一次只做几个工作。

在旧集群上,我将 设置-Xms/XmsN,我可以使用N+1orso 作为h_vmem. 在新集群上,除非我设置h_vmem2N+1.

我写了一个很小的 ​​perl 脚本,它所做的只是逐步使用消耗更多内存并定期打印出使用的内存,直到它崩溃或达到限制。h_vmem 参数使其在预期的内存使用情况下崩溃。

我尝试了多个版本的 JVM(1.6 和 1.7)。如果我省略h_vmem,它可以工作,但是运行起来风险更大。

我搜索了其他人看到类似问题的地方,但没有找到解决方案。

0 投票
1 回答
3996 浏览

cpu-usage - SGE 节点的负载能否超过 CPU 的数量?

我正在 Sun Grid Engine(现在称为 Oracle Grid Engine)集群上运行作业。为了查看我的工作是否因为节点超载而变慢,我尝试检查节点的状态:

现在,load_avg是 103.41,而NCPU只有 64。这应该发生吗?某些作业是否使用 CPU 而不是分配给它们的插槽?

更新:响应查询,配置被上传到http://pastebin.com/hLnJBetS

0 投票
1 回答
716 浏览

sungridengine - SGE hold_jid 和捕获失败的作业

我有一个脚本,它提交多个作业以在 SGE 队列上并行运行,另一个收集脚本在此作业列表完成时执行。我-hold_jid wc_job_list用来在并行作业运行时保持收集脚本的执行。

我只是注意到有时某些并行作业会失败,而收集脚本仍在运行。该文件指出:

如果任何引用的作业以退出代码 100 退出,则提交的作业将仍然没有资格执行。

如何捕获并行失败的作业退出状态,以便如果其中任何一个因任何原因失败,则不会执行收集脚本或给出错误消息?