问题标签 [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 回答
2093 浏览

python - 使用 qsub 提交连续且独立的作业的速度有多快?

这个问题与pbs job no output when busy相关。即当 PBS/Torque 处于“忙碌”状态时,我提交的一些作业没有输出。我想当许多作业一个接一个地提交时会更忙,而且碰巧的是,在以这种方式提交的作业中,我经常得到一些不产生任何输出的作业。

这里有一些代码。

假设我有一个名为“x_analysis.py”的 python 脚本,它将包含一些数据的文件作为其输入,并分析存储在文件中的数据:

现在,假设我需要: (1) 准备 N 个这样的数据文件:data_1.pkl, data_2.pkl, ..., data_N.pkl (2) 对每个文件进行“x_analysis.py”处理,并写入结果到他们每个人的文件。(3) 由于不同数据文件的分析都是相互独立的,所以我打算使用 PBS/Torque 并行运行它们以节省时间。(我认为这本质上是一个“令人尴尬的并行问题”。)

我有这个 python 脚本来执行上述操作:

该脚本准备一组要分析的数据,将其保存到一个文件中,写入一个 pbs 提交文件来分析这组数据,提交作业以执行此操作,然后继续对下一组数据再次执行相同操作, 等等。

事实上,当脚本运行时,作业 ID 列表会在作业提交时打印到标准输出。'ls' 表示有 N 个 .sub 文件和 N 个 .pkl 数据文件。“qstat”显示所有作业都在运行,状态为“R”,然后已完成,状态为“C”。但是,之后,'ls' 显示 .out 输出文件少于 N 个,“x_analysis.py”生成的结果文件少于 N 个。实际上,一些工作没有产出。如果我要清除所有内容,然后重新运行上述脚本,我会得到相同的行为,一些作业(但不必与上次相同)不会产生任何输出。

有人建议,通过增加提交连续作业之间的等待时间,情况会有所改善。

但我觉得这不是最令人满意的,因为我尝试了 0.1s、0.5s、1.0s、2.0s、3.0s,但都没有真正的帮助。有人告诉我,50s 的等待时间似乎很好,但如果我必须提交 100 个工作,等待时间将是大约 5000s,这似乎非常长。

我尝试通过提交作业数组来减少使用“qsub”的次数。我会像以前一样准备所有的数据文件,但只有一个提交文件,“analysis_all.sub”:

然后提交

但即便如此,一些工作仍然不会产生产出。

这是个常见的问题吗?我做的不对吗?在工作提交之间等待是最好的解决方案吗?我可以做些什么来改善这一点吗?

提前感谢您的帮助。

编辑1:

我使用的是 Torque 2.4.7 版和 Maui 3.3 版。

此外,假设作业 ID 为 1184430.mgt1 的作业不产生任何输出,而作业 ID 为 1184431.mgt1 的作业按预期产生输出,当我在这些上使用“tracejob”时,我得到以下信息:

编辑 2:对于不产生输出的作业,“qstat -f”返回以下内容:

与产生输出的工作相比:

似乎一个的退出状态是 0 而另一个不是。

编辑3:

从上面的“qstat -f”输出来看,问题似乎与后期作业文件处理中的“过时 NFS 文件句柄”有关。通过提交数百个测试作业,我已经能够识别出许多产生失败作业的节点。通过ssh查看这些,我可以在 中找到丢失的 PBS 输出文件/var/spool/torque/spool,我还可以在其中看到属于其他用户的输出文件。这些有问题的节点的一件奇怪的事情是,如果它们是唯一选择使用的节点,那么作业在它们上运行良好。只有当它们与其他节点混合时才会出现问题。

由于我不知道如何修复后期作业处理“过时的 NFS 文件句柄”,因此我通过向它们提交“虚拟”作业来避开这些节点

在提交实际工作之前。现在所有作业都按预期产生输出,无需等待连续提交。

0 投票
1 回答
347 浏览

pbs - PBS 脚本:多个作业、节点计数、变量

在 PBS 作业数组中的唯一作业之间,是否可以操纵使用的节点数和/或程序本身使用的变量值?

例如,一个脚本可能会在 1 个节点上运行我的程序作为不同的作业提交,然后是 2 个节点,然后是 3 个节点等。而另一个脚本可以增量地更改程序变量的值。

0 投票
2 回答
323 浏览

c - OpenMP - 无输出

我有一个需要与 openMP 并行的 C 代码。代码本身连续运行良好,但在并行时不能。该代码正在使用 PBS 运行,并且我已经包含了批处理脚本。

该代码有两个瘫痪区域,都在一个时间循环内,最后变成串行以打印输出文件。理想情况下,每个时间步都有一个输出。

我串行地每个时间步输出一个文件,但并行地它输出第一个文件并继续无限期地运行,不输出任何内容(包括错误文件,自制和系统错误)。

编码

笔记

- 多维阵列为 200x200x200,其中有 20 多个无法实际减少(代表 3d 组织中的生物细胞特性)

这导致我们调查内存错误的可能性。所以我们更改了批处理脚本以允许每个处理器 8gb

-代码包括和omp_set_num_threads(64),编译行是;

-批处理脚本是

mppwidth 和 aprun 不运行

在此先感谢,并对糟糕的拼写语法和格式等表示歉意。

0 投票
2 回答
819 浏览

parallel-processing - PBS 运行具有不同参数的同一程序的多个实例

您如何通过 PBS 提交多次运行同一个程序,但集群上的每个实例使用不同的参数。另外,是否可以将这些程序中的每一个指定到一个单独的节点?目前,如果我有一个带有以下脚本的 PBS:

它将在单个节点上运行单个程序一次。如果我使用以下脚本:

我相信这将串行运行每个程序,但它只会使用一个节点。我可以声明多个节点,然后将特定节点委托给我希望运行的程序的每个实例吗?

任何帮助或建议将不胜感激。如果我不清楚任何内容或使用了不正确的术语,我深表歉意……我对集群计算非常陌生。

0 投票
1 回答
81 浏览

cluster-computing - 如何在具有 2 个计算节点和 1 个头节点的扭矩集群中运行数据包捕获程序?

我使用带有 2 个计算节点和 1 个头节点的扭矩 pbs 配置了一个集群。我使用 qsub 命令(如 qsub myscript.sh)提交了作业

myscript.sh 包含一些 shell 代码。该脚本在任何计算节点中都成功执行,结果我得到了一些输出文件。这种类型的作业提交和执行非常容易。但是我在以下方面面临很多问题......

我有一个用 C 语言编写的带有 libpcap 依赖项的网络数据包捕获模块。我的要求是这样的。我想将此程序提交到不同的计算节点(computenode-0-0,computenode-0-1)。因此,无论所有数据包都到达头节点,这些数据包都将由我在计算节点中运行的程序处理。

我将如何提交 C 程序?计算节点如何进行负载均衡?我必须在集群中做哪些额外的配置?

0 投票
1 回答
120 浏览

bash - 如何获取有关集群的信息?

我正在使用 Infiniband/Gigabit 集群并使用 PBS 提交作业。登录到新集群时,如何使用 bash 获取有关节点数量和可以在那里使用的 cpus/节点的信息?

0 投票
2 回答
2668 浏览

perl - 如何通过 perl 脚本在 PBS 扭矩中使用 qsub -v 命令?

我想通过使用“qsub -v”命令将变量传递给 perl 脚本。这是我将运行的 perl 脚本(这只是一个测试,但如果它不起作用,我将无法做任何更困难的事情)

所以,如果我要运行这个脚本(不是通过 qsub),我会输入:

但是,我会在使用 pbs 的集群节点上运行此脚本。我做了几次尝试,如下所示:

但它不起作用。任何人都知道我应该如何使用 qsub 将参数传递给我的 perl 脚本?任何帮助将非常感激

不起作用意味着使用 qsub 不会在输出文件上打印任何内容,而仅使用 perl 它会在输出文件中打印输入文件的内容。看起来它不需要任何输入

0 投票
2 回答
868 浏览

perl - 将参数传递给通过 qsub 执行的 perl 脚本

您好想将一个参数传递给我的 perl 脚本,该脚本应该通过 qsub 执行。所以我跑:

在 Test.pl 中,我尝试以多种方式调用 i 参数:

不幸的是 perl 脚本的输出文件总是空的。

你有什么建议吗?我哪里错了?请帮忙

0 投票
1 回答
215 浏览

bash - 在 bash 脚本中重定向错误消息

我正在使用带有 PBS 的服务器。我正在测试它

目前服务器出现问题并返回错误消息。通过重定向此错误消息

什么都不会打印。

现在我想把它放到一个shell脚本中并将输出保存在一个变量中:

但是,尽管我使用 重定向错误消息2>&1,但变量out仍然包含错误消息。我究竟做错了什么?

0 投票
2 回答
805 浏览

pbs - 强制 qsub (PBS) 在退出前等待作业结束

我一直在使用 Sun Grid Engine 在集群的一个节点上运行我的作业。

通常我会在退出之前等待工作完成并使用:

但是现在我不再使用 Sun Grid Engine,而是使用 PBS Pro 10.4

我找不到-sync 的相应指令。

有人可以帮助我吗?提前致谢