|
|
1
69
你不能这样做。
但是…这是一个反模式,因为您已经有效地序列化了循环,因为每个线程都将锁定
您需要做的是添加子总计,然后像这样在末尾合并它们:
您可以在msdn上找到关于这一点的进一步讨论: http://msdn.microsoft.com/en-us/library/dd460703.aspx 插头: 您可以在第2章的 A Guide to Parallel Programming 以下也绝对值得一读… |
|
2
16
|
|
|
3
5
你的猜测是正确的。
当你写作时
如果两个线程同时读取字段,则第一个线程所做的更改将被第二个线程覆盖。
你需要使用
|
|
|
4
4
增加long不是原子操作。 |
|
|
5
4
我认为很重要的一点是要区分这个循环不能进行并行划分,因为正如上面所提到的,循环的每个迭代都依赖于先前的迭代。parallel for是为显式并行任务而设计的,例如像素缩放等,因为循环的每个迭代在其迭代之外都不能有数据依赖关系。
上面是一个代码示例,它允许对并行性进行简单的分区。然而,警告一句,并行性是要付出代价的,即使我上面作为例子使用的循环也太简单了,不必为它费心,因为设置时间比通过并行性节省的时间要长。 |
|
|
6
3
似乎没有人提到一个重要的点:对于数据并行操作(如操作),使用plinq而不是
上面的代码段使用
|
|
|
7
-1
如果此代码中有两个参数。 例如
我们该怎么办?我猜必须使用阵列! |
|
|
Rishab · 在并行Java中运行函数 2 年前 |
|
|
Deep · 当您并行化代码时,如何保存两个独立的CSV? 2 年前 |
|
|
Setu · MPI代码的哪些部分是复制的,哪些是共享的? 2 年前 |
|
|
heyula · 如何在mpi中定义本地数组? 2 年前 |
|
|
Rebel · 如何以最有效的方式加速和并行化以下matlab代码? 3 年前 |