url: https://dazuozcy.github.io/posts/introdution-to-openmp-intel/#23-%E5%8F%AF%E6%80%95%E7%9A%84%E4%B8%9C%E8%A5%BF%E5%86%85%E5%AD%98%E6%A8%A1%E5%9E%8Batomicsflushpairwise%E5%90%8C%E6%AD%A5%20
视频:https://www.bilibili.com/video/BV1SW411s7ST?spm_id_from=333.788.videopod.episodes&vd_source=7a1a0bc74158c6993c7355c5490fc600&p=26
先来回顾 threadprivate
threadprivate: makes global data private to a thread.
例子:
int counter = 0;
#pragma omp threadprivate(counter) //每个线程都有一个counter变量,并且被初始化为0
int increment_counter()
{
counter++;
return (counter);
}
一个例子:蒙特卡洛法计算pi值
#include <random>
static long num_trails = 10000;
void calc_pi_montacalo()
{
long i;
long Ncircle =