Apple Clang 和来自 Homebrew 的支持 OpenMP 的 Clang 之间有区别吗?

Is there a difference between Apple Clang and OpenMP-enabled Clang from Homebrew?

我想知道Apple提供的Clang编译器与Homebrew提供的OpenMP自带的Clang编译器相比有什么优势吗? 切换到 OpenMP Clang 会不会有性能损失(不管多线程能力如何)?

我还发现了 this 没有好的答案的老问题


更新

我用Apple的Clang和主流的Clang编译OOFEM和运行同样的问题,

Apple 的 Clang:实际消耗时间:000h:01m:26s

主流 Clang:实时消耗:000h:01m:24s

启用多线程后,性能也相似。 我还注意到的一个区别是,Apple 的 Clang 似乎忽略了一些 CMake 选项,例如-DOpenMP_CXX_FLAGS="-I/usr/local/opt/libomp/include" 对 Apple 的 Clang 没有影响,但对主流的 Clang 可以正常工作。

Is there a difference?

如前所述,答案不言而喻。它们是两个不同的编译器,我们不知道 Apple 在它们内部做了什么。我们知道他们不提供 OpenMP 支持,所以这至少是一个区别。

Will there be any performance loss if switching to OpenMP Clang (regardless of the multi-threading ability)?

我对此表示怀疑,但由于您清楚地测量了性能并使用了两种编译器,您似乎可以告诉我们:-)