【发布时间】:2017-04-29 15:42:45
【问题描述】:
上下文:我正在调试一个模拟代码,该代码要求在从重新启动文件继续模拟时,MPI 线程的数量不会改变。这段代码在一个大型集群上运行,但我在一台较小的本地机器上调试它,这样我就不必等待将作业提交到队列。该代码需要 72 个线程,这比本地机器上的内核数还多。这本身不是问题 - 我可以使用比内核更多的线程运行,并且只需承受性能损失,这在调试时不是主要问题。
问题:我想为其他任务和其他用户留出一些内核。例如,如果我的小型本地计算机有 48 个内核,我想在 36 个内核上运行我的 72 个线程,并让 12 个内核空闲。我想在不完全接管机器的情况下在本地调试我的大代码。
假设我愿意处理在比内核更多的线程上运行的内存和性能问题,我该如何做呢?我是否必须以某种方式进入调度程序的后端?这取决于我使用的是 MPICH 还是 Open-MPI 等?
如果可能的话,我基本上是在寻找类似mpirun -np 72 --cpus-per-proc 0.5 的东西。
【问题讨论】:
标签: multithreading mpi hpc