是否有.NET中分配的计算工作的任何简单的解决办法? [英] Are there any simple solutions for distributing computational work in .NET?

查看:154
本文介绍了是否有.NET中分配的计算工作的任何简单的解决办法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我们可以说我有一些电脑在家里。

So let's say I have some computers at home.

让我们也说,我有一些算法,我想运行,这一般需要花费大量的时间来解决。它可以在多少件我要进行划分,这样我就可以在一台机器上运行的一部分,它在另一部分等,并在最后,我想只需要在其中一台计算机合并的结果。

Let's also say that I have some algorithm I want to run, that generally takes a lot of time to solve. It can be divided in how many parts I want, so I could run part of it in one machine, part of it in another, etc, and in the end i'd just need to merge the results in one of the computers.

我的问题是,如果在利用多台计算机做这种计算的.NET没有简单和直接的方式。如果是的话,怎么叫?我不是说不必code所有的IPC code。通过我自己,类似于BCL的任务的东西,但说会允许我送工作到其他计算机上,通过IP或东西。

My question is if there is any easy and straightforward way in .NET of making use of several computers to do this kind of computations. If yes, how is it called? I don't mean having to code all the IPC code by myself, something similar to BCL's Tasks but that'd allow me to send "work" to other computers, via an IP or something.

谢谢!

推荐答案

在一般的分布式计算,有两种模式:信息传递和共享内存

In general distributed computing, there are two models: Message Passing and Shared Memory

这听起来像你感兴趣的消息传递,因为它通常涉及其中通过网络通信的多台计算机。共享存储器使用存储器系统进程之间进行通信。从分布式计算谁使用消息传递作为他们的模型已经转移到MPI我的(有限)的经验,几乎每个人。 MPI是已在许多语言中实现了一个框架。还有一些pretty的强大的.NET MPI实现在那里。

It sounds like you're interested in Message Passing, because it typically involves multiple computers which communicate over the network. Shared memory uses the memory system to communicate between processes. From my (limited) experience in distributed computing, almost everyone who uses Message Passing as their model has moved to MPI. MPI is a framework that has been implemented in many languages. There are some pretty strong .NET MPI implementations out there.

这整个后假设你正在做的分布式计算在高性能计算方案。在这种情况下,你将有许多功能强大的电脑,通过连接的互联网络,在服务器机房(或类似)。如果你正在寻找某种分隔物理机器(如的Folding @ Home)之间的分布式计算,你需要找到别的东西,或推出自己的解决方案。因此,作为Leniel Macaferi提到了他的反应,你需要确保你的数据中心运行某些版本的Microsoft HPC服务器。大多数HPC集群上运行一些风味的Linux,这显然会prevent你部署基于.NET的解决方案。

This whole post assumes you're doing "distributed computing" in a HPC scenario. In such a scenario, you would have many powerful computers, connected over an inter-connection network, in a server room (or similar). If you're looking for some kind of distributed computing between seperated physical machines (such as folding@home), you'll need to find something else or roll your own solution. Therefore, as Leniel Macaferi mentions in his response, you'll need to ensure your data center is running some version of Microsoft HPC Server. Most HPC clusters run some flavor of linux, which will obviously prevent you from deploying a .NET based solution.

这篇关于是否有.NET中分配的计算工作的任何简单的解决办法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆