1. OpenMP线程数设置
通常我们希望并行线程数可以随着机器改变自适应的调整,网上介绍OpenMP的文章很多,但是很少提到该怎么分配线程数,一般来说线程数最大可以开到2*核心数,但是这样电脑计算资源就会被占用的过多,其他程序基本上会卡的不要不要的,所以我一般就设置线程为2*核心数-1。
(1) 查看核心数:
上面是我电脑的CPU,在CPU使用记录中有四个框,说明这台电脑有四个核心。
(2) OpenMP获取CPU核心数:
omp_get_num_procs() 函数会返回机器的核心数
(3)OpenMP设置线程数:
#pragma omp parallel for num_threads(2*numProcs-1)
2. VS开启OpenMP支持
开启成功以后运行多线程程序,你会发现: