.NET Framework支持多核硬件

时间:2009-07-02 23:27:36

标签: .net multicore

我的任务是编写一个可在多核盒子上运行的高性能,高可用性服务。

我是否需要利用Task Parellel Library 真正利用多核服务器,或者如果我投入更多硬件(核心),服务是否会自动运行得更快? .NET框架是否为我提供了魔力?

作为必然结果,对于不使用TPL的.NET应用程序,通过更多核心升级服务器(保持每个核心的规格相同)是否会提高性能?

根据我的理解(仔细阅读Joe Duffy的书和他的博客),你真的需要为多核编程。我的结论准确吗?

3 个答案:

答案 0 :(得分:7)

由于并行处理不是一般性问题,因此难以准确回答。您需要分析项目以找到可以利用并行处理的位置。

如果您的应用程序可以轻松分解为具体的独立任务,那么并行处理肯定会有所改进。如果它主要是串行的,那么多个内核/线程根本就没有用。

如果您确定并行任务代表了流程的核心,那么并行库可以帮助您执行基本任务并使其更容易正确完成。

答案 1 :(得分:3)

查看将要进入.Net 4.0的PLinq。它将为您提供大量并行处理功能,而无需管理任务/加载算法。

答案 2 :(得分:1)

程序需要具有多个执行路径才能利用超过1个核心/处理器的任何内容。通常,这是通过运行多个线程来完成的,因为大多数操作系统提供多个执行路径的唯一方法是通过在一个进程中运行多个进程(可执行文件)或多个线程。

现代语言中有几个高级抽象,可以更轻松地处理基本上是多线程的,但最好先学习基础知识; Threads