MPI是一个库 MPI是消息通信标准,其实现是一个第三方库(library),但我们用比如Intel MPI的命令编译链接源代码,这给人一种错觉就是MPI是一门编程语言,是一个编译器。 下面我们通过对深入分析来说明「MPI实际上是一个第三库的事实」。 mpiifort是shell脚本 Intel MPI的编译链接命令实际上是一个封装的shell脚本,用于封装查找mpi头文件/模块文件和链接相应库文件细节。 打开这个shell脚本阅读脚本代码,脚本前面主要是环境变量、命令行参数处理部分,其最后核心部分是编译、链接处理,具体如下: 其中确定当前是链接阶段还是其它编译阶段。 编译命令 如果是在编译阶段,主要命令是 变量值如下:FC=ifort 默认使用ifort基础编译器FCFLAGS=allargs= 用户指定编译选项FCMODDIRS=-I/impi/intel64/includeFCINDIRS=-I/impi/intel64/include 我们可以使用选项来查看实际调用的命令参数 链接命令 如果在链接阶段,主要命令如下 使用选项来查看实际调用的命令参数 包含了链接时需要搜索的Intel MPI库路径及链接库。 与mpif90命令区别 命令也是一个shell脚本,不同的是其默认的,可通过或者重置基础编译器。 各家MPI实现命令 Intel MPI
OpenMPI
OpenMPI团队建议使用代替或,因其更加通用,支持Fortran多种语法标准。 MPICH / MVAPICH LanguageWrapper compiler nameCmpiccC++mpicxx, mpic++Fortranmpifort,mpif77,mpif90 其中mpic++是mpicxx软链接,mpif77和mpif90是mpiifort软链接。 建议 尽量使用厂商提供的封装好的MPI编译器,而不是使用“基础编译器+MPI库链接”方式编译程序。 参考资料 https://www.intel.com/content/www/us/en/docs/mpi-library/developer-reference-linux/2021-8/compiler-commands.html https://wwwhttp://www.360doc.com/content/24/0217/02/faq/?category=mpi-apps
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/62503.html