C++ 在Visual Studio 2012中使用OpenMP->;代码甚至比没有代码时慢

C++ 在Visual Studio 2012中使用OpenMP->;代码甚至比没有代码时慢,c++,visual-studio,visual-studio-2012,openmp,C++,Visual Studio,Visual Studio 2012,Openmp,我试图在VisualStudio2012的项目中使用OpenMP来加速一些for循环,但我观察到一些奇怪的行为。OpenMP不会提高性能,甚至会导致运行时变慢 我使用OpenMP创建了以下简单演示: #包括“stdafx.h” #包括 #包括 #包括 #包括 int _tmain(int argc,_TCHAR*argv[] { //获取此系统中的处理器数 int iCPU=omp_get_num_procs(); std::不能使用较大的块。目前,管理10000000个单独步骤的开销超过了使

我试图在VisualStudio2012的项目中使用OpenMP来加速一些for循环,但我观察到一些奇怪的行为。OpenMP不会提高性能,甚至会导致运行时变慢

我使用OpenMP创建了以下简单演示:

#包括“stdafx.h”
#包括
#包括
#包括
#包括
int _tmain(int argc,_TCHAR*argv[]
{
//获取此系统中的处理器数
int iCPU=omp_get_num_procs();

std::不能使用较大的块。目前,管理10000000个单独步骤的开销超过了使用更多内核的好处。更不用说错误的缓存共享了。试试说1000个块,每个块有10000字节的副本。感谢您的快速响应!您的意思是这样的:for(index=0;index