MPI矩阵乘法的两种实现方法 您所在的位置:网站首页 矩阵乘法技巧讲解 MPI矩阵乘法的两种实现方法

MPI矩阵乘法的两种实现方法

2024-07-16 06:40| 来源: 网络整理| 查看: 265

MPI矩阵乘法

去年学习了并行计算,接触了MPI、Pthreads和OpenMP等常用的并行方法实现了并行的矩阵乘法,本章在此总结一下MPI的矩阵乘法使用。

使用简单的MPI_Send和MPI_Recv实现使用较高级的MPI_Scatter和MPI_Gather实现 MPI_Send和MPI_Recv实现 #include #include #include #include int main(int argc,char *argv[]) { double start, stop; int i, j, k, l; int *a, *b, *c, *buffer, *ans; int size = 1000; int rank, numprocs, line; MPI_Init(NULL,NULL);//MPI Initialize MPI_Comm_rank(MPI_COMM_WORLD,&rank);//获得当前进程号 MPI_Comm_size(MPI_COMM_WORLD,&numprocs);//获得进程个数 line = size/numprocs;//将数据分为(进程数)个块,主进程也要处理数据 a = (int*)malloc(sizeof(int)*size*size); b = (int*)malloc(sizeof(int)*size*size); c = (int*)malloc(sizeof(int)*size*size); //缓存大小大于等于要处理的数据大小,大于时只需关注实际数据那部分 buffer = (int*)malloc(sizeof(int)*size*line);//数据分组大小 ans = (int*)malloc(sizeof(int)*size*line);//保存数据块计算的结果 //主进程对矩阵赋初值,并将矩阵N广播到各进程,将矩阵M分组广播到各进程 if (rank==0) { //从文件中读入矩阵 FILE *fp; fp=fopen("a.txt","r");//打开文件 start = MPI_Wtime(); for(i=0;i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有