MPI并行程序设计之平行Rank
2017-06-05 18:47
169 查看
题目描述:
实验代码:
实验代码:
#include<stdio.h> #include<stdlib.h> #include<malloc.h> #include<math.h> #include"mpi.h" struct parallel{ int nnum; int rrank; }; int main(int argc, char** argv) { int rank,size,*sbuf,rbuf[10],i; int* rrbuf; int num; MPI_Init(&argc,&argv); MPI_Comm_size(MPI_COMM_WORLD,&size); MPI_Comm_rank(MPI_COMM_WORLD,&rank); if(rank==0) { sbuf=(int*)malloc(sizeof(int)*size); rrbuf=(int*)malloc(sizeof(int)*2*size); for(i=0;i<size;i++) sbuf[i]=rand()%10; //struct parallel pa[size]; } MPI_Scatter(sbuf,1,MPI_INT,rbuf,1,MPI_INT,0,MPI_COMM_WORLD); rbuf[1]=rank; MPI_Gather(rbuf,2,MPI_INT,rrbuf,2,MPI_INT,0,MPI_COMM_WORLD); if(rank==0) { struct parallel min; struct parallel pa[size]; printf("Before the sort:\n"); int j; int t; printf("The num is: "); for(i=0;i<2*size;i++) { if(i%2==0) printf("%d ",rrbuf[i]); } printf("\n"); printf("The rank is "); for(i=0;i<2*size;i++) { if(i%2!=0) printf(" %d",rrbuf[i]); } printf("\n"); for(i=0;i<2*size;i++) { j=i/2; if(i%2==0) { pa[j].nnum=rrbuf[i]; pa[j].rrank=rrbuf[i+1]; } } //---------------------sort---------------------------- for(i=0;i<size-1;i++) { for(j=i+1;j<size;j++) { if(pa[i].nnum>pa[j].nnum) { min=pa[i]; pa[i]=pa[j]; pa[j]=min; } } } printf("After sort:\n"); printf("The num is: "); for(i=0;i<size;i++) printf("%d ",pa[i].nnum); printf("\n"); printf("The rank is: "); for(i=0;i<size;i++) printf("%d ",pa[i].rrank); printf("\n"); } // printf("\n"); MPI_Finalize(); return 0; }
相关文章推荐
- 【MPI学习2】MPI并行程序设计模式:对等模式 & 主从模式
- 【MPI学习2】MPI并行程序设计模式:对等模式 & 主从模式
- MPI 学习 -- 高性能计算之并行编程技术 --- MPI并行程序设计 都志辉编著
- 【MPI学习5】MPI并行程序设计模式:组通信MPI程序设计
- 【MPI学习4】MPI并行程序设计模式:非阻塞通信MPI程序设计
- 【MPI学习3】MPI并行程序设计模式:不同通信模式MPI并行程序的设计
- 【MPI学习6】MPI并行程序设计模式:具有不连续数据发送的MPI程序设计
- MPI并行程序设计——Eclipse开发环境的搭建
- 并行程序设计---MPI
- 【MPI学习5】MPI并行程序设计模式:组通信MPI程序设计
- MPI并行程序设计学习整理
- [MPI] 不同通信模式MPI并行程序设计
- 【MPI学习4】MPI并行程序设计模式:非阻塞通信MPI程序设计
- 【MPI学习7】MPI并行程序设计模式:MPI的进程组和通信域
- 【MPI学习7】MPI并行程序设计模式:MPI的进程组和通信域
- 【MPI学习5】MPI并行程序设计模式:组通信MPI程序设计
- 【MPI学习6】MPI并行程序设计模式:具有不连续数据发送的MPI程序设计
- mpi并行程序设计 启动 mpdboot
- 【MPI学习6】MPI并行程序设计模式:具有不连续数据发送的MPI程序设计
- 【MPI学习7】MPI并行程序设计模式:MPI的进程组和通信域