什么是OpenMP?

时间:2010-08-19 16:21:09

标签: c++ c parallel-processing openmp

什么是OpenMP的高级描述?

Wikipedia article表示“OpenMP(Open Multi-Processing)是一个应用程序编程接口(API),支持C,C ++和Fortran上的多平台共享内存多处理编程,包括Unix和Microsoft Windows平台。它由一组编译器指令,库例程和影响运行时行为的环境变量组成。“什么?

与其他并发方法(如线程,线程池和工作窃取)相比如何?

1 个答案:

答案 0 :(得分:5)

这是一组扩展,可以使C / C ++能够并行运行代码的某些部分,而无需显式管理(创建,销毁,分配)线程。

它基本上通过允许您以声明方式并行运行代码的某些部分来从管理线程的复杂性中抽象出来。代码示例始终有用:

# pragma omp parallel \
  shared ( n, x, y ) \
  private ( i ) \
  reduction ( + : xdoty )

# pragma omp for

  for ( i = 0; i < n; i++ )
  {
    xdoty = xdoty + x[i] * y[i];
  }