在 Visual Studio 2022 中将 OpenMP 更新到更高版本

Kai*_*kha 2 updates openmp vsinstaller visual-studio visual-studio-2022

在 VS22 中,OpenMP 仍为 2.0 版本。是否可以更新到5.0或至少3.0?我还没有在 VS22 Installer 中找到任何允许这样做的选项。

Jér*_*ard 6

很长一段时间,MSVC 使用自己的运行时,但现在已经完全过时了,因为它只支持 20 年前发布的 OpenMP 2.0。最近,MSCV 现在支持 LLVM 运行时(ICC 也使用 libomp)作为新的后端。/openmp:llvm您可以使用旨在支持 OpenMP 3.1(11 年前发布)的标志来启用它。您还可以使用/openmp:experimentalso 来使用 OpenMP 4.5 的某些功能(通常是任务,尽管这是最具实验性的部分)。尚不支持卸载功能(例如在 GPU 上)。OpenMP 5.0 的支持尚未计划。欲了解更多信息,请阅读本文

正如 @Laci 在评论中指出的,另一种解决方案是使用 Clang-cl 编译器,以便从 Visual Studio 中相对完整的 OpenMP 支持中受益。请注意,使用 Clang-cl 而不是默认编译器可能会导致一些不兼容性(尤其是对于大型代码)。例如,Clang 尚不支持某些 C++17/C++20 功能,例如并行 STL、多态分配器或某些高级原子功能(与 MSVC 相对)。您可以在此处获取有关每个编译器对 C++ 功能的支持的更多信息。