在MPI任务中,如何确定每个节点可用的处理器数量?

问题描述

因此,我运行一个开放的MPI C ++程序。同一程序(的实例)在多个节点上生成。

现在,为这些实例实际分配/可用的内核数量有所不同。一些实例被分配了整个节点(具有24个核心),但是某些实例仅被分配了一个核心。如果程序有多个可用的硬件线程,则它将使用自定义线程来利用这些硬件线程。

(有时,slurm调度程序会在节点上调度一些实例,这些实例也会分配给其他程序的实例,因此并非所有内核都可用于该节点。)

在c ++中,我可以请求节点上的硬件线程数量为

std::thread::hardware_concurrency();

但是,这(似乎)给了我节点上的硬件线程总数(在我的情况下,总数为24)。我想知道为该MPI程序分配/可用的线程数。 (也许没有这样的概念;我对MPI和群集计算不是很有经验。如果是这样,那么我有兴趣以其他方式弄清楚我的C ++程序实例是否在当前也托管的节点上运行其他程序/计算任务。)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...