问题标签 [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.
parallel-processing - Parallel.For() 出现意外行为 - 未找到文件
我正在尝试使用 Parallel.For() 将 n # 个平面文件加载到数据库中。每次迭代都需要在一个文件夹中创建 2 个配置文件,然后运行另一个使用配置文件的进程来了解如何将平面文件加载到 Oracle 中。在我决定使用并行选项之前,我通过迭代 1000 次来测试性能优势,每次都创建配置文件。我的速度提高了 2 倍以上。
然后,我添加了调用另一个进程的部分,并且我收到周期性错误,即我尝试在每次迭代中创建的一些配置文件不存在。
这是我的精简代码:
错误示例: SQL Loader-500: Unable to open file (6f46ccfd-986e-427e-ab63-b7ce2396488e.ctl) SQL Loader-553: file not found SQL*Loader-509: System error: The system cannot find the file specified
c# - parallel.for 混淆(收集丢失顺序)
我有一个问题,我试图使用 parallel.for() 将一些文件加载到数据库中。我的问题是传递给数据库函数的文件 ID 不知何故不正确。也就是说,数据库返回了错误的数据。我试图通过使用并发字典添加 id/name 对来验证这一点,无论是并行还是不并行。在我看来,循环结束后列表应该相同。但他们不是。这以非常简化的方式模拟了我正在做的事情。
这有意义吗?:
c# - BlockingCollection 与 Parallel.For 挂起?
我正在BlockingCollection
尝试更好地理解它们,但我很难理解为什么我的代码在我使用Parallel.For
我只是给它加了一个数字(制片人?):
然后我正在尝试处理(消费者?):
但是当它处理完所有的数字时,它就挂在那里了?我究竟做错了什么?
另外,当我将 Parallel.For 设置为 5 时,这是否意味着它正在 5 个单独的线程上处理数据?
c# - 最大并行值访问量
当我将并行线程的数量限制为 6 或以下时,它工作正常。任何高于 6 的内容都表示无法读取指定位置的对象。是否有一定次数可以一次初始化同一个对象,或者我该如何修复它给出的错误?如果 MaxDegreeOfParallelism <=6,则所有代码都可以正常工作
c# - Parallel.For 与 for 循环
我正忙于运行并行线程,因此我决定在较小的基础上对其进行测试,然后在我感到舒服时进行扩展。我将同样的过程与自己相提并论;一个使用 Parallel.For,另一个使用基本的 for 循环。我正在捕捉时间(以刻度为单位)进行比较。示例代码采用一个数组(在本例中为 53 个两个字符串)并ListBox
用数组填充给定的值。
对我来说几乎没有意义的是,当我运行基本的 For 循环时,它平均产生 1,400 个滴答声,但是当我运行Parallel.For
循环时,它平均返回 5,200 个滴答声。样本量是否太小而无法并行有效?
这是我正在使用的两个片段。Parallel.For
循环是:
for
循环是:
感谢您提前输入或验证我的想法。
c# - Is the result wrong about the Parallel.For in c# 5.0 below?
I got these code from the book 《Professional C# 5.0 and .NET 4.5.1》, and the book shows the result at page 560 :
I think the result where I around it with red retangle may be wrong, It should be "body i 1 str1 t1 thread 1 task 1", Is that I comprehend these right? or I was wrong about that. Is there anyone can explain these to me ? thanks
c# - 多线程错误.net Parallel.For
我必须计算大约 26,000 家公司之间的距离,并找到所有距离的中位数。但是,程序抛出以下异常:
这是我的程序:
PS:
c# - C# parallel.for 循环完全使用 CPU1 的内核,但不使用 CPU2
使用 parallel.for 的 AC# 方法完全使用 10 核 cpu 中的所有内核(在双 Xeon 64GB RAM windows 10 工作站上),但不使用第二个 cpu 上的任何其他可用的 10 个物理内核。即使进程的亲和性(在任务管理器中)表明所有内核都对其可用。有什么想法/方法可以让进程使用所有可用的内核?在这种情况下,我确实看到了从标准编码到 parallel.for 的巨大性能改进;放弃另外100%的速度提升似乎有点可惜。谢谢。
重要观察:查看任务管理器,很明显该进程使用的内核分布在两个 Xeon CPU 上。IOW,它使用了每个 CPU 大约一半的内核。
附加信息:Environment.ProcessorCount = 32。即使系统有 20 个物理核心,因此有 40 个逻辑核心。显然,该过程并未使用所有这 32 个内核。它最多使用 20 个。FWIW,在单核 i7-3770 上,该过程按预期工作,使用了接近 100% 的 8 个可用逻辑内核。
附加 2:Luaan 建议的配置更改并没有影响可用处理器的数量:仍然是 32。
附加 3:Windows 10 专业版 64 位