问题标签 [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.
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 文件句柄”,因此我通过向它们提交“虚拟”作业来避开这些节点
在提交实际工作之前。现在所有作业都按预期产生输出,无需等待连续提交。
pbs - PBS 脚本:多个作业、节点计数、变量
在 PBS 作业数组中的唯一作业之间,是否可以操纵使用的节点数和/或程序本身使用的变量值?
例如,一个脚本可能会在 1 个节点上运行我的程序作为不同的作业提交,然后是 2 个节点,然后是 3 个节点等。而另一个脚本可以增量地更改程序变量的值。
c - OpenMP - 无输出
我有一个需要与 openMP 并行的 C 代码。代码本身连续运行良好,但在并行时不能。该代码正在使用 PBS 运行,并且我已经包含了批处理脚本。
该代码有两个瘫痪区域,都在一个时间循环内,最后变成串行以打印输出文件。理想情况下,每个时间步都有一个输出。
我串行地每个时间步输出一个文件,但并行地它输出第一个文件并继续无限期地运行,不输出任何内容(包括错误文件,自制和系统错误)。
编码
笔记
- 多维阵列为 200x200x200,其中有 20 多个无法实际减少(代表 3d 组织中的生物细胞特性)
这导致我们调查内存错误的可能性。所以我们更改了批处理脚本以允许每个处理器 8gb
-代码包括和omp_set_num_threads(64),编译行是;
-批处理脚本是
mppwidth 和 aprun 不运行
在此先感谢,并对糟糕的拼写语法和格式等表示歉意。
parallel-processing - PBS 运行具有不同参数的同一程序的多个实例
您如何通过 PBS 提交多次运行同一个程序,但集群上的每个实例使用不同的参数。另外,是否可以将这些程序中的每一个指定到一个单独的节点?目前,如果我有一个带有以下脚本的 PBS:
它将在单个节点上运行单个程序一次。如果我使用以下脚本:
我相信这将串行运行每个程序,但它只会使用一个节点。我可以声明多个节点,然后将特定节点委托给我希望运行的程序的每个实例吗?
任何帮助或建议将不胜感激。如果我不清楚任何内容或使用了不正确的术语,我深表歉意……我对集群计算非常陌生。
cluster-computing - 如何在具有 2 个计算节点和 1 个头节点的扭矩集群中运行数据包捕获程序?
我使用带有 2 个计算节点和 1 个头节点的扭矩 pbs 配置了一个集群。我使用 qsub 命令(如 qsub myscript.sh)提交了作业
myscript.sh 包含一些 shell 代码。该脚本在任何计算节点中都成功执行,结果我得到了一些输出文件。这种类型的作业提交和执行非常容易。但是我在以下方面面临很多问题......
我有一个用 C 语言编写的带有 libpcap 依赖项的网络数据包捕获模块。我的要求是这样的。我想将此程序提交到不同的计算节点(computenode-0-0,computenode-0-1)。因此,无论所有数据包都到达头节点,这些数据包都将由我在计算节点中运行的程序处理。
我将如何提交 C 程序?计算节点如何进行负载均衡?我必须在集群中做哪些额外的配置?
bash - 如何获取有关集群的信息?
我正在使用 Infiniband/Gigabit 集群并使用 PBS 提交作业。登录到新集群时,如何使用 bash 获取有关节点数量和可以在那里使用的 cpus/节点的信息?
perl - 如何通过 perl 脚本在 PBS 扭矩中使用 qsub -v 命令?
我想通过使用“qsub -v”命令将变量传递给 perl 脚本。这是我将运行的 perl 脚本(这只是一个测试,但如果它不起作用,我将无法做任何更困难的事情)
所以,如果我要运行这个脚本(不是通过 qsub),我会输入:
但是,我会在使用 pbs 的集群节点上运行此脚本。我做了几次尝试,如下所示:
但它不起作用。任何人都知道我应该如何使用 qsub 将参数传递给我的 perl 脚本?任何帮助将非常感激
不起作用意味着使用 qsub 不会在输出文件上打印任何内容,而仅使用 perl 它会在输出文件中打印输入文件的内容。看起来它不需要任何输入
perl - 将参数传递给通过 qsub 执行的 perl 脚本
您好想将一个参数传递给我的 perl 脚本,该脚本应该通过 qsub 执行。所以我跑:
在 Test.pl 中,我尝试以多种方式调用 i 参数:
不幸的是 perl 脚本的输出文件总是空的。
你有什么建议吗?我哪里错了?请帮忙
bash - 在 bash 脚本中重定向错误消息
我正在使用带有 PBS 的服务器。我正在测试它
目前服务器出现问题并返回错误消息。通过重定向此错误消息
什么都不会打印。
现在我想把它放到一个shell脚本中并将输出保存在一个变量中:
但是,尽管我使用 重定向错误消息2>&1
,但变量out
仍然包含错误消息。我究竟做错了什么?
pbs - 强制 qsub (PBS) 在退出前等待作业结束
我一直在使用 Sun Grid Engine 在集群的一个节点上运行我的作业。
通常我会在退出之前等待工作完成并使用:
但是现在我不再使用 Sun Grid Engine,而是使用 PBS Pro 10.4
我找不到-sync 的相应指令。
有人可以帮助我吗?提前致谢