【问题标题】:Parallel for loops in MPI?MPI中的并行for循环?
【发布时间】:2014-04-23 06:29:36
【问题描述】:

我以前从未使用过 MPI,也从未参加过有关并行编程的正式课程。我是一名应用数学专业的学生,​​从事一个由一系列 for 循环组成的大型项目。在每个 for 循环中,迭代完全独立于其他循环,所以我很确定这可以很容易地并行化。

我首先尝试使用 openmp,但收到一个错误,即找不到文件(Mac 用户),我不确定如何解决。

那么在 MPI 中这是一项简单的任务吗?出于某种原因,Google 在这里没有给出答案。

【问题讨论】:

    标签: c parallel-processing mpi


    【解决方案1】:

    如果迭代是独立的,那么 OpenMP 是最简单的方法。在 Mac OS X 上,您需要安装 gcc 才能使用 OpenMP 进行编译,因为 clang 编译器(目前)不支持 OpenMP。您可以从这里轻松安装 gcc 的预编译版本:

    http://hpc.sourceforge.net

    当然,您也可以使用 MPI,但这对您来说会更加困难(除了安装之外),因为您没有受过培训。如果你想坚持使用 MPI,并行化由独立迭代组成的循环需要为每个进程计算其初始和最终迭代,适当地管理数据结构(请记住,在 MPI 中,内存不会在进程之间共享)等等。

    【讨论】:

      【解决方案2】:

      如果您在 Mac OS X 上需要 OpenMP,您可以尝试使用支持 OpenMP 的非官方 clang。源代码可在此处http://clang-omp.github.com 获得。您还需要一个 OpenMP 运行时库,可在此处http://openmp.llvm.org/ 获得。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-04-18
        • 2015-11-01
        • 2014-08-05
        • 2012-07-31
        • 1970-01-01
        • 1970-01-01
        • 2016-08-10
        相关资源
        最近更新 更多