我可以在单核cpu的机器上使用OpenMP吗?性能会有一些提升吗?
发布于 2012-11-07 23:05:04
可以,停那儿吧。您可以使用OpenMP指令注释代码,但仍然可以按顺序运行应用程序。为此,您必须在没有OpenMP标志(e.g.,
-fopenmp
)的情况下编译和运行应用程序。
例如,您可以在单核上使用OpenMP,但仍然可以通过在带有超线程的单核CPU中运行多线程程序来提高性能。
有一些内存受限的算法可以利用超线程,因为在执行期间,一些线程仍将等待内存被获取,而其他线程将进行计算。在极少数情况下,超线程带来的收益可以来自分支预测的改进。
然而,由于OpenMP指令固有的开销,使用具有单核的OpenMP通常会减慢应用程序的运行速度,即使使用单线程也是如此。此外,线程也在“争夺”相同的资源。
发布于 2018-02-12 18:13:00
当一个程序同时有I/O限制和CPU限制时,你可能会获得一个优势。portions...if线程“1”是I/O限制的,那么线程“2”可以做它的CPU限制的事情。如果程序在其执行的部分中占用大量的I/O,这一点就会变得更加明显
https://stackoverflow.com/questions/13224269
复制相似问题