问题标签 [pbs]

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 回答
591 浏览

cluster-computing - PBS: Requesting only a single core per node without requesting the entire node

I've got processes that need to be farmed out over a cluster that supports PBS, however, due to limitations with the process, I can only run one process per node at a time. Each node has two processors, the ghetto approach would be to simply request two processors per job. But that wastes a core per job. Is it possible to request a single core per job while making sure that only a single process from all of my jobs is running at a time on a given node?

0 投票
1 回答
785 浏览

multithreading - PBS(扭矩)未能将四核处理器视为 4 个处理器

我有一个 Debian 集群,每个节点有 2 个节点和两个四核处理器。我使用 Torque 和 Maui 作为调度程序。当我尝试运行具有 16 个进程的 MPI 作业时,调度程序无法运行该作业:要么将其放入队列(尽管当时没有任何作业在运行),要么运行并且生成的输出文件说你试图运行一个只有 4 个处理器的 16 个进程的作业。

我的 .../pbs/server_priv/nodes 文件如下所示:

我用来运行程序的脚本示例如下:

我尝试了很多节点和 ppn 的组合,但是发生了两个错误之一。关于发生了什么的任何想法?

0 投票
8 回答
6012 浏览

c++ - 共享内存、MPI 和排队系统

我的 unix/windows C++ 应用程序已经使用 MPI 进行了并行化:作业在 N 个 cpus 中拆分,每个块并行执行,非常高效,速度扩展非常好,工作做得很好。

但是有些数据在每个过程中都是重复的,并且由于技术原因,这些数据不能轻易地通过 MPI 拆分(...)。例如:

  • 5 Gb 的静态数据,为每个进程加载完全相同的数据
  • 可以在 MPI 中分发的 4 Gb 数据,使用的 CPU 越多,每个 CPU 的 RAM 越小。

在 4 CPU 作业中,这意味着至少需要 20Gb RAM 负载,大部分内存“浪费”,这太糟糕了。

我正在考虑使用共享内存来减少整体负载,“静态”块每台计算机只会加载一次。

所以,主要问题是:

  • 是否有任何标准的 MPI 方法可以在节点上共享内存? 某种现成的+免费图书馆?

    • 如果没有,我将boost.interprocess使用 MPI 调用来分发本地共享内存标识符。
    • 共享内存将由每个节点上的“本地主机”读取,并且共享只读。不需要任何类型的信号量/同步,因为它不会改变。
  • 有任何性能下降或需要注意的特定问题吗?

    • (不会有任何“字符串”或过于奇怪的数据结构,一切都可以归结为数组和结构指针)
  • 该作业将在 PBS(或 SGE)排队系统中执行,在进程不干净退出的情况下,我想知道这些是否会清理节点特定的共享内存。

0 投票
2 回答
3307 浏览

pbs - how to limit number of concurrently running PBS jobs

I have a 64-node cluster, running PBS Pro. If I submit many hundreds of jobs, I can get 64 running at once. This is great, except when all 64 jobs happen to be nearly I/O bound, and are reading/writing to the same disk. In such cases, I'd like to be able to still submit all the jobs, but have a max of (say) 10 jobs running at a given time. Is there an incantation to qsub that will allow me to do such, without having administrative access to the cluster's PBS server?

0 投票
4 回答
8811 浏览

cluster-computing - 在集群上测试 MPI

我正在集群上学习 OpenMPI。这是我的第一个例子。我希望输出会显示来自不同节点的响应,但它们都来自同一个节点 node062。我只是想知道为什么以及如何实际从不同节点获取报告以显示 MPI 实际上正在将进程分发到不同节点?谢谢并恭祝安康!

ex1.c

ex1.pbs

编译并运行:


更新:

我想在一个 PBS 脚本中运行多个后台作业,以便这些作业可以同时运行。例如,在上面的示例中,我添加了另一个调用来运行 ex1 并将两个运行都更改为 ex1.pbs 中的后台

(1) 在 qsub 这个脚本与之前编译的可执行文件 ex1 之后,结果很好。

(2) 但是我觉得ex1的运行时间太快了,可能两个后台job没有太多的运行时间重叠,当我将同样的方式应用到我的实际项目中时,情况并非如此。所以我在 ex1.c 中添加了 sleep(30) 以延长 ex1 的运行时间,以便在后台运行 ex1 的两个作业几乎一直同时运行。

但是重新编译和再次qsub之后,结果好像不太对劲。有进程中止。在 ex1.o35571 中:

在 ex1.e35571 中:

我想知道为什么有进程中止?如何在 PBS 脚本中正确 qsub 后台作业?

0 投票
2 回答
424 浏览

scripting - PBS 编程

关于 PBS 的一些简短且可能很愚蠢的问题:

1-我使用

是否可以在作业文件中提交(子)作业?

2-我有以下脚本:

对于启动 job_b,最好在 job_a 的结果完成之前拥有。是否可以设置某种障碍或其他解决方法,以便在 job_a 完成之前不会启动 job_b?

谢谢

0 投票
3 回答
2485 浏览

java - 是否有适用于 Torque/PBS 的 DRMAA Java 库?

有人知道已知可与 PBS/Torque 集群软件一起使用的 DRMAA-API 的 Java 实现吗?

这背后的背景:我想使用符合 DRMAA 的 API 从 Java 将作业提交到新设置的 linux 集群。集群由PBS/Torque管理。Torque 包括用于 Torque/PBS 的 PBS DRMAA 1.0 库,其中包含 DRMA-C 绑定并在 libdrmaa.so 和 .a 二进制文件中提供。我知道 Sun Grid Engine 包含一个提供 Java-DRMAA API 的 drmaa.jar。事实上,我选择使用 SGE,但决定先尝试 PBS。

该决定背后的理论是:
“DRMAA 是一种标准,因此 Java API 只需要符合标准的 drmaa-c 绑定。” 但是,我找不到这样的“通用 DRMAA-C-java API”,现在假设这个假设是错误的,并且 Java 库是特定于引擎的。

编辑:我刚刚尝试了来自 sun Grid Engine 包的 drmaa.jar,并尝试将它与 pbs libdrmaa.so 交叉使用。毫不奇怪,那失败了(JNI unsatisfied link error)。

结论:这样不行!经过一番搜索,我只看到以下几个选项:

  1. 在 Globus 工具包上安装 GridWay。安装在 PBS 之上的 GridWay 声称以 Java 提供 DRMAA。对于我的设置来说,看起来太复杂了。
  2. 报废 DRMAA,通过从 Java 调用系统命令 qsub、qstat 等提交给 PBS。简单但不是很好。
  3. 自己实现一个 drmaa 绑定。太复杂了...

  4. 切换到网格引擎。在我看来,GE 在语言绑定方面优于 PBS。

我倾向于选择选项 2。或 4。有什么建议吗?

0 投票
1 回答
537 浏览

queue - 如何在 SGE 排队系统中指定等价的 ppn(在 PBS 上)?

有没有办法在 中指定ppn(或等效的)SGE?我不想在一个节点中使用所有 cpu,所以我将能够在每个核心上拥有更多内存。(在 PBS 中你会做-l nodes=16:ppn=2的例子)

谢谢。

0 投票
3 回答
5312 浏览

linux - R 编程 - 使用 PBS 在多节点 linux 集群上提交作业

我在多节点 Linux 集群上运行 R。我想使用脚本或批处理模式在 R 上运行我的分析,而不使用 MPI 或 snow 等并行计算软件。

我知道这可以通过划分输入数据来完成,以便每个节点运行数据的不同部分。

我的问题是我该怎么做呢?我不确定我应该如何编写我的脚本。一个例子会很有帮助!

到目前为止,我一直在使用 PBS 运行我的脚本,但它似乎只在一个节点上运行,因为 R 是一个单线程程序。因此,我需要弄清楚如何调整我的代码,以便将劳动力分配给所有节点。

到目前为止,这是我一直在做的事情:

1)命令行:

2) myjobs.pbs:

3)myscript.sh:

4) my_script.R:

任何建议将不胜感激!谢谢!

-CC

0 投票
4 回答
5536 浏览

python - 在集群上使用 python 和 PBS 进行“令人尴尬的并行”编程

我有一个生成数字的函数(神经网络模型)。我希望在带有 Torque 的标准集群上使用 PBS 从 python 测试几个参数、方法和不同的输入(意味着函数的数百次运行)。

注意:我尝试了 parallelpython、ipython 等,但从未完全满意,因为我想要更简单的东西。集群处于我无法更改的给定配置中,这种集成 python + qsub 的解决方案肯定会对社区有益。

为了简化事情,我有一个简单的功能,例如:

其中input是表示输入的对象,input.name是字符串,并且do_lots_number_crunching可能持续数小时。

我的问题是:是否有正确的方法来转换诸如参数扫描之类的东西

进入“某事”会为每次调用该model函数启动一个 PBS 脚本?

我正在考虑一个包含 PBS 模板并从 python 脚本中调用它的函数,但还无法弄清楚(装饰器?)。