OpenMP 笔记(C 语言)

                     

贡献者: addis

  • 本文处于草稿阶段。
预备知识 C++ 基础

   当并行时一个或多个命令不是 thread safe 的时候,可以把它放在 critical block 里面,这里面一次只有一个 thread 能进入。

#pragma omp parallel for
for(int i = 0; i < size; i++) {
	myArray[i] = i * 2;
	#pragma omp critical
	{
		std::cout << "Processing value: " << myArray[i]
			<< " by thread " << omp_get_thread_num() << std::endl;
	}
	// ...
}

   一个更高性能的命令是

#pragma omp atomic
counter++;

                     

© 小时科技 保留一切权利