gpt4 book ai didi

c++ - 对于受 CPU 限制的应用程序,您会推荐哪种语言/平台?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:48:26 24 4
gpt4 key购买 nike

我正在开发非交互式 cpu 绑定(bind)应用程序,它只进行计算,几乎没有 IO。目前它工作时间太长,在我努力改进算法的同时,我也在考虑它是否可以为更改语言或平台带来任何好处。目前它是在使用英特尔 C++ 编译器编译的 Windows 上的 C++(没有 OOP,所以它几乎是 C)。切换到 ASM 有帮助吗?帮助有多大?切换到 Linux 和 GCC 会有帮助吗?

最佳答案

只是要彻底:要做的第一件事是收集配置文件数据,第二件事是考虑您的算法。我相信您知道这一点,但它们必须#included 到任何性能编程讨论中。

直接回答您的问题“切换到 ASM 有帮助吗?”答案是“如果你不知道答案,那么可能不知道。”除非您非常熟悉 CPU 体系结构及其来龙去脉,否则您不太可能在代码上比良好的优化 C/C++ 编译器做得更好。

接下来要说明的一点是,代码的显着加速(除了算法改进之外)几乎肯定来自并行性,而不是线性增长。台式机现在可以在一项任务中投入 4 或 8 个核心,这比稍微好一点的代码生成器具有更大的性能潜力。由于您熟悉 C/C++,因此 OpenMP 几乎是一个明智的选择;它非常容易用于并行化你的循环(显然,你必须观察循环携带的依赖性,但它绝对是“可能工作的最简单的并行性”)。

话虽如此,代码生成质量确实因 C/C++ 编译器而异。英特尔 C++ 编译器因其优化质量而广受好评,不仅完全支持 OpenMP,还完全支持线程构建模块等其他技术。

关于哪种编程语言可能比 C++ 更好的问题,答案是“积极促进/促进并行和并发编程概念的编程语言”。 Erlang 是这方面的佼佼者,现在是一种“热门”语言,大多数对性能编程感兴趣的人都至少关注它,所以如果你想提高你在那个领域的技能,你可能想检查一下。

关于c++ - 对于受 CPU 限制的应用程序,您会推荐哪种语言/平台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/194676/

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