【问题标题】:MPI write the variable in nested loops to a single fileMPI 将嵌套循环中的变量写入单个文件
【发布时间】:2015-07-07 22:24:44
【问题描述】:

我目前正在尝试找到一种有效的方法来并行化以下结构。文件的数量很大,大约 50Gb,我想知道如何通过 MPI 提高计算速度,或者对于这种情况,由于我想要的核心通信时间或障碍,并行不是一种有效的方法用命令写入数据。感谢您的帮助。

for m = 1,120
    for n = 1,120
       for k = 1,120

          for i = 1,100

              f= x[k]*y[n]*z[m]

              for j = 1, 30000

                  data[j]= A[i,j]*f

          fwrite(fp,data)
          free(data)

【问题讨论】:

  • 由于文件大小为 50Gb,并且文件中写入了 120x120x120x30000 个项目,因此 data[j] 的类型似乎为 char。如果f 也是char 类型,则意味着数组data 只有256 个可能的值。如何计算这些值并将它们存储在 256x30000 数组中(比如 datap[256][30000])?然后,只需fwrite(fp,datap[f]);。这将在不使用并行化的情况下将计算时间减少 100。请注意,文件也可以放气,因为同一行会一次又一次地出现......只需存储 f[120][120][120]datap[256][30000]

标签: c++ parallel-processing mpi nested-loops


【解决方案1】:

为什么按顺序写作是一项挑战?这个问题的两个答案都提供了一种方法来做到这一点:

Writing to files with MPI

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    相关资源
    最近更新 更多