【发布时间】:2011-06-09 18:28:54
【问题描述】:
我有一个执行蒙特卡罗类型模拟的程序。目前我已经编写了针对 OpenMP 和 OpenCL 的程序版本,并希望了解在我的 LAN 上的计算机之间分配工作负载的最佳方法。
我的第一个想法是编写一个基于套接字的客户端/服务器应用程序,服务器将划分工作单元以发送给客户端,然后客户端将完成它们,并发送回结果。为了利用具有快速 CPU 和 GPU 的系统,我可以在一个系统上运行客户端程序的多个实例(一个 -omp 和一个 -ocl 可执行文件)。
然而,sockets 编程很少是令人愉快的,而且很难做到正确(决定协议等)。因此,我决定查看 MPI,它看起来不错,但我不确定当您想要将 CPU + GPU 包含在组合中时它的效果如何,或者我的服务器规定的“工作单元”是否适合。(确定哪个的过程要采样的问题空间区域非常重要,因此需要有感知的主进程来协调事物。)
因此,我很想知道是否还有其他可供我选择的选项,或者其他人在类似情况下的决定。
【问题讨论】:
-
mpi 是事实上的标准。