现在,问题是这个run()函数是从多个线程调用的,当有大量线程同时调用run()时,我会有巨大的性能损失,因为每个parallel for杂注调用都会有大量的OpenMP threads。为了说明,我有线程A和线程B,我的CPU有4个核心,线程A调用函数run(),它将创建4个OpenMP线程来运行for lo
OpenMP标准只考虑ISO98( C++ 14882:1998)。这意味着在C++03甚至C++11下没有支持OpenMP用法的标准。因此,任何使用C++ >98和OpenMP的程序都在标准之外运行,这意味着即使它在某些条件下工作,它也不太可能是可移植的,但绝对不能保证。对于具有自己的多线程支持的C++11,情况甚至更糟,这很可能会在某些实现中与OpenMP发生冲突。
那么,在C++03和C