OpenMP 与 MPICH2 进行集群计算时数据分发与共享

    对集群计算而言,使用MPICH2连接并控制各个节点,使用 OpenMP 在节点内充分对CPU及各个CPU核心进行并行化,是比较低成本且万精油的解决方案。(异构计算估计要OpenCL 或者 CUDA 参与,没搞过)。MPI(CH2)是应用于分布式计算设施的并行化技术,OpenMP与之对应,用于共享存储设施。MPI与OpenMP合作时,一般把任务首先划分为一级粒度(粗),而后,MPI分发送到计算节点上,节点内采用OpenMP来进行算法级并行化。

    如果是计算密集型但存储不多的任务,直接使用MPI分发处理数据,而后归并即可。

    如果是计算密集型同时输入非常大,输出很少,则把输入数据准备在集群内某一台机器上,并用光纤链接的局域网文件系统共享发布。MPI派发数据的索引而不是数据本身,而后归并处理结果。

   如果是计算密集型,输入很大,输出也很大,则考虑全部在分布式文件系统中实施。

   在考虑是否把数据复制到各个节点时,主要考虑是复制的代价大,还是共享访问的流量大。对需要反复随机访问的数据,还是复制到各个节点。对顺序读取一次即可完成处理的数据,直接共享访问。

你可能感兴趣的:(集群,分布式文件系统,分布式计算,mpi,openmp)