使用Makefile编译MPI C程序的正确性验证及运行方法咨询
Makefile 正确性校验
你编写的makefile.frequencyMPI逻辑完全正确,可正常完成编译流程:
- 默认目标
all会指向最终可执行文件program的生成规则 - 编译阶段调用
mpicc将frequencyMPI.c编译为目标文件frequencyMPI.o,链接阶段同样使用mpicc完成MPI相关依赖的链接,生成可执行文件 clean规则可正常清理中间目标文件、最终可执行文件、内核转储文件和编辑器临时文件
如果需要简化写法,也可以把Makefile调整为自动变量版本,功能和原版本完全一致:
all: program program: frequencyMPI.o mpicc $^ -o $@ frequencyMPI.o: frequencyMPI.c mpicc -c $< -o $@ clean: rm -f *.o program core *~
编译与运行步骤
- 首先执行编译命令,指定你自定义命名的Makefile:
make -f makefile.frequencyMPI
- 编译无报错后,会在当前目录生成名为
program的可执行文件,MPI程序需要通过MPI运行器启动,例如启动4个进程运行的命令为:
mpirun -np 4 ./program
其中-np参数后接的数字为你需要启动的MPI进程数,可根据设备核心数、程序需求调整。如果是在搭载Slurm/PBS等调度系统的集群上运行,需要将上述运行命令写入调度提交脚本中提交任务。
内容的提问来源于stack exchange,提问作者Udeze Leonard
相关产品推荐
相关产品推荐

