现在对OpenMP有了一定的感官认识。今天,又看了一下OpenMP的Execution Model,对Execution Model 有了更深入的认识。
我的工作站是4核的,如果不运行OpenMP程序,只会有一个核运行程序,在Windows Task Manager中CPU的使用百分比应该会增加25%左右。
测试代码:
void OneCPU()
{
long i = 0;
while(1)
{
i++;
}
}
运行后,发现CPU使用情况果然增加了25%左右。
测试代码:
void AllCPU()
{
long i = 0;
#pragma omp parallel shared(i)
{
while(1)
{
i++;
}
}
}
运行后,发现CPU使用情况是100%,可见此时4个核全部在运行。
本文通过两个实例展示了OpenMP在多核处理器上的并行处理能力。在单核运行时,程序仅占用约25%的CPU资源;而启用OpenMP并行指令后,程序能充分利用所有核心,达到接近100%的CPU使用率。
370

被折叠的 条评论
为什么被折叠?



