GCC 并行编译大型源代码文件功能的改进

局长
 局长
发布于 2020年07月31日
收藏 6

虽然 GNU Make 和其他构建系统可以很好地进行扩展以并发编译大量文件,不过 GCC 自身也一直在让 GCC 的更多工作在编译大型源代码文件时能够并行执行。

早在2019年夏天,其团队就已开始尝试解决并行化遇到的瓶颈,让更多的编译器工作在更大的源代码文件中能够并行运行,并取得了不错的进展。曾参与开发的学生开发者 Giuliano Belinassi 现在又回到了 GSoC 并继续此项工作。

Giuliano 近日提供了关于“自动并行编译可行性”的第二份报告,该报告旨在加快大文件的编译以及为 GNU Jobserver 进行集成。

该代码目前可正常运行,其他开发者也可以通过 GCC 的分支版本进行尝试。数据显示,在四核 Intel Core i7 移动处理器上的提速范围从轻微减速提升到原始 GCC 代码的 1.9 倍速度左右。目前,GCC 的 C、C++ 和 Fortran 前端都支持这项工作,而其他前端可能会在一段时间内出现。

Giuliano 在最新的状态报告中总结道:“目前项目进展顺利,尽管诸如禁用 static promotion 之类的保守方法可能会对并行性潜力产生负面影响。未来解决此问题的方法之一是将最终的汇编文件传送回主 GCC 进程,然后再串联成一个汇编文件,而不是对多个汇编文件进行部分链接。这当然会增加进程间通信的成本,但最终的结果应该是值得的。”

最后,希望这项工作能够继续顺利进行,并且 GCC 的并行化改进在不久的将来最终成为上游项目。
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:GCC 并行编译大型源代码文件功能的改进
加载中

精彩评论

AndersMichael
AndersMichael
你不学,你看不懂历史代码呀,这年头哪还有全新的moderen C++项目

C++真是个匪夷所思的语言,居然同一种语言可以写出完全不一样的风格来,你甚至可以在一个程序源码里面写出C,古典C++,一堆尖括号的模板元,python四种语言的风格...
Qyee1666
Qyee1666
嫌c++复杂的,为啥每个特性你都要用??
小果汁儿
小果汁儿
利好c++
W
WindSpeed
不可能精简,正是因为要兼容历史版本才是现在这个样子,历史包袱太重

最新评论(11

iponder
iponder
你不能阻止别人用啊,最终每个特性都会用到
Qyee1666
Qyee1666
嫌c++复杂的,为啥每个特性你都要用??
湖水没了
湖水没了
拆成小型源代码
AndersMichael
AndersMichael
你不学,你看不懂历史代码呀,这年头哪还有全新的moderen C++项目

C++真是个匪夷所思的语言,居然同一种语言可以写出完全不一样的风格来,你甚至可以在一个程序源码里面写出C,古典C++,一堆尖括号的模板元,python四种语言的风格...
W
WindSpeed
正解,不要指望c++精简,直接学modern c++就好了,很多以前的东西不用学
wanggujin
wanggujin
希望早日能用上GPU的并行能力
z
zuvakino
C++14后语法越来越甜,就是不会用,还不如去学习rust
小果汁儿
小果汁儿
利好c++
W
WindSpeed
不可能精简,正是因为要兼容历史版本才是现在这个样子,历史包袱太重
rz
rz
c++啥时候精简啊
返回顶部
顶部