问题标签 [parallel-extensions]

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 回答
211 浏览

.net - .Net 4 并行扩展的好学习资料

任何人都可以向我推荐一些关于新并行扩展及其在 .Net 4 中的使用的很好的学习材料,除了 MSDN 之外,这样我就可以学习 -

  1. .Net 4 上的并行编程
  2. 非并行和并行编程范式之间的基本区别
  3. 如何创建支持并行计算的数据结构?

最好有任何免费的可下载材料。

0 投票
1 回答
199 浏览

.net - 这个并行化代码的效率如何?有更好的方法吗?

我正在构建一个大型 Lucene 索引,并且我插入的每个文档都需要在插入之前进行一些“组合”。我正在从数据库中读取所有文档并将它们插入到索引中。Lucene 允许您构建一些不同的索引并在以后将它们合并在一起,所以我想出了这个:

我唯一让我犹豫的是,每次迭代从池中拉出一个 IndexWriter(然后在最后放回)可能比仅仅创建最佳线程数开始效率低,但我也知道ConcurrentBag 非常高效,处理开销极低。

我的解决方案好吗?或者它是否在寻求更好的解决方案?

更新:

经过一些测试,从数据库加载比我认为的实际索引要慢一些。此外,最终的索引合并也很慢,因为我只能使用一个线程,并且我将 16 个索引与大约 170 万个文档合并。不过,我对最初的问题持开放态度。

0 投票
1 回答
170 浏览

.net - 慢并行。用于中断

Stop()我在一个更大的循环中有以下代码,在分析我的代码后,我发现所有 Parallel.For 执行速度的增益在方法完成的很长时间内都会丢失。有什么办法可以改善这一点吗?也许打电话Thread.Sleep()

谢谢。

0 投票
2 回答
728 浏览

parallel-extensions - Parallel.ForEach 能否与 CloudTableQuery 一起安全使用

我正在尝试对其进行一次性数据加密的 Azure 表中有合理数量的记录。我认为我可以通过使用Parallel.ForEach. 另外,因为有超过 1K 条记录,而且我不想自己弄乱延续令牌,所以我正在使用 CloudTableQuery 来获取我的枚举器。

我的问题是我的一些记录已被双重加密,我意识到我不确定返回的枚举CloudTableQuery.Execute()器的线程安全性如何。有没有其他人有过这种组合的经验?

0 投票
4 回答
2778 浏览

.net - 使用 .Net 并行扩展 (Parallel.Invoke) 进行多个异步调用?

目前,我有一段代码需要对各种数据提供者进行大约 7 次 Web 服务调用。每个调用都需要几秒钟的时间来执行,所以我想并行运行它们以加快速度。

我已经将我的 7 个调用封装在一个 Parallel.Invoke 中,它非常适合同时运行几件事情,但是在一个 2 核服务器上,它一次只能执行 2 个,每个内核一个。由于我所做的只是等待 Web 服务调用返回,因此我希望它获取所有 7 个并等待它们返回。

有没有办法做到这一点?或者也许我的方法是错误的?也许我需要创建对 Web 服务的异步调用?但是,如何等他们都回来再继续前进呢?

0 投票
2 回答
1882 浏览

wcf - 对 EF4 实体的并发访问(并行 + EF4)

我目前在调度服务中工作,该服务使用 EF4 和 WCF 处理通过不同渠道(电子邮件、私人消息、应用程序消息)传递的数千条消息。

为了加快消息发送速度,我尝试使用 Parallels:

我的 Dispatch 方法使用反射来匹配通道配置方法并同时处理每条消息,但是当我将 SaveChanges() 设置为全局实体时,尝试更新线程内的 EF 对象时遇到了很大问题(它在 application_start 上初始化)

问题有多种形式:

  • 空对象引用
  • 列表项 属性是对象的关键信息的一部分,不能修改。
  • 基础提供程序在打开时失败。
  • 不允许新事务,因为会话中还有其他线程在运行。(如果关闭则强制连接打开后)

问题是 EF4 是否是线程安全的来实现这个场景?我拥有全局实体的方法是最好的解决方案,还是应该按任务进行 EF4 初始化?

欢迎任何帮助,我已经失去了 2 个小时试图找出可能的解决方法。

0 投票
1 回答
169 浏览

c# - c# 并行化模拟

我有一个模拟引擎,我想先并行化,然后在 C# 中开发为 Web 服务。这是一个密集的模拟,需要大量的 CPU 和 RAM,我想将每个运行拆分在一个单独的线程上。为了让您更好地了解模拟可以运行 100 次运行,每次运行我都会收集一些结果。收集每次运行的结果然后将它们整理到一个大文件中是很简单的。因此,如果我有一台具有 4 个内核的多核机器,例如,想法是在每个内核上运行 4 次,然后再运行 4 次……等等。我在较新版本的 .net 中阅读了一些关于并行扩展的内容。我可以在 3.5 中实现相同的目标,还是迁移到 4.0 会更好?如果我将其设为 Web 服务,还有什么要注意的吗?任何进一步的想法或建议都非常受欢迎。

0 投票
1 回答
2569 浏览

.net - 来自大规模并行线程读取的 Azure 表存储性能

短版:我们能否以多线程的方式从数十个或数百个表分区中读取,从而将性能提高几个数量级?

长版:我们正在开发一个在 Azure 表存储中存储数百万行的系统。我们将数据分成小分区,每个分区包含大约 500 条记录,代表一个单元一天的数据。

由于 Azure 没有“求和”功能,要提取一年的数据,我们要么必须使用一些预缓存,要么自己在 Azure Web 或辅助角色中对数据进行求和。

假设如下: - 读取一个分区不会影响另一个分区的性能 - 读取一个分区存在基于网络速度和服务器检索的瓶颈

然后我们可以猜测,如果我们想快速汇总大量数据(1 年,365 个分区),我们可以使用大规模并行算法,它几乎可以完美地扩展到线程数。例如,我们可以使用具有 50 多个线程的 .NET 并行扩展并获得巨大的性能提升。

我们正在做一些实验,但我想看看以前是否做过。由于 .NET 端基本上是空闲等待高延迟操作,这对于多线程来说似乎是完美的。

0 投票
1 回答
1752 浏览

task-parallel-library - 任务并行库 - 如何通过 TaskContinuationOptions.OnlyOnCanceled 获得继续触发?

我正在试验 .NET 4.0 中的任务支持——特别是继续支持。我感到困惑的是,我无法弄清楚如何让TaskContinuationOptions.OnlyOnCanceled标志设置为继续执行。如果我ThrowIfCancellationRequested在我的工作例程中执行 a ,它似乎只会作为错误而不是取消操作传播出延续。例如,给定以下代码:

这输出:

如何退出我的工人(总和)方法以使OnlyOnCanceled延续被解雇?

0 投票
2 回答
2281 浏览

.net - Parallel.For() 循环中的进度更新

你可以猜到 Parallel.For() 循环的索引从一个值跳转到另一个值。我如何估计完成的工作量?

谢谢。