2009-06-08 95 views
1

您是否知道用于在多台计算机和/或每台计算机上的多个核心上分配计算的任何软件包?计算代码使用C++,该软件包需要能够处理大于2GB的数据并在Windows x64机器上运行。共享软件会很好,但不是一个要求。用于分配计算的软件包

回答

0

有一个MPI库和DVM system在MPI之上工作。这些是广泛用于并行化各种任务的通用工具。

1

你可能想看看OpenMP

+0

我认为这正是我正在寻找的! – AnnaR 2009-06-08 11:23:24

2

一个合适的解决方案将取决于计算和数据你愿意,你处理,并行你希望实现的粒度,多少努力,你是愿意投资的类型在里面。

最简单的方法就是使用支持并行性的合适求解器/库(例如 scalapack)。或者,如果您希望推出自己的求解器,可以使用OpenMP或提供自动并行处理的编译器(例如Intel C/C++编译器)从当前代码中挤出一些并行处理。所有这些都可以在不需要大规模重组代码的情况下提供合理的性能提升。

在光谱的另一端,您有MPI选项。如果你的算法并行,它可以为你提供最大的性能提升。然而,它需要一点点的重新设计。

另一种方法是沿着穿线路线走下去。有图书馆里有一个工具可以减少噩梦。这些值得一看:Boost C++ Parallel programming libraryThreading Building Block