问题标签 [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 投票
0 回答
28 浏览

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

0 投票
1 回答
294 浏览

c# - Parallel.For 和网页抓取问题

我正在尝试制作一个多线程网络刮板。为此,我正在使用 Parallel.For。这是我的代码:

我的问题是,如果我使用多个线程,我会得到重复。有没有办法解决这个问题?我不需要循环从同一个网页获取相同的名称,这就是为什么我增加 page_Begin 变量结束。这就是我要说的: 重复问题

0 投票
2 回答
174 浏览

c# - parallel.for 混淆(收集丢失顺序)

我有一个问题,我试图使用 parallel.for() 将一些文件加载​​到数据库中。我的问题是传递给数据库函数的文件 ID 不知何故不正确。也就是说,数据库返回了错误的数据。我试图通过使用并发字典添加 id/name 对来验证这一点,无论是并行还是不并行。在我看来,循环结束后列表应该相同。但他们不是。这以非常简化的方式模拟了我正在做的事情。

这有意义吗?:

0 投票
3 回答
1348 浏览

c# - BlockingCollection 与 Parallel.For 挂起?

我正在BlockingCollection尝试更好地理解它们,但我很难理解为什么我的代码在我使用Parallel.For

我只是给它加了一个数字(制片人?):

然后我正在尝试处理(消费者?):

但是当它处理完所有的数字时,它就挂在那里了?我究竟做错了什么?

另外,当我将 Parallel.For 设置为 5 时,这是否意味着它正在 5 个单独的线程上处理数据?

0 投票
0 回答
38 浏览

c# - 最大并行值访问量

当我将并行线程的数量限制为 6 或以下时,它工作正常。任何高于 6 的内容都表示无法读取指定位置的对象。是否有一定次数可以一次初始化同一个对象,或者我该如何修复它给出的错误?如果 MaxDegreeOfParallelism <=6,则所有代码都可以正常工作

0 投票
3 回答
3599 浏览

c# - Parallel.For 与 for 循环

我正忙于运行并行线程,因此我决定在较小的基础上对其进行测试,然后在我感到舒服时进行扩展。我将同样的过程与自己相提并论;一个使用 Parallel.For,另一个使用基本的 for 循环。我正在捕捉时间(以刻度为单位)进行比较。示例代码采用一个数组(在本例中为 53 个两个字符串)并ListBox用数组填充给定的值。

对我来说几乎没有意义的是,当我运行基本的 For 循环时,它平均产生 1,400 个滴答声,但是当我运行Parallel.For循环时,它平均返回 5,200 个滴答声。样本量是否太小而无法并行有效?

这是我正在使用的两个片段。Parallel.For循环是:

for循环是:

感谢您提前输入或验证我的想法。

0 投票
1 回答
111 浏览

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 :

enter image description here

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

0 投票
1 回答
98 浏览

c# - 多线程错误.net Parallel.For

我必须计算大约 26,000 家公司之间的距离,并找到所有距离的中位数。但是,程序抛出以下异常:

这是我的程序:

PS:

0 投票
3 回答
4707 浏览

c# - 增加 Parallel.For 中正在运行的线程数

我刚刚使用这个链接做了一个多线程示例,如下所示:

它在Parellel.For之前给了我 15 个线程,之后只给了我 17 个线程。所以只有 2 个线程被Parellel.For占用。

然后我使用这个链接创建了另一个示例代码,如下所示:

在上面的代码中,我将MaxDegreeOfParallelism设置为 40,但仍为Parallel.For.

那么如何增加运行线程Parallel.For呢?

0 投票
1 回答
1900 浏览

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 位