首页 > 解决方案 > 分叉在交互式 HPC 节点上的单个核心上产生

问题描述

我正在尝试在交互式 HPC 节点上测试我在本地开发的脚本,并且我一直在这个奇怪的问题中运行,该问题mclapply仅适用于单核。我看到产生了几个 R 进程htop(与内核数量一样多),但它们都只占用一个内核。

这是我获取交互式节点的方法:

srun -n 16 -N 1 -t 5 --pty bash -il 

有没有我缺少的设置?我怎样才能使这项工作?我可以检查什么?

PS 我刚刚测试过,其他依赖分叉进行并行处理的程序(比如pigz)也受到同样问题的困扰。那些依赖 MPI 和消息传递的人似乎可以正常工作。

标签: rparallel-processingforkhpcslurm

解决方案


是的,您缺少一个设置。尝试:

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 

推荐阅读