r - 分叉在交互式 HPC 节点上的单个核心上产生
问题描述
我正在尝试在交互式 HPC 节点上测试我在本地开发的脚本,并且我一直在这个奇怪的问题中运行,该问题mclapply
仅适用于单核。我看到产生了几个 R 进程htop
(与内核数量一样多),但它们都只占用一个内核。
这是我获取交互式节点的方法:
srun -n 16 -N 1 -t 5 --pty bash -il
有没有我缺少的设置?我怎样才能使这项工作?我可以检查什么?
PS 我刚刚测试过,其他依赖分叉进行并行处理的程序(比如pigz
)也受到同样问题的困扰。那些依赖 MPI 和消息传递的人似乎可以正常工作。
解决方案
是的,您缺少一个设置。尝试:
srun -N 1 -n 1 -c 16 -t 5 --pty bash -il
问题是您在分配在单个内核上的 bash shell 中运行并行命令,因此 bash 进程仅在srun
.
否则,您可以首先使用分配您的资源salloc
,一旦获得它们,就运行您的实际命令。例如:
salloc -N 1 -n 1 -c 16 -t 5
srun pigz file.ext
推荐阅读
- java - 每次junit测试后如何清理h2 db?
- rust - 如何使用线程本地存储进行范围事件跟踪?
- unity3d - 我可以使用 RiftCat 玩我的统一 VR 应用吗
- r - Betareg 摘要导致内存分配错误
- javascript - JavaScript - SCRIPT1028:预期的标识符、字符串或数字错误
- ldap - windows 10 php 7.4.8 启用 LDAP 模块未激活
- vue.js - 如何将自定义域代理到 vuejs 应用程序?
- javascript - 高清录制 - Ziggeo Recorder v2 JS
- javascript - React-Redux 问题。找不到变量 mapDispatchToProps
- javascript - 如何将其他项目添加到存储数组并且在重置时仍然能够将数组设置为空?