相关疑难解决方法(0)

使用MPI在C中发送2D阵列块

如何将二维数组块发送到不同的处理器?假设2D阵列大小为400x400,我想将大小为100X100的块发送到不同的处理器.这个想法是每个处理器将在其单独的块上执行计算,并将其结果发送回第一个处理器以获得最终结果.
我在C程序中使用MPI.

c parallel-processing mpi

48
推荐指数
1
解决办法
4万
查看次数

MPI_Type_create_subarray和MPI_Gather

我必须解决一个小的mpi问题.我有4个从属进程,每个进程都希望向master 0发送一个2d子阵列(CHUNK_ROWS X CHUNK_COLUMNS).Master 0收集ddd [ROWS] [COLUMNS]中的所有块并打印出来.我想使用MPI_Gather()

#include <mpi.h>
#include <iostream>
using namespace std;

#define ROWS 10
#define COLUMNS 10
#define CHUNK_ROWS 5
#define CHUNK_COLUMNS 5
#define TAG 0

int** alloca_matrice(int righe, int colonne)
{
int** matrice=NULL;
int i;

matrice = (int **)malloc(righe * sizeof(int*));

if(matrice != NULL){
  matrice[0] = (int *)malloc(righe*colonne*sizeof(int));
  if(matrice[0]!=NULL)
    for(i=1; i<righe; i++)
        matrice[i] = matrice[0]+i*colonne;
  else{
    free(matrice);
    matrice = NULL;
  }
}
else{
  matrice = NULL;
}
return matrice;

}

int main(int argc, char* argv[])
{ …
Run Code Online (Sandbox Code Playgroud)

c parallel-processing mpi

11
推荐指数
1
解决办法
7390
查看次数

标签 统计

c ×2

mpi ×2

parallel-processing ×2