问题标签 [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.
c# - Parallel.For 具有 64 位无符号索引 (UInt64)
在 C# 中,有一个与循环System.Threading.Tasks.Parallel.For(...)
相同的for
循环,没有顺序,但在多个线程中。问题是,它仅适用于long
and int
,我想使用ulong
. 好的,我可以进行类型转换,但我在边界方面遇到了一些问题。
比方说,我想要一个从long.MaxValue-10
to的循环long.MaxValue+10
(记住,我说的是ulong
)。我怎么做?
一个例子:
c# - 如何计算并行完成百分比?
计算for
完成百分比很容易:
输出:
但我对计算完成百分比一无所知Parallel.For
:
输出:
输出未显示正确的完成百分比。
如何在Parallel.For
不降低性能的情况下计算完成百分比?
c# - 使 For 循环并行
我可以在这部分代码中使用并行编程吗?
我正在运行 For 循环 1000 次。这个循环中的大量工作是这条线(玩游戏直到结束......):
如果我在这里使用并行编程,函数Evaluate的最终结果 可能会受到影响吗?
c# - Parallel.For 奇怪的行为(线程安全)
(请原谅我的英语。)你好。我正在开发一个 .NET(C#) 库,为我的研究执行一些科学计算。有时我必须处理大量数据,所以我实现了并行循环来加速计算。但是我遇到了一个很奇怪的错误:我有一段代码实现了 Simson 的方法(Integral Calculations)。基本上,这只是一笔巨款。所以我使用 Parallel.For 方法来获得这个总和(使用“锁定”一段代码确保线程安全)。
当 n 不大时,此代码会生成正确的结果。如果 n 约为。10000,我得到这个:
假设,右列是我期望得到的精确值。它是通过施工标准计算的。左栏是我并行得到的。行表示此方法的顺序执行。这个问题在我想并行查找总和的每个地方都伴随着我。如果有人对这个问题有任何想法,我会很高兴听到,因为我觉得有一个错误,但我确实没有看到。
c# - 是否有一种通过每个时间间隔迭代来对 Parallel.For 循环进行基准测试的集成方法?
我有一个Parallel.For
用于搜索某些值的语句。找到值后,会将其导出到文件中。找到这样的值很少见,所以一旦我在文件中收到足够的结果,我就会通过终止应用程序来停止代码的执行。
我想做的是在我的For
循环语句中集成某种形式的监视器,它可以告诉我每秒执行了多少次搜索。
我认为这是一个非常基本的、必要的指标。有没有办法以这种方式对 Parallel.For 进行基准测试?
仅供参考,这是一个控制台应用程序,控制台还输出找到的结果。我希望向显示器写入一个接近准确的“搜索/秒”指标。我可以这样做吗?这些数字不需要是完美的,但我是,但它们应该在 5-10% 范围内准确。
编辑
好的,所以每个人总是要求提供代码示例,即使不需要。但这不是问题。我将在下面创建一个简单的应用程序,足以说明我的观点。
假设我有以下程序:
好的,这个应用程序很简单。即使它不能“永远”运行,但它可以有效地运行,因为它不会运行Int32.Max
迭代。
如何以合理的准确度监控和输出此循环并行执行的次数。我可以添加一个全局累加器,但我的直觉是使用这种方法会降低性能。
任务并行库中是否有工具可以报告自调用开始以来发生了多少次循环执行Parallel.For
,或者有没有办法定期查询所有正在执行的任务并安全地检索它们执行了多少次迭代?
c# - 是否可以强制 TPL 在不同的 Parallel.For 中始终使用相同的线程索引?
我在使用 Parallel.For 时遇到了内存问题。
是否可以强制 TPL 在不同的 Parallel.For 中始终使用相同的线程索引?
即使我使用MaxDegreeOfParallelism = Environment.ProcessorCount
在所有不同的 Parallel.For 中使用,TPL 也不会在两个连续的 Parallel.For 之间完全使用相同的线程池。由于这个问题,我有记忆问题。
我不明白为什么如果我Environment.ProcessorCount = 2
的 TPL 没有在开始时仅创建 2 个线程并将其重用于我所有连续的 Parallel.For。这是我的目标。
我该如何管理?
c# - 在 Parallel.For 中,是否可以同步每个线程?
在 Parallel.For 中,是否可以将每个线程与 'WaitAll' 同步?
c# - 如何在 Parallel.For 中释放 DLL 内存?
在嵌套Parallel.For
中,我动态加载/卸载不同的 DLL。我注意到在 'child' 的末尾没有释放内存Parallel.For
。记忆似乎在 'root'之后Parallel.For
被释放。
我已经在许多具有不同名称的 DLL 中克隆了一个 DLL(复制文件并重命名它)。每个NativeMethods.LoadLibrary(...)
加载这些 DLL 之一。/MD
DLL 是使用选项编译的 c++ 非托管代码。每个库只被一个线程使用Parallel.For
你能解释一下吗?
如何释放 DLL 内存Parallel.For
?
.net - 使用 Parallel.For 添加列表的线程
我在使用 Parallel.For 方法时遇到问题。我正在打一个 GET 电话以取回一份清单。然后我想把那个列表添加到主列表中。我已经尝试过 addRange ,它不是线程安全的,并且会在列表中返回错误的数据。我也尝试使用 ConcurrentBag 也没有得到正确的数据。当我说没有得到正确的数据时,我的意思是列表中的一些数据要么重复,要么被覆盖。
这是我的代码(更新):
除了 addRange 或 ConcurrentBag 之外的任何其他想法
parallel.for - 当我尝试调用 HTTPWebRequest 函数时,Parallel.For 非常慢
在这种方法中,我试图遍历 DataSet.Table 大约有。仅 65K 记录,但是,循环正在执行,否则会因聚合异常而失败。
有人可以指出我做错了什么吗?