GNU 并行 --jobs 选项在集群上使用多个节点,每个节点有多个 cpu

2023-11-24

我正在使用 gnu Parallel 在每个节点有 2 个 CPU 的高性能 (HPC) 计算集群上启动代码。该集群使用 TORQUE 便携式批处理系统 (PBS)。我的问题是澄清 GNU 并行的 --jobs 选项在这种情况下如何工作。

当我运行不带 --jobs 选项的调用 GNU Parallel 的 PBS 脚本时,如下所示:

#PBS -lnodes=2:ppn=2
...
parallel --env $PBS_O_WORKDIR --sshloginfile $PBS_NODEFILE \
  matlab -nodiplay -r "\"cd $PBS_O_WORKDIR,primes1({})\"" ::: 10 20 30 40

看起来每个核心只使用一个 CPU,并且还提供以下错误流:

bash: parallel: command not found
parallel: Warning: Could not figure out number of cpus on galles087 (). Using 1.
bash: parallel: command not found
parallel: Warning: Could not figure out number of cpus on galles108 (). Using 1.

这看起来像是每个节点都有一个错误。我不明白第一部分(bash: parallel: command not found),但第二部分告诉我它正在使用一个节点。

当我添加选项时-j2到并行调用,错误消失了,我think每个节点使用两个 CPU。我仍然是 HPC 的新手,所以我检查这一点的方法是从我的代码中输出日期时间戳(虚拟 m​​atlab 代码需要 10 秒才能完成)。我的问题是:

  1. 我使用的是--jobs选项正确吗?指定是否正确-j2因为我每个节点有 2 个 CPU?或者我应该使用-jN其中 N 是 CPU 总数(节点数乘以每个节点的 CPU 数)?
  2. 看来 GNU 并行尝试自行确定每个节点的 CPU 数量。有什么办法可以让它正常工作吗?
  3. 有什么意义吗bash: parallel: command not found信息?

  1. 是:-j 是每个节点的作业数。
  2. 是:在远程主机上的 $PATH 中安装“parallel”。
  3. 是的:这是一个结果parallel$PATH 中缺失。

GNU Parallel 登录远程机器;尝试确定核心数量(使用parallel --number-of-cores)失败,然后默认为每个主机 1 个 CPU 核心。通过给-j2GNU Parallel 不会尝试确定核心数量。

您是否知道您还可以在 --sshlogin 中将核心数指定为: 4/myserver ?如果您混合使用具有不同内核数量的机器,这非常有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GNU 并行 --jobs 选项在集群上使用多个节点,每个节点有多个 cpu 的相关文章

随机推荐

  • 实体框架简单通用 GetByID 但具有不同的 PK 名称

    有些人可以帮助我创建一个通用的 GetByID 方法 这里的挑战是 我有很多实体 每个实体都有不同的 PK 名称 我看到几个带有通用 GetByID 的示例 但其中许多具有相同的 PK 名称 如 id Thanks 以下是为具有单个属性键的
  • 与 UIGestureRecognizer 一起监听 UITouch 事件

    我正在创建一个自定义 UIView 并在其上添加 UITapGestureRecognizer 我有一个用于点击手势的处理程序 但同时我希望我的 UIView 能够监听 TouchBegan 和 TouchEnded 方法 我也实现了ges
  • 带单引号的分割方法

    我有一个文本文件 其中包含如下行 列表 列表 雅培 阿什利 J 8697387888 电子邮件受保护 2 3073320999676614 我已将文件读入单独的字符串数组元素 但我想拆分为单独的数组元素 因此它更有用 例如 雅培 阿什利 J
  • javascript 转义函数的 C# 替代方案

    c 中 javascript 转义函数的替代方法是什么 例如 假设一个字符串 Hi Foster s i m miss you 如果我们使用 javascript escape 将给出 Hi 20Foster 27s 20i 27m 20m
  • 使用 JPA 持久保存第 3 方对象

    在我当前的项目中 我使用的是没有 JPA 注释的第三方库 如何使用 JPA 和外部映射持久保存该库中的对象 Check this and this 简而言之 Create META INF orm xml 遵循 阅读 xsd 您不必手动映射
  • 有没有办法查看 Windows 8 设备是否连接了物理键盘?

    我正在编写一个 Windows 8 游戏 该游戏可在 Windows 7 Windows Phone 和 Xbox 上运行 如果连接了键盘 我想显示键盘提示 例如 按 Esc 退出 由于 Windows 8 可以是台式机 笔记本电脑或平板电
  • Magento 模块更改仪表板图表

    我正在关注这篇文章更改 Magento 1 7 1 12 版本中的仪表板图允许 处理 订单的销售情况显示在仪表板图表上 我的文件位于正确的目录下方 并且在配置 gt 高级中显示为活动状态 我还重新索引 刷新缓存并刷新生命周期统计信息 我在日
  • Java 回车到上一行

    n java中是新行 是否可以从当前位置到达上一行 例如 我想打印 这是用于测试 System out println this is for 现在 自从 println 将回车移动到下一行后 如何将 test 附加到上一行 这有效 pri
  • dir-pagination 指令 angularjs :有什么方法可以获取分页中当前页面的所有记录吗?

    我正在使用 michaelbromley 的 dir pagination 指令 我想获取指令当前页面上的所有记录 有什么办法可以做到这一点吗 链接在这里 目录分页 所以我需要 5 个集合records从100到96 有什么快速的方法吗 我
  • Android:旋转更改后对话框等恢复

    旋转屏幕后如何恢复对话框等 例如 弹出一个alertDialog告诉用户一些信息 然后用户将屏幕旋转到另一个方向 如何恢复alertDialog 任何人都可以指导我去做吗 谢谢 稍后附上 我查看了android源代码并发现了这些东西 对话框
  • 参数包未用“...”扩展——gcc 的另一个可变参数模板错误?

    众所周知 gcc 对可变参数模板的处理是不完整的 参见示例this and this 但我想知道以下错误是否已知 我在 bugzilla 找不到它 或者它是否确实是一个错误 本质上 gcc 4 8 1 无法在 lambda 内扩展参数包 i
  • 修改S3对象而不返回它?

    我是 R 中面向对象编程的新手 并且正在努力解决如何正确编写修改对象的函数 这个例子有效 store1 lt list apples 3 pears 4 fruits 7 class store1 lt fruitstore print f
  • OpenCV 中的 SiftDescriptorExtractor 如何转换描述符值?

    我对 SiftDescriptorExtractor 作业的最后一部分有疑问 我正在执行以下操作 SiftDescriptorExtractor extractor Mat descriptors object extractor comp
  • 容器的宽度不围绕 width:auto

    正如标题所述 如果我换行
  • console.log() 异步还是同步?

    我目前正在阅读异步 JavaScript作者 特雷弗 伯纳姆 到目前为止 这是一本很棒的书 他谈到此代码片段和 console log 在 Safari 和 Chrome 控制台中是 异步 的 不幸的是我无法复制这个 这是代码 var ob
  • Javascript 字符串 - 获取某个点的字符

    我有一个变量 var text hello 我想获得 0 位置的字符 所以 var firstChar text 0 简单的 在 Firefox 和 Chrome 中这是有效的 但在 IE 中我总是返回 未定义 有什么想法为什么会在 IE
  • Python、Pandas 和卡方独立性测试

    我对 Python 和统计都很陌生 我正在尝试应用卡方检验来确定以前的成功是否会影响一个人的变化水平 从百分比来看 情况似乎确实如此 但我想看看我的结果是否具有统计显着性 我的问题是 我这样做正确吗 我的结果显示 p 值为 0 0 这意味着
  • 警告:不建议在严格模式下使用 UNSAFE_componentWillMount(升级到 CRA 4.0.2)

    我将 React 应用程序从 16 3 更新到 React 17 同时升级到 电子邮件受保护 一切都按预期进行 但我在控制台中看到以下内容 Warning Using UNSAFE componentWillMount in strict
  • PHP:将多维数组转换为一维数组

    基本上 我的应用程序正在与一个 Web 服务进行交互 该服务会发回一个奇怪的多维数组 例如 Array 0 gt Array Price gt 1 1 gt Array Size gt 7 2 gt Array Type gt 2 这不是问
  • GNU 并行 --jobs 选项在集群上使用多个节点,每个节点有多个 cpu

    我正在使用 gnu Parallel 在每个节点有 2 个 CPU 的高性能 HPC 计算集群上启动代码 该集群使用 TORQUE 便携式批处理系统 PBS 我的问题是澄清 GNU 并行的 jobs 选项在这种情况下如何工作 当我运行不带