Prog1: helloworld.c 最简单的MPI程序

1. 程序源代码

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

int main(int argc, char *argv[]){
        int totalTaskNum, rankID;

        int rt = MPI_Init(&argc, &argv);
        if(rt != MPI_SUCCESS){
                printf("Error starting MPI.\n");
                MPI_Abort(MPI_COMM_WORLD, rt);
        }

        MPI_Comm_size(MPI_COMM_WORLD, &totalTaskNum);
        MPI_Comm_rank(MPI_COMM_WORLD, &rankID);

        printf("Hellow, world! %dth of totalTaskNum = %d\n", rankID, totalTaskNum);

        MPI_Finalize();

        return 0;
}

2. 编译,执行

[amao@amao991 mpi-study]$ mpicc -o helloworld helloworld.c
[amao@amao991 mpi-study]$ mpiexec -n 6 ./helloworld
Hellow, world! 1th of totalTaskNum = 6
Hellow, world! 0th of totalTaskNum = 6
Hellow, world! 3th of totalTaskNum = 6
Hellow, world! 2th of totalTaskNum = 6
Hellow, world! 4th of totalTaskNum = 6
Hellow, world! 5th of totalTaskNum = 6

3. 总结

(1) 使用了缺省了machinefile,已经设置在环境变量中了

(2) 学习了最基本的四个函数

MPI_Init(&argc, &argv) //在c语言环境下,可以通过该函数把命令行参数传给各个进程task

MPI_Comm_size(MPI_COMM_WORLD, &totalTaskNum);  //该函数确定进程组内进程的个数,mpiexec -n 6 ./helloworld中-n 6告诉它的

MPI_Comm_rank(MPI_COMM_WORLD, &rankID);     //确定当前进程的ID,位于0~totalTaskNum-1之间

MPI_Finalize()   //结束MPI执行,放在代码的最后

(3) MPI_Abort函数

MPI_Abort(MPI_COMM_WORLD, rt);  //终结与communicator相关的所有进程

-------------------------------------

4. 用c++写的最简单的MPI程序

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

int main(){
	int rankID;
	int sizeNum;

	MPI_Init(0,0);
	MPI_Comm_size(MPI_COMM_WORLD, &sizeNum);
	MPI_Comm_rank(MPI_COMM_WORLD, &rankID);

	//printf("Hi! %d of total %d\n",rankID,sizeNum);
	cout<<"Hi ! "<<rankID<<" of total ="<<sizeNum<<endl;

	MPI_Finalize();
	return 0;
}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值