2017-02-09 152 views
-1

我正在编译英特尔tbb社区版本tbb2017_20161128oss。编译时运行很少的测试用例。在其中一个测试案例中,它给了我警告 ./test_global_control.exe
TBB警告:工作人员数量当前限制为0。将忽略1个工人的请求。在限制发生变化之前,对更多工人的进一步要求将被默默地忽略。英特尔tbb编译和测试

这个警告对我的平台意味着什么?我是否应该避免使用ITBB的某些组件?

+3

如果您询问特定平台的某些内容,有助于了解您所谈论的*平台。它可以从你使用的命令中推断出来(因为它以'.exe'结尾),但是你可以使用'。/',这在有'.exe'结尾的程序的平台中是不常见的。 –

+0

我在Linux bash shell上运行ptompt – user2020871

回答

1

通常用于TBB测试的您可以忽略从“TBB警告”开始的运行时警告。通常,这些警告是告诉程序员他们可能使用TBB次优或不正确。然而,在测试中,库的使用方式非常复杂,因此有时会发出警告。

这个特殊的警告说明程序首先限制了允许使用的工作线程的数量,然后尝试请求超出限制允许的更多工作者。对于测试,重要的是要检查这种情况下的行为是否正确;但警告不在其控制范围之内。

在实际应用中,这些警告可以帮助诊断意外情况,所以不应该被忽略。

+0

感谢您的回复。 – user2020871

+0

但我担心的是,为什么工人数量限制为零。如果我没有错,决定工作者数的参数之一是系统具有的硬件线程数(核心数)。我正在编译具有4个线程的机器上的ITBB,但它仍将工人数量显示为零。所以我的查询在编译过程中缺少一些东西,或者只是在测试的时候,因为其他应用程序正在运行,ITBB库无法获取资源。 – user2020871

+1

有TBB类用于显式控制所使用的工人数量,特别是tbb :: global_control类。为了测试,测试使用它来防止使用工作线程。所以,别担心。 –