gpt4 book ai didi

pthreads - 将 openmp 编译成 pthreads C 代码

转载 作者:行者123 更新时间:2023-12-04 13:28:02 29 4
gpt4 key购买 nike

我知道 OpenMP 实际上只是一组编译成 pthread 的宏。有没有办法在编译的其余部分发生之前查看 pthread 代码?我正在使用 GCC 进行编译。

最佳答案

首先,OpenMP 不是一组简单的宏。可以将其简单地转换为类似 pthread 的代码,但 OpenMP 确实需要更多,包括运行时支持。

回到你的问题,至少在 GCC 中,你看不到 pthreaded 代码,因为 GCC 的 OpenMP 实现是在编译器后端(或中端)完成的。转换是在 IR(中间表示)级别完成的。因此,从程序员的角度来看,很难看出代码实际上是如何转换的。

但是,也有一些引用。

(1) 一位英特尔工程师对在英特尔 C/C++ 编译器中实现 OpenMP 进行了很好的概述:

http://www.drdobbs.com/parallel/how-do-openmp-compilers-work-part-1/226300148

http://www.drdobbs.com/parallel/how-do-openmp-compilers-work-part-2/226300277

(2)你可以看看GCC的OpenMP的实现:

https://github.com/mirrors/gcc/tree/master/libgomp

libgomp.h确实使用 pthread,和 loop.c包含并行循环结构的实现。

关于pthreads - 将 openmp 编译成 pthreads C 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14878928/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com