使用makefile实现MPI入门程序

程序实现的功能巨简单,就每个进程打印出来自己的进程号,使用makefile只不过是把每次写mpi程序的init和finalize等必须调用的函数给写成了一个begin函数和一个end函数,酱以后就可以直接用自己的函数,稍微简单了一下下哈哈

  • begin.c

首先写一个mpi程序一般都需要以下几个函数来初始化mpi环境,这里需要说明,其中各参数的定义为:int argc; char **argv; MPI_Comm comm; int iam; int np,为什么特别说明呢,往下看就明白啦

   

那么来把这几个写成一个自定义的begin函数,新建begin.c,内容如下:

  

OK,现在有木有明白为啥要强调上边的变量的定义了不,因为在这个begin.c里面,比如argc的定义就是int *argc,然后上面的几个函数它的参数都是固定的形式,所以要注意,那么为什么要这么干呢,因为我开始的时候就是用的没有引用的形式,但是运行的时候发现都是输出0进程,是不是涉及到了什么C中深拷贝和浅拷贝的问题啥的呢,然后看了拍的老师的begin函数调用的时候参数都是有取地址符,所以我就都给加上了,这个地方有点坑。

  • end.c

这个就很简单啦,可是我写的时候刚开始写成了MPI_Finalized(),这个是有参数的,然后报错了,每次都是这样犯一些小错误!

  

  • myhead.h

声明一下刚才定义的函数,然后把一些头文件包含进来

  

  • main.c

辣么最后的主程序就也很简单啦

  

  • makefile文件

  

 

然后激动人心的时刻到啦,用make命令编译

  

哈哈哈米有问题,运行

  

Yeah!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值