我有一个据说可以并行工作的 C++ 程序(源代码)。但是,如果我使用 g++ 编译它(我使用的是 Ubuntu 10.04 和 g++ 4.4.3)并运行它,我的两个 CPU 内核中的一个会满负荷运行,而另一个则“什么都不做”。
所以我和给我这个程序的那个人谈了。有人告诉我,我必须为 g++ 设置特定的标志,以便为 2 个 CPU 内核编译程序。但是,如果我查看代码,我找不到任何指向并行性的行。
所以我有两个问题:
- 多线程应用程序是否有任何 C++ 内在函数,即是否可以在没有任何额外库的情况下编写并行代码(因为我没有找到包含任何非标准库)?
- 确实有 g++ 的标志告诉编译器为 2 个 CPU 内核编译程序并编译它以便并行运行(如果:它们是什么)?