如何使用openmp生成一次线程

时间:2012-05-15 15:39:33

标签: c linux gcc openmp

我在我的程序中使用openmp,但不是加速它放慢速度。我的猜测是它因为它每次在循环openmp中使用产生线程。有没有办法在程序中生成一次线程。

1 个答案:

答案 0 :(得分:1)

你绝对应该提供代码,其他评论。

通常,openMP应用程序的运行速度是处理器的1-4倍。

对于有兴趣控制产生的线程数的任何人,来自:https://computing.llnl.gov/tutorials/openMP/

  

多少个主题?

     

并行区域中的线程数由以下因素确定,按优先顺序排列:

     
      
  • 对IF条款的评估
  •   
  • 设置NUM_THREADS条款
  •   
  • 使用omp_set_num_threads()库函数
  •   
  • 设置OMP_NUM_THREADS环境变量
  •   
  • 实现默认值 - 通常是节点上的CPU数量,尽管它可能是动态的(参见下一个项目符号)。
  •   
     

线程编号从0(主线程)到N-1

如何设置数字线程环境变量的示例:

export OMP_NUM_THREADS=8

希望它有所帮助。