example1
来源:互联网 发布:qq飞车ce数据 编辑:程序博客网 时间:2024/05/15 03:57
//Writed by YaoPu, Oct 10 2016//Connect via yaopu@iccas.ac.cn#include<stdio.h>#include"mpi.h"#include<string.h>int master_io(void);int slave_io(void);int main(int argc, char **argv){int rank,size;MPI_Init(&argc,&argv);MPI_Comm_rank(MPI_COMM_WORLD,&rank);printf("********************rank=%d*************************\n",rank);if(rank==0)master_io();elseslave_io();MPI_Finalize();return 0;}#define MSG_EXIT 1#define MSG_PRINT_ORDERED 2#define MSG_PRINT_UNORDERED 3int master_io(void){int i,j,size,nslave,firstmsg,rank;char buf[256],buf2[256];MPI_Comm_rank(MPI_COMM_WORLD,&rank);printf("****************io io io rank= %d io io io******\n",rank);MPI_Status status;MPI_Comm_size(MPI_COMM_WORLD,&size);nslave=size-1;while(nslave>0){MPI_Recv(buf,256,MPI_CHAR,MPI_ANY_SOURCE,MPI_ANY_TAG,MPI_COMM_WORLD,&status);switch(status.MPI_TAG){case MSG_EXIT:nslave--;break;case MSG_PRINT_UNORDERED:fputs(buf,stdout);break;case MSG_PRINT_ORDERED:firstmsg=status.MPI_SOURCE;for (i=1;i<size;i++){if(i==firstmsg)fputs(buf,stdout);else{MPI_Recv(buf2,256,MPI_CHAR,i,MSG_PRINT_ORDERED,MPI_COMM_WORLD,&status);fputs(buf2,stdout);}}break;}}}int slave_io(void){char buf[256];int rank;MPI_Comm_rank(MPI_COMM_WORLD,&rank);sprintf(buf,"Hello from slave %d, ordered print\n",rank);MPI_Send(buf,strlen(buf)+1,MPI_CHAR,0,MSG_PRINT_ORDERED,MPI_COMM_WORLD);sprintf(buf,"Goodbye from slave %d,ordered print \n",rank);MPI_Send(buf,strlen(buf)+1,MPI_CHAR,0,MSG_PRINT_ORDERED,MPI_COMM_WORLD);sprintf(buf,"I am exiting (%d) ,unordered print\n",rank);MPI_Send(buf,strlen(buf)+1,MPI_CHAR,0,MSG_PRINT_UNORDERED,MPI_COMM_WORLD);MPI_Send(buf,0,MPI_CHAR,0,MSG_EXIT,MPI_COMM_WORLD);}
0 0
- example1
- example1
- QT4:example1
- Tree Example1
- classic example1
- openejb Example1
- CloudSim中的example1分析
- jrtplib example1源码解析
- jrtplib3.9.1 example1
- unity NGUI Example1 Anchors
- osgi + felix example1编写
- quartz-Example1 学习
- jRTP中example1的编译错误小集
- Peersim笔记- example1的运行【命令行+eclipse】
- jrtplib学习之example1例程分析
- freetype->example1.c代码的注释
- jrtplib学习之example1例程分析
- 线程编译调试方法 -----linux多线程学习 gcc example1.c -lpthread -o example1
- Servlet验证码功能
- Lua简明教程
- 一个初学者对栈的理解
- [kuangbin带你飞]专题一 简单搜索 Catch That Cow : bfs
- 并发及
- example1
- android Json数据解析(一)
- 感谢
- [webGL学习]基于three.js构建WebGL实例第四讲
- 2016-10-10课后练习
- 关于机械臂逆运动学 jacobian矩阵
- 带头结点的链表的地址问题
- Android项目中遇到的坑之(Android圆角圆形图 二)
- Java中负数与符号扩展