问题标签 [parallel.for]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1973 浏览

c# - 顺序迭代(Parallel.For())

这段代码的输出每次都不同。是否可以从 0 到 21 顺序输出 i(迭代计数)?

0 投票
2 回答
56 浏览

c# - 二维数组的空间列中是否可以有一个常数?

我正在尝试改进并行性。在我的主要代码部分中。这个循环有主要的计算,每个输出需要做超过 100 万次(我需要 8000 万次输出)。因此,即使是轻微的改进,也会对执行时间产生严重影响。我知道 IF 条件会降低并行计算速度。另外,我知道特殊位置的主要变量(U[i,j] 和 V[i,j])可能始终为零。因此,如果我可以为这些数组的特殊列分配常数零(不想改变计算),我可以从代码中消除 IF 条件。

我想要一个其值始终为零的列。

如何为二维数组的空间列分配常数(零)?

作为示例,上述部分如下所示:

有趣的是,当我运行代码时,我发现它使用了几乎 20% 的内核。是因为我的并行循环较弱还是我应该手动分配循环使用的内核数?

0 投票
1 回答
2475 浏览

c# - 将取消令牌传递给子线程

我有一个场景,我创建了一个传递给父线程的取消令牌,我需要将相同的取消令牌传递给子线程。但是当我将取消令牌传递给子线程时,当父调用 Cancel() 时线程不会被取消。

我在父类中创建了一个取消令牌并通过并行选项将其传递给子线程,但是当父类调用 Cancel() 时,Parallel.For 创建的线程不会终止。

是否有传递 CancellationToken 作为参考的概念?

0 投票
1 回答
374 浏览

c# - 为什么在使用 Parallel.For 时会导致 ArgumentOutOfRangeException?

我尝试写一些东西来散列数字,并根据列表检查它们是否存在匹配的散列。

我使用 for 循环让这个工作正常,然后我决定尝试使用 Parallel.For 来加快速度 - 不幸的是,这会导致 ArgumentOutOfRangeException,我无法调试。

调用 encrypter.EncryptCardNumber 时随机发生错误(似乎在 returnValue.ToString() 上)

我有两个问题:

  1. 为什么我得到一个例外?
  2. 我是否正确使用 BlockingCollection 来实现我想要实现的目标?
0 投票
2 回答
1853 浏览

c# - Parallel.For() 会随着重复执行而变慢。我应该看什么?

我在 C# 中编写了一个简单的 Parallel.For() 循环,如下所示。我也使用常规的 for() 循环来比较单线程与多线程。每次运行单线程版本大约需要五秒钟。并行版本一开始大约需要三秒钟,但如果我运行它大约四次,它会显着减慢。大多数情况下,它需要大约三十秒。有一次需要八十秒。如果我重新启动程序,并行版本会再次快速启动,但在三到四次并行运行后会变慢。有时并行运行会再次加速到原来的三秒,然后减速。

我编写了另一个 Parallel.For() 循环来计算 Mandelbrot 集合成员(丢弃结果),因为我认为问题可能与分配和操作大型数组的内存问题有关。第二个问题的 Parallel.For() 实现确实每次都比单线程版本执行得快,而且时间也是一致的。

我应该查看哪些数据来理解为什么我的第一个天真的程序在多次运行后变慢了?Perfmon 中有什么我应该看的吗?我仍然怀疑它与内存有关,但我在计时器之外分配了数组。我还在每次运行结束时尝试了 GC.Collect() ,但这似乎没有帮助,无论如何都不是一致的。这可能是处理器某处缓存的对齐问题吗?我怎么知道呢?还有什么可能是原因吗?

JR

0 投票
1 回答
147 浏览

c# - 更新外循环

我在数组中有各种 csv 文件的位置strFilePath(几乎 1000 个文件,每个文件中有 100 万条记录)。从文件中读取并将所有数据合并到单个数据表需要大量时间。所以我决定继续进行并行处理。

当前代码

问题是,如何将数据表中的所有数据合并dt到全局数据表中,dtMerge或者如何将所有结果包含到全局变量中dtMerge

预期的工作代码

0 投票
2 回答
772 浏览

c# - 我可以在 Parallel.For 循环中使用相同的函数委托吗

是否可以在 Parallel.For 循环中使用相同的函数委托,或者我是否在死锁中运行。

这意味着我想做这样的事情:

非常感谢!

0 投票
1 回答
934 浏览

c# - 如何使用 parallel.for 将项目添加到列表

我来自Threading with Parallel.For 添加列表。对于链接中的示例,两个线程用于调用Parallel.Invoke仍然很慢,所以我想在循环内执行一些多线程,假设我不关心添加的订单项。但是parallel.for没有像预期的那样工作,并给出了 indexoutofRange 异常。有人请帮忙吗?

0 投票
1 回答
410 浏览

vb.net - 什么应该是 Parallel.For 相当于这个循环

我在 vb.net 中有这个顺序循环。

循环中的“第 15 步”部分很重要。我无法找出此代码的并行替代品。

我尝试了下面的代码,但它缺少“第 15 步”部分。

请帮忙。

0 投票
1 回答
490 浏览

c# - Parallel.for 中的 For 循环

经过昨天的大量谷歌搜索后,我发布了这个问题

我正在研究多线程并且我正在使用 Parrallel.For,我想知道我们如何在 Parrallel.for 中使用 for 循环。据我所知,这不是最佳做法,但现在我必须为我的 RND 工作做

但问题是内部 for 循环不等待,它与多线程值重叠(当 parrallel.for 迭代时)我尝试使用 lock 但没有用。

请注意:我没有粘贴整个代码,只粘贴了骨架