我有一个很大的科学计算任务,可以很好地与SMP并行化,但是通过明确的消息传递可以很容易地并行化。我想在地址空间和物理机器上并行化。在以下条件下创建可在多台物理计算机上并行化多线程代码的调度程序是否可行:
编辑:
答案 0 :(得分:0)
我的第一个想法是使用Apache Hadoop。它提供分布式存储和分布式计算。您可以使用文件作为锁来跨进程进行同步。
答案 1 :(得分:0)
听起来你想要像SCRAMNet这样的东西,虽然这需要自定义硬件。我不知道是否有纯软件解决方案。此外,即使你运行它,你也可能会发现你的联网版本实际上比以前在一台机器上运行的速度慢。您可能只需要咬紧牙关并重新设计您的应用程序。
答案 2 :(得分:0)
由于您的观点2表明您可能会遇到性能下降,因此您可能需要考虑混合方法:单个计算机内的SMP,计算机之间的消息传递。我不熟悉D所以不能提供具体的建议。此外,我看到了针对OpenMP + MPI的混合方法的混合评论,但它可能适合您和您的应用程序。
编辑:您可能希望谷歌周围的“分区全球地址空间”,它似乎非常准确地描述了您想要的方法。和以前一样,我没有为此使用D的建议。