有没有简单的解决方案在.NET中分配计算工作?

dev*_*ium 17 .net c# distributed-computing

所以我要说我家里有一些电脑.

我们还说我想要运行一些算法,这通常需要花费很多时间来解决.它可以分为我想要多少部分,所以我可以在一台机器中运行它的一部分,在另一台机器中运行它的一部分等等,最后我只需要将结果合并到一台计算机中.

我的问题是,在.NET中是否有任何简单直接的方法可以利用多台计算机来进行这种计算.如果是,它是如何调用的?我并不是要自己编写所有IPC代码,类似于BCL的任务,但这允许我通过IP或其他东西将"工作"发送到其他计算机.

谢谢!

Jar*_*ing 7

在一般的分布式计算中,有两种模型:消息传递和共享存储器

听起来您对Message Passing感兴趣,因为它通常涉及通过网络进行通信的多台计算机.共享内存使用内存系统在进程之间进行通信.从我在分布式计算方面的(有限)经验来看,几乎每个使用Message Passing作为模型的人都转向了MPI.MPI是一个以多种语言实现的框架.那里有一些非常强大的.NET MPI实现.

整篇文章假设您正在HPC场景中进行"分布式计算".在这种情况下,您将拥有许多功能强大的计算机,通过互连网络连接在服务器机房(或类似)中.如果您正在寻找分离的物理机器之间的某种分布式计算(例如折叠@home),您需要找到其他东西或推出自己的解决方案.因此,正如Leniel Macaferi在回答中提到的那样,您需要确保您的数据中心正在运行某些版本的Microsoft HPC Server.大多数HPC集群都运行一些Linux,这显然会阻止您部署基于.NET的解决方案.