MPI命令

本文介绍了MPI(Message Passing Interface)的编译命令,如mpiCC、mpicc等,以及如何使用mpirun运行MPI程序。编译选项包括-mpixlog、-mpitrace等,用于调试和追踪程序。mpirun的常用参数如-np指定进程数量,配置文件的使用增强了程序部署的灵活性。此外,文章还提到了针对不同设备和环境的选项,如-chameleon、-meiko等,以及MPI程序在异构系统上的协同运行方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

mpi命令

 

10.1.3 编译命令
mpiCC/mpicc/mpif77/mpif90
mpiCC
编译并联接用C++编写的MPI程序 而mpicc是编译并联接用C编写的MPI程序
mpif77
mpif90分别编译并联接用FORTRAN77Fortran90编写的MPI程序 这些命令在联
接时可以自动提供MPI需要的库 并提供特定的开关选项 注意mpiCC不能不能用于编译C
程序 常用的编译选项是

      -mpilog   
产生MPElog文件
      -mpitrace
产生跟踪文件
这样在该MPI程序执行时会打印出其运行踪迹信息
但是它和-mpilog 在编译时不能同时存在 只能二者选一
      -mpianim
产生实时动画
      -show    
显示编译时产生的命令 但并不执行它
      -help     
给出帮助信息
      -echo    
显示出当前正在编译联接的命令信息
此外它们还可以使用一般的C++/C/FORTRAN77/Fortran90通用的选项
含义和原来的编译器相同

To compile a single file foo.c, use
   mpicc -c foo.c
To link the output and make an executable, use
   mpicc -o foo foo.o
Combining compilation and linking in a single command
   mpicc -o foo foo.c
最简单的MPI运行命令是
mpirun –np N program
program
是可执行MPI程序名 以这种方式进行执行

其中N是同时运行的进程的个数
需要首先对可用的机器进行配置 配置文件是$(HOME)/mpich/util/machines/machines.LINUX
在这个文件中 每一行写上可用的机器名 比如

tp5.cs.tsinghua.edu.cn
tp1.cs.tsinghua.edu.cn
tp2.cs.tsinghua.edu.cn
tp3.cs.tsinghua.edu.cn
tp4.cs.tsinghua.edu.cn
83
tp8.cs.tsinghua.edu.cn

这样就有6台机器可供MPI使用 使用这种方式启动时 可执行程序必须放在不同机
同帐户的相同路径下 比如在tp5.cs.tsinghua.edu.cn$(HOME)/mpich/examples/basic/

### 使用GDB调试MPI Fortran程序 当使用GDB调试MPI Fortran程序时,可以采用多种方法来启动并控制多个进程的调试过程。一种常见的方式是利用`mpirun`或`mpiexec`工具配合GDB一起工作。 对于Absoft Fortran编译器,在配置过程中应当确保启用了调试信息的支持[^1]。具体来说,可以通过添加 `-g` 编译选项来包含完整的调试符号表,这有助于提高后续调试效率。 为了使能对OpenMP特性的支持以及生成适合于调试的信息,可能还需要额外指定一些特定于编译器的参数[^2]。然而针对MPI应用而言,重点在于如何有效地管理多进程环境下的断点设置与单步执行操作。 下面是一个简单的例子展示怎样结合`mpirun`和GDB来进行MPI程序的调试: ```bash mpirun -np 4 xterm -e gdb ./my_mpi_program & ``` 此命令会打开四个终端窗口,每个都运行着一个附加到不同MPI进程上的GDB实例。这样就可以分别对各个节点上的代码行为进行细致观察了。 另外值得注意的是,某些情况下还可以考虑借助Allinea DDT这样的专用分布式内存调试工具,它们提供了更友好的图形界面和支持更多高级特性,比如全局变量监视等功能。 在实际调试过程中,建议先尝试理解错误发生的上下文,并合理运用条件断点、表达式查看等技巧缩小问题范围;同时也要注意检查通信模式是否正确实现,因为很多MPI相关的bug往往源于消息传递逻辑不当引起的死锁等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值