Parallel processing 以MPI定义处理器的数量
MPI中是否有类似OpenMP中omp_set_num_threads的命令来定义处理器的数量??我通常用mpirun-np(numberofprocess)定义终端中的处理器数量,但我想在OpenMP等主体算法中定义它。MPI中有解决方案吗?谢谢长话短说,答案是否定的 也就是说,您可以使用Parallel processing 以MPI定义处理器的数量,parallel-processing,mpi,Parallel Processing,Mpi,MPI中是否有类似OpenMP中omp_set_num_threads的命令来定义处理器的数量??我通常用mpirun-np(numberofprocess)定义终端中的处理器数量,但我想在OpenMP等主体算法中定义它。MPI中有解决方案吗?谢谢长话短说,答案是否定的 也就是说,您可以使用MPI\u Comm\u spawn()手动生成新的MPI任务。在MPI的上下文中,基本上生成fork&exec新进程,这意味着这些进程将在main函数中启动。 这与多线程应用程序(如OpenMP)非常不同,
MPI\u Comm\u spawn()
手动生成新的MPI任务。在MPI的上下文中,基本上生成fork
&exec
新进程,这意味着这些进程将在main
函数中启动。
这与多线程应用程序(如OpenMP)非常不同,在多线程应用程序中,您可以创建一个新线程,并在需要的地方直接启动它。
此外,您还可以使用MPI\u Comm\u disconnect()
来“释放衍生任务”(从实用的角度来看,这些任务可以自由退出(),这可能是它们应该做的)
乍一看,一种更加MPI’ish的方法是使用mpirun
启动所有任务,然后MPI\u Comm\u split()
在一个较小的(子)通信器中进行计算,并让其他任务在MPI\u Barrier()中等待。
(请注意,这些任务可能会使用CPU,但它们可以自由地执行其他工作,而不是坐在障碍物中)