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

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

JEPaaS 适用于搭建ERP、MRP、OA、MES...系统,也可实现SAAS部署。【适配国产化软硬件】>>>

虽然 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 的并行化改进在不久的将来最终成为上游项目。
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:GCC 并行编译大型源代码文件功能的改进
加载中
此新闻有 11 条评论,请先登录后再查看。
返回顶部
顶部