您是否知道任何用于在多台计算机和/或每台计算机上的多个内核上分配计算的软件包?计算代码是c++,包需要能够处理>2GB的数据并在windows x64机器上工作。共享软件会很好,但不是必需的。
问问题
115 次
3 回答
2
一个合适的解决方案将取决于您希望处理的计算类型和数据、您希望实现的并行粒度以及您愿意投入多少精力。
最简单的方法是使用支持并行性的合适求解器/库(例如 scalapack)。或者,如果您希望推出自己的求解器,您可以使用OpenMP或提供自动并行化的编译器(例如英特尔 C/C++ 编译器)从当前代码中挤出一些并行化。所有这些都将为您带来合理的性能提升,而无需对代码进行大量重组。
在频谱的另一端,您有MPI选项。如果您的算法能够很好地并行化,它可以为您提供最大的性能提升。然而,这将需要相当多的重新设计。
另一种选择是沿着线程路线走。有一些图书馆和工具可以让这不再是一场噩梦。这些值得一看:Boost C++ 并行编程库和线程构建块
于 2009-06-08T09:02:31.197 回答
1
你可能想看看OpenMP
于 2009-06-08T09:01:54.317 回答