繁体   English   中英

单声道上的任务并行库实现?

[英]Task Parallel library implementation on mono?

Mono是否实现了Task Parallel库? 如果是这样,.NET和mono之间的性能如何比较。

这是在Mono 2.6版中实现的。

从发行说明:

ParallelFx

此版本包括ParallelFx框架的一些组件,这些组件是作为Google Summer Of Code 2008和2009的一部分开发的。更准确地说,它包含任务并行库和数据结构协调。

使用ParallelFx,您可以轻松开发能够自动利用当今多核机器并行潜力的软件。 为此,现在可以使用一些新的构造,如期货,并行循环或并发集合。

要使用此代码,您必须在配置阶段使用--with-profile4 = yes开关手动启用.NET 4配置文件。

在我自己的经验,我已经在C#中的学习和基因序列数据的分类,这使得的任务并行库的功能,如Parallel.ForEach,的Parallel.For,Task.Factory.StartNew非常沉重的使用高度并行程序()来自Collections.Concurrent命名空间的许多结构(阻塞集合,并发字典,并发包等)。 简而言之,我的应用程序在使用mono的Linux上的性能要慢很多倍。 我仍然想弄明白这一点。 我可以在具有类似性能的Windows中从单声道控制台运行它。

我已经尝试使用mono的sgen垃圾收集器无济于事。 我的应用程序在运行单声道的Linux服务器上的性能仍然显着降低。

学习8,258个序列: 0 :17 vs. 1:59 m:Linux上的ss

对921序列进行分类: 2.29秒vs. 11:05 mm:Linux上的ss

请参阅下面的屏幕截图

在此输入图像描述
在此输入图像描述

你有没有尝试改变min / maxthreads?

System.Threading.ThreadPool.SetMaxThreads(mWorker, mWorker);
System.Threading.ThreadPool.SetMinThreads(10, 10);

你的操作超越了我,但我发现没有任何事情要做。 所以我把它设置为5 *个cpu核心数量,然后它突然出现了!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM