我正在我的笔记本电脑(Core 2 Duo 1.8Ghz,4GB RAM,运行 Windows 7)上运行模拟,这花费了很长时间。
我有几台闲置的 32 位(Core 2 Duo 1.8Ghz,4GB RAM)台式机。我想通过 LAN 将它们(作为从机)连接到我的笔记本电脑(作为主机),以便更快地完成算法的执行。
如何做到这一点?我应该使用哪种操作系统?我的操作系统应该是服务器吗?我需要任何额外的硬件吗?
请向我推荐任何教程或书籍。请给我您宝贵的建议和意见。
答案1
您构建的分布式/并行计算基础架构类型在很大程度上取决于正在处理的问题。最容易分配的工作负载是那些易于细分的工作负载:将问题集分成 4 个块,将块分配给 4 台机器,处理完成后将结果拼接在一起。不适合细分的工作负载是那些对之前或当前处理的数据有很强依赖性的工作负载。
对于无法细分的数据,最好的办法是研究一些单一系统映像框架(见链接列表)。这些框架使多个系统模拟单个较大的系统。即便如此,也必须小心设计处理方式以尽量减少系统间通信。在这样的系统中,Infiniband 等网络产品才真正有用。
对于以下数据能细分,你会有更多的选择。最大的可能是博因,它是针对非常高延迟的工作单元报告(数小时、数天甚至数周)而设计的。我听说过那里有私有的 BOINC 集群。
我在大学时用过的一个个人虚拟资产管理。这是一个 C 库(存在一个 perl 包装器,它是新的),它支持通过各种传输方式进行系统间通信。
无论你选择什么,你仍然需要重新设计你的计算框架如何运作。这将是一项艰巨的工作,但至少你可以使用更多的资源来解决问题。将现有代码放入分布式计算框架并使其全部工作的可能性微乎其微,仅仅是让分布式框架启动并运行就已经是一个挑战。
答案2
取决于您的需求。但对于计算工作量,请尝试 Java RMI 或 MPI。
对于数据处理,请尝试Hadoop