问题描述
因此,我运行一个开放的MPI C ++程序。同一程序(的实例)在多个节点上生成。
现在,为这些实例实际分配/可用的内核数量有所不同。一些实例被分配了整个节点(具有24个核心),但是某些实例仅被分配了一个核心。如果程序有多个可用的硬件线程,则它将使用自定义线程来利用这些硬件线程。
(有时,slurm调度程序会在节点上调度一些实例,这些实例也会分配给其他程序的实例,因此并非所有内核都可用于该节点。)
在c ++中,我可以请求节点上的硬件线程数量为
std::thread::hardware_concurrency();
但是,这(似乎)给了我节点上的硬件线程总数(在我的情况下,总数为24)。我想知道为该MPI程序分配/可用的线程数。 (也许没有这样的概念;我对MPI和群集计算不是很有经验。如果是这样,那么我有兴趣以其他方式弄清楚我的C ++程序实例是否在当前也托管的节点上运行其他程序/计算任务。)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)