Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 微软';s OpenMP自旋锁时间可以控制吗?_C++_Visual Studio 2010_Visual Studio_Openmp_Spinlock - Fatal编程技术网

C++ 微软';s OpenMP自旋锁时间可以控制吗?

C++ 微软';s OpenMP自旋锁时间可以控制吗?,c++,visual-studio-2010,visual-studio,openmp,spinlock,C++,Visual Studio 2010,Visual Studio,Openmp,Spinlock,英特尔编译器使用的OpenMP支持一个环境变量KMP_BLOCKTIME(),我认为它控制了线程等待新工作的繁忙等待(自旋锁定)时间(链接文档声称该时间默认为200ms) Gnu编译器使用的OpenMP支持一个环境变量GOMP_SPINCOUNT(),我相信它还控制着库的等效实现细节(尽管显然表示为迭代计数而不是时间) 我的问题是:Microsoft提供了什么控件(如果有)来控制Microsoft编译器使用的OpenMP中的此参数?(我目前感兴趣的是VS2010。) (我很清楚,如果我的程序的并

英特尔编译器使用的OpenMP支持一个环境变量
KMP_BLOCKTIME
(),我认为它控制了线程等待新工作的繁忙等待(自旋锁定)时间(链接文档声称该时间默认为200ms)

Gnu编译器使用的OpenMP支持一个环境变量
GOMP_SPINCOUNT
(),我相信它还控制着库的等效实现细节(尽管显然表示为迭代计数而不是时间)

我的问题是:Microsoft提供了什么控件(如果有)来控制Microsoft编译器使用的OpenMP中的此参数?(我目前感兴趣的是VS2010。)


(我很清楚,如果我的程序的并行性完全基于OpenMP,那么就没有什么理由担心这一点,但我的兴趣是由一个大型复杂系统的一些vtune跟踪引起的,该系统也大量使用了TBB。)

Microsoft Visual Studio 2010 SP1及更高版本似乎确实支持OMP_WAIT_策略,如图所示


OMP\u WAIT\u策略设置为被动确实解决了我在使用Visual Studio 2013编译时遇到的问题。

看起来不太好,即VS:没有解决方案,也没有相应的指示。感谢链接;“不会修复”来自女士-哎哟!很高兴看到不只是我一个人。事实上,我在使用更标准的OMP_WAIT_策略控制Gnu的OMP等待方面取得了一些成功,但无论附带何种版本的OpenMP,MS都不支持它(或者在2012/2013年也不支持)。
OMP_WAIT_策略
是在OpenMP 3.0中添加的。微软的OpenMP实现是2.0,即使使用了最新和最好的MSVC编译器。