如何解决在MPI任务中,如何确定每个节点可用的处理器数量?
因此,我运行一个开放的MPI C ++程序。同一程序(的实例)在多个节点上生成。
现在,为这些实例实际分配/可用的内核数量有所不同。一些实例被分配了整个节点(具有24个核心),但是某些实例仅被分配了一个核心。如果程序有多个可用的硬件线程,则它将使用自定义线程来利用这些硬件线程。
(有时,slurm调度程序会在节点上调度一些实例,这些实例也会分配给其他程序的实例,因此并非所有内核都可用于该节点。)
在c ++中,我可以请求节点上的硬件线程数量为
std::thread::hardware_concurrency();
但是,这(似乎)给了我节点上的硬件线程总数(在我的情况下,总数为24)。我想知道为该MPI程序分配/可用的线程数。 (也许没有这样的概念;我对MPI和群集计算不是很有经验。如果是这样,那么我有兴趣以其他方式弄清楚我的C ++程序实例是否在当前也托管的节点上运行其他程序/计算任务。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。