集群和HPC的C++编程

Abr*_*ile 9 c++ hpc cluster-computing

我需要在C++中编写一个科学应用程序,进行大量计算并使用大量内存.我有部分工作,但由于资源方面的高要求,我正在考虑开始转向OpenMPI.

在此之前我有一个简单的好奇心:如果我正确理解OpenMPI的原理,那么开发人员的任务就是根据当时可用的节点调用SEND和RECEIVE的不同节点上的作业.

你知道它是否存在某些库或操作系统或具有此功能的任何东西让我的代码现在重新存在吗?基本上连接所有计算机并让它们作为一个内存和CPU共享的东西?

我有点困惑,因为有关该主题的大量材料.我应该看看云计算吗?或分布式共享内存?

Dea*_*ael 5

目前,没有C++库或实用程序可以让您在一组计算机上自动并行化代码.虽然有很多方法可以通过其他方法实现分布式计算,但您确实希望优化应用程序以使用消息传递或分布式共享内存.

你最好的赌注是:

  1. 将您的实现转换为基于任务的解决方案.有很多方法可以做到这一点,但这绝对是手工完成的.
  2. 清楚地确定您可以在哪里打破任务以及这些任务如何基本上相互通信.
  3. 使用基于OpenMPI/Mpich构建的更高级别的库 - 想到Boost.MPI.

实现并行分布式解决方案是一回事,使其高效工作是另一回事.阅读不同的拓扑结构和不同的并行计算模式,使实施解决方案比不必从头开始一样痛苦.