1
8
OpenMP有大量的同步开销。我发现除非你有 大循环需要做大量的工作,并且没有内部循环同步,那么使用OpenMP通常是不值得的。 我认为,当您将线程数设置为一(1)时,OpenMP只需对实现循环的OpenMP过程进行过程调用,因此开销最小,性能基本上与非OpenMP情况相同。 否则,我认为OpenMP会设置一些信号量,等待“工作者”线程醒来,同步它们对数据结构的访问,告诉它们要设置什么循环参数,然后调用执行该工作的例程,当它们完成工作块时,它们会再次向主线程发送信号。这种同步必须针对线程所做的每一个工作块进行,而且同步开销是不小的。 使用静态调度选项有助于减少调度/同步开销,特别是在循环迭代次数相对于核心数较大的情况下。 |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |