1

您是否知道任何用于在多台计算机和/或每台计算机上的多个内核上分配计算的软件包?计算代码是c++,包需要能够处理>2GB的数据并在windows x64机器上工作。共享软件会很好,但不是必需的。

4

3 回答 3

2

一个合适的解决方案将取决于您希望处理的计算类型和数据、您希望实现的并行粒度以及您愿意投入多少精力。

最简单的方法是使用支持并行性的合适求解器/库(例如 scalapack)。或者,如果您希望推出自己的求解器,您可以使用OpenMP或提供自动并行化的编译器(例如英特尔 C/C++ 编译器)从当前代码中挤出一些并行化。所有这些都将为您带来合理的性能提升,而无需对代码进行大量重组。

在频谱的另一端,您有MPI选项。如果您的算法能够很好地并行化,它可以为您提供最大的性能提升。然而,这将需要相当多的重新设计。

另一种选择是沿着线程路线走。有一些图书馆和工具可以让这不再是一场噩梦。这些值得一看:Boost C++ 并行编程库线程构建块

于 2009-06-08T09:02:31.197 回答
1

你可能想看看OpenMP

于 2009-06-08T09:01:54.317 回答
0

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

于 2009-06-08T08:49:48.493 回答