最大线程数和最佳线程数

时间:2019-03-08 04:11:37

标签: c linux bash mpi openmp

我有使用C编程的MPI + OpenMP混合代码。在运行代码之前,我设置了要在Linux Bash中使用的线程:

!# /bin/sh
export OMP_NUM_THREADS=1

但是,如果要使用此计算机中的最大线程数,如何在上述的Linux bash环境中进行设置?

1 个答案:

答案 0 :(得分:0)

通常,OpenMP实现足够聪明,可以为线程数提供一个很好的默认值。例如:

  • 如果您在没有任何OMP_NUM_THREADS设置的情况下运行OpenMP程序,并且根本没有MPI,则OpenMP通常会确定有多少个内核并使用它们。
  • 如果存在MPI,并且MPI进程通过进程固定(例如每个处理器插槽一个等级)绑定到计算机的一个子集,则OpenMP将继承该子集,并且实现将仅自动使用该子集。

在所有这些情况下以及大多数其他情况下,您根本不需要设置OMP_NUM_THREADS

如果您可以分享有关要实现的目标的更多详细信息,则可以提供有关您需要做什么的更详细的答案。