首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.net分布式网格计算迁移,关于库和体系结构的建议

.net分布式网格计算迁移,关于库和体系结构的建议
EN

Stack Overflow用户
提问于 2009-08-04 10:22:51
回答 1查看 1.7K关注 0票数 7

我有一个c#多线程蒙特卡罗模拟,应用程序已经被构造成可以被划分为独立执行的任务,TaskController执行任务,聚合中间结果,检查收敛性(早期终止条件),然后返回最终结果,这是目前使用ThreadPool实现的。

想利用不止一台计算机来帮助这个计算。我没有使用IIS的批准或基础设施(这是不会更改的策略),但我可以使用WCF和NetTcpBinding端点绑定,我已经在服务器上测试了这种通信,它具有适当的权限和工作能力。

首先,我认为有一个主exe (控制台应用程序)和其他服务器上的几个奴隶作为专门的工作人员(这些应该是前人吗?或者windows服务?),最终我可以让这个设置在上运行--在空闲时间(或者当屏幕保护程序处于活动状态时),公司内的数百个工作站(以及服务器)。

我可以自己写,但我要处理沟通,1,2路?早期终止(中间会聚结果检查),取消不再需要的任务,部署工作,发现部署工作的可用和就绪的机器,如果工作站不再空闲,则停止/暂停工作?其他在分布式系统中的东西?

主(任务控制器)应该知道所有从工作者的地址(ip)并告诉他们工作(如果他们可用的话),还是当他们能够这样做的时候,奴隶工作者应该只知道主地址并请求工作,还是通信应该双向流动?这将在24小时时钟上运行,每天大约9次运行,以支持不同的业务区域。

我正在寻找关于、.net、网格/分布式库的建议,这些建议可以在这方面提供帮助和一些体系结构建议。

更新

是否有人使用过以下任何一种方法?

代码语言:javascript
复制
http://www.digipede.net/ (commercial)
http://www.gridbus.org/~alchemi/
http://ngrid.sourceforge.net/
http://www.osl.iu.edu/research/mpi.net/

或使用JavaSpaces、.net中的Jini或找到等效的.net技术

代码语言:javascript
复制
http://java.sun.com/developer/technicalArticles/tools/JavaSpaces/
http://www.jini.org

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-08-04 10:39:38

我将研究使用空间建筑进行此操作的可能性。

主程序会将作业写入一个空间(实质上是一个对象存储库)。消费客户端总是在寻找工作,当作业可用时,他们将从空间提取、处理并将结果写回该空间或另一个空间(都在事务下)。您可以将作业标记为属于特定运行的作业,以便对结果进行分组。

这样做的优点是很容易扩展(只需增加更多的消费者)。消费者必须确定他们什么时候可以工作,只需要配置有关空间的信息(如何找到它)。生产者与一组消费者完全脱钩。

因为工作是在事务下处理的,所以如果使用者无法完成工作,该工作将返回到空间,并可由另一个使用者进行处理。

您可以轻松地处理中间结果。生产者从空间中获取结果,并在结果可用时获得中间产物。你可以很容易地取消工作。只需将它们从空间中移除。

你可以很容易地增加更多的生产者。它们只需写入相同的空间,如果作业被适当标记,结果将明确地与生产者联系在一起。

不幸的是,我不确定.Net有哪些框架可用(我来自Java,将使用贾瓦斯帕斯 --这些框架使用动态发现,几乎不需要配置)。但值得在谷歌上搜索。也许(如果这足够强大),您可以编写C#生产者/使用者来与Javaspace基础设施进行接口。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1226728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档