如果我使用Visual 2015调试器启动程序,它将使用所有可用的逻辑核心(32)。
如果我在没有调试器的情况下启动程序,它只使用3个内核(6个线程)。
我只在程序中调用omp_set_num_threads
一次,qInfo
的输出在两种情况下都是32。
我不使用编译器标志来改变线程数。有人有快速提示,链中可能存在问题吗?
omp_set_num_threads(std::thread::hardware_concurrency());
qInfo() << "Number of threads" << std::thread::hardware_concurrency();