英特尔编译器使用的 OpenMP 支持一个环境变量KMP_BLOCKTIME
(docs),我相信它控制线程等待新工作的忙等待(自旋锁定)时间(链接文档声称这默认为 200 毫秒)。
Gnu 编译器使用的 OpenMP 支持一个环境变量GOMP_SPINCOUNT
(docs),我相信它也控制着该库的等效实现细节(尽管显然表示为迭代计数而不是时间)。
我的问题是:Microsoft 提供哪些控件(如果有)来控制 Microsoft 编译器使用的 OpenMP 中的此参数? (目前我感兴趣的是 VS2010。)
(我很清楚,如果我的程序的并行性完全基于 OpenMP,则几乎没有理由担心这一点,但我的兴趣是由来自大型复杂系统的一些 vtune 跟踪引起的,该系统也大量使用了 TBB。)