|
|
1
3
与CrossBlend的潜在争用是set1—混合的目标。与其使用锁(与所做的工作量相比,锁会相对昂贵),不如安排每个线程在自己的目标上工作。即给定的目标(set1中某个索引处的数组)由给定的任务拥有。这是可能的,因为结果独立于交叉贷款处理数组的顺序。 然后,每个任务应该只运行CrossBlend中的内部循环,并使用要使用的dest数组(set1)的索引(或索引范围)对任务进行参数化 您还可以并行化Blend方法,因为每个索引都是独立于其他索引计算的,因此没有争用。但在今天的机器上,有<40核你将得到足够的平行只要线程交叉方法。 要在多核上有效运行,您可以
第二种方法最适合于大小不规则的任务,或者系统用于其他任务的情况,因此某些核心可能在其他进程之间进行时间切换,因此不能期望在不同的核心上在大致相同的时间内完成相同数量的工作。 第一种方法编写代码要简单得多,并且可以提供良好的并行性。 |
|
|
JLosc · Powershell脚本因文件锁定而失败 1 年前 |
|
|
Sriram Umapthy · PostgreSql行级锁 2 年前 |
|
|
a a · 为什么在这个可重入锁示例中需要引用计数? 3 年前 |
|
|
JohnLBevan · 为什么原子语句上需要锁提示? 8 年前 |