草庐IT

scala - Spark DataFrame 并行性

全部标签

c# - 用于执行大规模并行查询的通用类。回馈?

我不明白为什么,但客户端库中似乎没有机制可以为WindowsAzure表存储并行执行许多查询。我已经创建了一个模板类,可以用来节省大量时间,欢迎您随意使用它。不过,如果您能将其拆解并提供有关如何改进此类的反馈,我将不胜感激。publicclassAsyncDataQuerywhereT:new(){publicAsyncDataQuery(boolpreserve_order){m_preserve_order=preserve_order;this.Queries=newList>(1000);}publicvoidAddQuery(IQueryablequery){vardata_

c# - EF 6 - 如何正确执行并行查询

创建报告时,我必须执行3个涉及相同上下文的不同实体的查询。因为它们很重,所以我决定使用.ToListAsync();让它们并行运行,但令我惊讶的是,我从中得到了一个异常(exception)...使用EF6并行执行查询的正确方法是什么?我应该手动启动新任务吗?编辑1代码基本上是using(varMyCtx=newMyCtx()){varr1=MyCtx.E1.Where(blablabla).ToListAsync();varr2=MyCtx.E2.Where(blebleble).ToListAsync();varr3=MyCtx.E3.Where(blebleble).ToList

c# - 并行使用 Effort 和 SQL CE 进行单元测试失败

我正在结合使用EF6评估单元测试http://effort.codeplex.com/和SQLCE服务器(本地数据库文件)http://www.codeproject.com/Articles/460175/Two-strategies-for-testing-Entity-Framework-Effort是一个很好的引用,但现在我被困住了。我有2个测试项目(一个用于Effort,另一个用于SQLCE)。如果我分别运行两者,一切都很好。使用ReSharper测试运行器连续运行,最后一个测试项目总是失败。要么System.InvalidOperationException:TheEnti

c# - AsParallel() - 在 asp.net 中有 2 个以上的并行线程

我有一个方法,我用不同的参数调用了8次。我用AvailableYears.AsParallel().Select(x=>GetDataForYearWorker(x,CIF)).ToList();GetDataForYearWorker从网络服务同步获取响应。它在我的asp.net应用程序上使用很少的计算能力,但通常每个Web服务响应需要3-5秒。因为对web服务的调用是相互独立的,所以我想同时调用它们。但看起来只能同时运行2个线程。为什么会这样,我如何让8个线程同时工作? 最佳答案 默认情况下,.AsParallel()将在运行查

c# - 并行框架和避免虚假共享

最近,我回答了一个关于优化用于生成任意基数的每个排列的可能并行化方法的问题。我发布了一个类似于Parallelized,poorimplementationcodeblocklist的答案,几乎立即有人指出了这一点:Thisisprettymuchguaranteedtogiveyoufalsesharingandwillprobablybemanytimesslower.(credittogjvdkamp)他们是对的,死亡很慢。也就是说,我研究了这个话题,发现了一些interestingmaterialandsuggestions(仅存档MSDN杂志,.NET问题:虚假共享)与它作斗

c# - 限制异步方法的并行度而不阻塞线程池线程

我有一个异步方法RequestInternalAsync()它向外部资源发出请求,并希望编写一个包装方法,通过减少并行性来限制对该方法的并发异步请求的数量。想到的第一个选项是TaskScheduler并发性有限(LimitedConcurrencyLevelTaskScheduler、ConcurrentExclusiveSchedulerPair等)。但要使用自定义调度程序运行任务,我必须使用TaskFactory启动任务只接受Action,即我不能通过不阻塞额外的线程来等待内部方法的执行来做到这一点。第二个选项是SemaphoreSlim,它完成了它的工作,但在这种情况下,我正在实

c# - 任务并行库中的任务如何影响ActivityID?

在使用任务并行库之前,我经常使用CorrelationManager.ActivityId来跟踪多线程的跟踪/错误报告。ActivityId存储在线程本地存储中,因此每个线程都有自己的副本。这个想法是,当你启动一个线程(事件)时,你分配一个新的ActivityId。ActivityId将与任何其他跟踪信息一起写入日志,从而可以为单个“事件”挑出跟踪信息。这对于WCF非常有用,因为ActivityId可以转移到服务组件。这是我正在谈论的例子:staticvoidMain(string[]args){ThreadPool.QueueUserWorkItem(newWaitCallback(

c# - 任务并行库 - LongRunning 任务与多个 Continuations

我正在研究TaskParallelLibrary在我正在进行的工作项目中的使用情况,并且想了解长时间运行任务的优点/缺点。我还没有真实的例子,只是想了解这背后的理论。根据MSDN页面关于taskschedulers的说法还有这个SOquestion,似乎最好尽可能避免长时间运行的任务,这样您就不会在ThreadPool之外创建线程。但是假设您确实有一项需要很长时间才能完成的任务,而不是这样:Task.Factory.StartNew(()=>DoTimeConsumingWork(),TaskCreationOptions.LongRunning)您能否尝试将您的工作拆分为更小、更快的

c# - 现在开始为任务并行库设计是否为时过早?

自从Microsoft首次宣布.NET任务并行库(TPL)以来,我一直以极大的兴趣关注它的开发。我坚信我们最终会利用TPL。我想问的是,在VisualStudio2010和.NET4.0发布时开始利用TPL是否有意义,或者再等一段时间是否有意义。为什么现在开始?.NET4.0任务并行库似乎设计得很好,一些相对简单的测试表明它在当今的多核CPU上运行良好。自大约七年前购买我的第一台四处理器DellPoweredge6400以来,我一直对使用多个轻量级线程来加速我们的软件的潜在优势非常感兴趣。当时的实验表明这是不值得的,我主要将其归因于在每个CPU的缓存(当时没有共享缓存)和RAM之间移动

c# - .NET 4 任务并行库可以使用 COM 对象吗?

这是一个“这可能吗,如果可以的话,你能给我一个简单的例子吗,因为我在网上找不到一个?”类似的问题。我有许多完全独立的(即“令人尴尬的并行”)进程,我想使用C#在.NETFramework4中使用TaskParallel库并行运行这些进程。其中一些流程需要使用可通过COM/OLE自动化访问的软件。具体来说,有一个Parallel.Foreach()循环从项目列表中划分任务,基本上调用Parallel.Foreach内部的不同函数来处理处理(因此其中一些函数使用COM库来工作).这可能吗?谢谢。 最佳答案 通过TPL使用COM对象是10