首页 > 其他 > 详细

MPI学习笔记

时间:2020-04-05 11:17:44      阅读:77      评论:0      收藏:0      [点我收藏+]

MPI

简介

  • 基于消息的并行编程工具
  • MPI是一个库而不是一个语言,须结合语言(例如c)进行使用

概念

通信域:由进程组,通信上下文等内容组成,每个进程都会隶属一个或多个通信域
进程组:通信域中所有进程的集合

数据类型

MPI C
MPI_CHAR signed char
MPI_UNSIGNED_CHAR unsigned char
MPI_INT int
MPI_UNSIGNED unsigned int
MPI_SHORT short
MPI_UNSIGNED_SHORT unsigned short
MPI_LONG long
MPI_UNSIGNED_LONG unsigned long
MPI_FLOAT float
MPI_DOUBLE double
MPI_LONG_DOUBLE long double
MPI_BYTE
MPI_PACKED

代码

#include"mpi.h"
#include<stdio.h>

int main(int argc,char **argv)
{
    int rank,size,tag=1;
    int senddata,recvdata;

    MPI_Status status;

    MPI_Init(&argc,&argv);//初始化

    MPI_Comm_rank(MPI_COMM_WORLD,&rank);
    //获取当前进程在指定通讯域中的编号
    MPI_Comm_size(MPI_COMM_WORLD,&size);
    //获取当前进程在指定通讯域中的进程数,用于确定本进程应当完成的任务比例

    if(rank==0)
    {
        senddata=9999;
        MPI_Send(&senddata,1,MPI_INT,1,tag,MPI_COMM_WORLD);
        //发送数据给进程1
        //tag用于把本次发送的消息和本进程发送给同一目标进程的其他消息区分开来
    }
    else if(rank==1)
    {
        MPI_Recv(&recvdata,1,MPI_INT,0,tag,MPI_COMM_WORLD,&status);
        //从进程0接收数据
        printf(recvdata);
    }
    MPI_Finalize();//mpi结束函数
    return 0;
}

MPI学习笔记

原文:https://www.cnblogs.com/kreamyu/p/12636073.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!