问题标签 [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.
gpu - 使用 Sun Grid Engine (SGE) 调度 GPU 资源
我们有一个机器集群,每台机器有 4 个 GPU。每个工作应该能够要求 1-4 个 GPU。这里有一个问题:我希望 SGE 告诉每个工作它应该使用哪个GPU。与 CPU 不同,如果一次只有一个进程访问 GPU,GPU 的工作效果最好。所以我想:
我遇到的问题是,SGE 将让我在每个节点上创建一个具有 4 个单元的 GPU 资源,但它不会明确告诉作业使用哪个 GPU(只有它获得 1 或 3,或任何)。
gpu0, gpu1, gpu2, gpu3
我-l
想创建 4 个资源(有任何想法吗?
sungridengine - 使用选项 -sync yes 避免在 SGE 中打印作业退出代码
我有一个 Perl 脚本,它向 SGE 提交了一堆数组作业。我希望所有作业并行运行以节省时间,并且脚本等待它们全部完成,然后继续下一个处理步骤,该步骤集成来自所有 SGE 输出文件的信息并生成最终输出。
为了将所有作业发送到后台然后等待,我使用 Parallel::ForkManager 和一个循环:
然而,为了让“等待”部分工作,我不得不在 qsub 选项中添加“-sync yes”。但作为一个“副作用”,SGE 会为每个数组作业中的每个任务打印退出代码,并且由于有许多作业并且单个任务很轻,因此由于所有这些中断消息,它基本上使我的 shell 无法使用,而qsub 作业正在运行。
我怎样才能摆脱这些消息?如果有的话,我有兴趣检查 qsub 的作业退出代码(这样我可以在下一步之前检查一切是否正常),但不是每个任务的一个退出代码(无论如何我通过选项 -e 记录任务的错误以防我需要它)。
c++ - 如何为 SGE 作业正确配置库?
我可以访问一个集群来运行繁重的东西和计算(我只是一个用户,而不是 root)
我有一个名为 rnnlib 的程序,它已编译并正在运行。这使用了我安装在文件夹 (/udd/$USER/local) 中的外部库。
现在,当我尝试向 SGE 提交工作时,我得到的是:
/udd/$USER/test_rnn_lib/ag_rnnlib/bin/rnnlib:加载共享库时出错:libhdf5_hl.so.7:无法打开共享对象文件:没有这样的文件或目录
/udd/$USER/test_rnn_lib/ag_rnnlib/bin/rnnlib:加载共享库时出错:libhdf5.so.7:无法打开共享对象文件:没有这样的文件或目录
我已将 rnnlib 使用的所有库(与 ldd 一起列出)复制到 floder (/udd/$USER/local/libs_for_SGE/)
然后我提交了工作,这是我得到的:
/udd/$USER/test_rnn_lib/ag_rnnlib/bin/rnnlib:重定位错误:/udd/$USER/test_rnn_lib/local/libs_for_sge/libc.so.6:符号_dl_starting_up,版本GLIBC_PRIVATE未在文件ld-linux-x86-中定义64.so.2 与链接时间参考
我试图在 SGE 上加载 libc.so.6,但我得到了这个:
/udd/$USER/test_rnn_lib/ag_rnnlib/bin/rnnlib:/usr/lib64/libstdc++.so.6:未找到版本“GLIBCXX_3.4.15”(/udd/$USER/test_rnn_lib/ag_rnnlib/bin/rnnlib 需要)
python - 等待作业完成的有效方法:python 和 drmaa
我想问一下我通过 Python 使用的 drmaa API 中的“等待”功能。它是否会执行常量 qstat(如果我们在 SGE 上运行它)来检查程序是否已完成执行。
我们的管理员希望我们避免任何恒定的 qstat,因为它会由于调度程序的额外负载而降低性能。
一般来说,wat 将是一种通过 DRMAA 检查作业状态的有效方法,而不会过度使用调度程序。
谢谢!-阿比
sungridengine - 在 SGE 中按编号及其名称请求节点
在 SGE 中提交作业时如何请求节点数(不是 procs)?
例如在 TORQUE 中,我们可以指定
qsub -l nodes=3
如何在 SGE 中通过节点名称请求节点?
例如,在 TORQUE 中,我们可以通过、
qsub -l nodes=abc+xyz+pqr
where和are 主机名来做到这一点abc
xyz
pqr
对于单个主机名,
qsub -l hostname=abc
它可以工作。但是如何在 SGE 中分隔多个主机名?
java - SGE:多线程 Java 代码的并行环境
我编写了一个多线程 java 代码,它在运行时创建 8 个线程,并且在这些线程上继续计算。我想将此作业提交到 SGE 集群,但我不确定pe
应该选择哪个并行环境 ( )?还是我应该创建一个?我是 SGE 的新手。简单的方法是以串行模式运行它,但这效率低下。
关于创建一个pe
,它需要在哪里创建?SGE 守护进程是否也需要这个pe
?当我提交一个随机名称为的工作时pe
,我得到了
linux - 将 -N 选项与 qsub 一起使用时出错
我尝试qsub -N "compile-$*"
在 Makefile 中使用它并给出以下错误,因为在这种情况下 $* 等于“compile-obj/linux/flow”。
我正在使用的整个命令是:-
知道如何在运行 qsub 时在命名中包含斜杠吗?
谢谢
sungridengine - 如何在 SGE 中进行逻辑分区?
我正在使用 GE2011.11。以前,我使用的是 Torque/Maui。在毛伊岛,有一个分区的概念,借助它我们可以在逻辑上划分集群。一个节点不能属于多个分区。
在 GE 中,我正在考虑使用主机组来实现这一点,但是一个节点(主机)可以属于多个主机组,这是不可取的。任何想法,我们如何实现与主机组的分区?
在 GE 中,有一个特性叫做多集群。我们可以使用这个特性来实现分区吗?任何想法,我们如何使用它?
job-scheduling - 防止执行非 SGE 程序
从SGE节点的系统管理来看,是否可以强制用户通过qsub运行长时间运行的程序,而不是单机运行?
问题是同一台机器充当控制节点和计算节点。因此,我无法将长时间运行的程序与使用“gcc”编译的用户区分开来。理想情况下,我想强制用户通过 qsub 提交长时间运行的作业(即超过一个小时)。我什至不介意有点刻薄并杀死运行时间超过一个小时但没有通过 qsub 提交的作业。
到目前为止,我所能做的就是发送电子邮件要求用户“请使用 qsub!”...
我查看了 SGE 配置,但似乎没有任何相关性。但也许我只是错过了一些东西......任何帮助将不胜感激!谢谢!
multithreading - 在 1 个插槽中运行多线程作业?
如果我尝试在 1 个 SGE 插槽中运行多线程作业会怎样?启动多个线程会失败吗?或者它是否仍会启动这些多个线程并可能使 SGE 集群节点超载,因为它将运行的线程数多于插槽数?
我知道我应该使用 -pe 线程 nrThreads 参数。但是我正在运行一个程序,我不确定它在每个步骤中使用了多少线程。