Parallel processing MPI CPU绑定到特定核心范围

Parallel processing MPI CPU绑定到特定核心范围,parallel-processing,mpi,cpu,hpc,Parallel Processing,Mpi,Cpu,Hpc,我在Windows10上运行一个32核(物理)的桌面,并启动了各种MPI作业。我试图避免使用诸如PBS之类的调度器,因为它对单个用户来说是一种过度杀伤力,我只是在寻找是否有办法指定在哪些内核上启动MPI任务 i、 e: mpiexec -n 8 [core 0 to core 7] task.1 mpiexec -n 8 [core 8 to core 15] task.2 # etc... 我见过使用powershell设置处理器相关性的各种方法,但这些方法似乎不起作用,“英特尔

我在Windows10上运行一个32核(物理)的桌面,并启动了各种MPI作业。我试图避免使用诸如PBS之类的调度器,因为它对单个用户来说是一种过度杀伤力,我只是在寻找是否有办法指定在哪些内核上启动MPI任务

i、 e:

mpiexec -n 8 [core 0 to core  7] task.1
mpiexec -n 8 [core 8 to core 15] task.2      # etc...
我见过使用
powershell
设置处理器相关性的各种方法,但这些方法似乎不起作用,“英特尔MPI”中还有以下选项:

  Processor topology options:
    -bind-to                         process binding
    -map-by                          process mapping
    -membind                         memory binding policy

但是
-map by
似乎没有锁定到特定的核心。

您使用的是哪个MPI库?如果您在每个节点上运行多个作业,无论用户数量如何,作业调度程序可能不会太过重要。嗨,Gilles,感谢您的回复,MPI库是Intel(R)MPI库,版本2019 Build 20180829,它与我正在运行/启动的软件捆绑在一起。切换到作业调度程序的问题是(我不确定服务器上的windows HPC是否能很好地完成这项工作?)PBS pro需要一些依赖于visual studio的旧功能,它看起来是一个非常零碎的解决方案。不确定windows,但在Linux上可以使用I_MPI_PIN_PROCESSOR_LIST环境变量,由您将其设置为正确的值(例如,
0-7
8-15
16-23
24-31
Hi Gilles,这正是在windows:mpiexec-genv I_MPI_PIN_PROCESSOR_LIST=0,1,2,3中。我还尝试了windows HPC pack,您可以让mpiexec或windows HPC调度程序分配内核。使用windows时,它允许内核上的作业que,但是,它还将其放置在用于que系统的核心0上(使计算机暂停)。