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

c# - Parallel.For 中 StringBuilder 的线程安全

我创建了一个结构,比如说AStruct,并覆盖它的ToString()方法。然后我写了一个并行返回一些AStruct并将它们放在一个列表中,这样我就可以使用 aStreamWriter来输出它们,比如

问题是输出文件只打印了 AList 的 7/8 行,而 AList 实际上得到了所有 10 个元素。我想知道这是否与 StringBuilder 的线程安全有关。有人可以解释为什么不是所有的行都输出吗?

0 投票
1 回答
1171 浏览

c++ - Intel TBB 并行循环线程 ID

如何确定 TBB 并行循环体中的线程 ID?

基本上我需要的是一个对象的每个线程副本,所以我认为我应该在数组中拥有那些由线程 ID 索引的副本。

我正在寻找这样做的便携式 TBB 方式,而不是操作系统本机服务。

0 投票
0 回答
307 浏览

matlab - parfor中的Matlab sim命令

我想在parfor具有不同数据的许多内核上循环运行 Simulink 模型。但是,我使用时无法获得sim结果,parfor而仅使用 for 循环时可以获得结果。

它只是[t,u]从中获取workspace1,考虑一个传递函数n{1}/d{1},然后计算EqFracIntworkspace2

我的代码有问题的部分是

我无法获得这些PGRs值。您能否向我解释一下错误以及如何解决?

0 投票
3 回答
208 浏览

multithreading - C# 4 .NET 4.0 Parallel.For 长循环问题

我正在 c# 4、.NET 4.0 中测试一些并行化解决方案。

我有一些奇怪的结果,所以我想知道我是否以正确的方式做事。

这是我的代码的描述:

这段代码给了我这个结果:

计数方法5:299250

而不是300000.

这是并行性的错误吗?

0 投票
1 回答
832 浏览

c++11 - 在顺序和并行 for 循环中“继续”的常用关键字

在顺序for循环中,当前迭代可以通过调用continue. 类似地,在Concurrency::parallel_for循环中,当前迭代(即调用 lambda 函数的线程)可以用return.

有时,我必须调试一个parallel_for循环,使其成为顺序并忘记将其更改return为 a continue,因为在void函数中,编译器不会抱怨。这会导致有时很难追踪的错误。

我想知道 Visual C++ 2013 是否提供任何机制来为两个循环使用相同的关键字/宏/…。这可能吗?

0 投票
1 回答
522 浏览

c# - Parallel.For 迭代中的不同线程亲和性

我需要一个并行 for 循环的迭代以使用 7 个内核(或远离 1 个内核),但另一个迭代使用 8 个(所有)内核并尝试以下代码:

这为两次迭代输出 255。因此,parallel.for 循环要么为它们使用单​​线程,要么一个设置也设置了其他迭代亲和力。另一个问题是,这是来自对延迟敏感的应用程序,所有这些关联设置都会增加 1 到 15 毫秒的延迟。

我必须明确使用线程吗?我应该只设置一次关联吗?

编辑:我尝试了线程版本,同样的事情发生了。即使有明确的两个线程,都将 255 写入控制台。现在看来这个命令是针对进程而不是线程的。

OpenCL 上下文在一次迭代中使用最大内核在 cpu 上执行内核。其他迭代使用 1-2 个内核来复制缓冲区并将命令发送到设备。当 cpu 被 opencl 使用时,它会使用所有的内核,并且设备无法获得足够的时间来复制缓冲区。设备裂变似乎比我想的解决这个问题更难。

0 投票
0 回答
196 浏览

c++ - 从 parallel_for 返回值的最佳方法是什么

我有简单的 parallel_for 循环和我插入到 concurrent_unordered_map 的每次迭代的结果。我看到插入使我的代码变慢了。那么将对从parallel_for返回到unordered_map的最佳方法是什么?我正在尝试使用 Critical_section,但速度要慢得多。我试图使用combinable,但我不知道如何使用map。

伪代码:

0 投票
1 回答
1680 浏览

c# - Parallel.For() 更新项目的属性

假设我有一个需要更新的“不同”人员列表。我想使用 Parallel.For()

有问题的方法:

VS

当使用 Parallel.For() 枚举此列表并并行运行这些更新(即调用此方法)时,使用一个与另一个是否有任何潜在问题?

0 投票
1 回答
943 浏览

c++11 - 并行化rocksdb迭代器

我的迭代器代码:

迭代的顺序无关紧要,但打破循环很重要,所以我们不会迭代不需要的元素。我使用元素按有意义的顺序排序的事实来知道何时中断。callback可能需要很长时间。

所以我想做的伪代码是

我尝试应用 concurrency::parallel_for_each,但似乎不适合rocksdb api。

你会如何建议实现并发迭代?

0 投票
0 回答
112 浏览

c++ - OpenMp For-Loop 并行化

我尝试使用 OpenMP 并行化以下代码。

但 SpeedUp 始终约为 1.0 (+- 0.05)。我尝试了所有可能的调度(自动、动态、静态和引导),不同的块大小,没有折叠和折叠(2)。运行时根本没有改变......

谁能解释我为什么或我的错在哪里?
可能是由于自动 for-loop 编译器并行化吗?

提前感谢您的任何建议/提示!

更新:

根据需要提供可验证的示例。

解决了:

愚蠢的错误......设置了/MP-Flag(使用多个进程构建)而不是/openmp。现在 SpeedUp 大约是 2.0 :)

对不起,谢谢大家的帮助!