经济文库 - 千万精品文档,你想要的都能搜到,下载即用。

MPI编译环境的使用.pdf

kong虚17 页 244.431 KB 访问 1202.97下载文档
MPI编译环境的使用.pdfMPI编译环境的使用.pdfMPI编译环境的使用.pdfMPI编译环境的使用.pdfMPI编译环境的使用.pdfMPI编译环境的使用.pdf
当前文档共17页 2.97
下载后继续阅读

MPI编译环境的使用.pdf

. MPI编译环境的使用 . 李会民 hmli@ustc.edu.cn 中国科学技术大学 超级运算中心 2011年10月 . 李会民 (中国科大超算中心) MPI编译环境的使用 . . . . 2011年10月 . 1 / 17 1. MPI编译环境简介 2. MPICH、MVAPICH、MVAPICH2、Open MPI等MPI编译环境 3. IBM PE MPI并行环境 4. 联系信息 . 李会民 (中国科大超算中心) MPI编译环境的使用 . . . . 2011年10月 . 2 / 17 MPI编译器简介 MPI编译环境实际上为MPI标准的不同实现 是利用在普通编译器(比如Intel编译器)基础上添加必要的MPI参 数以指定MPI库的路径等链接MPI库的编译 除了具体MPI实现的参数之外,其调用的普通编译器的参数继续有 效 关于优化等不仅需要参考此MPI编译环境也需要参考调用的普通编 译器 当前科大超算系统部署的类型: 联想深腾1800集群:MPICH 联想深腾7000G GPU集群(InfiniBand网络):Open MPI、MVAPICH、 MVAPICH2、QLogic MPI、LAM 曙光CB-60G集群、曙光A950胖节点、浪潮TS850胖节点:Open MPI IBM JS22刀片集群:Parallel Environment(PE) Open MPI为今后系统主要部署的MPI环境 李会民 (中国科大超算中心) MPI编译环境的使用 . . . . . 2011年10月 . 3 / 17 1. MPI编译环境简介 2. MPICH、MVAPICH、MVAPICH2、Open MPI等MPI编译环境 3. IBM PE MPI并行环境 4. 联系信息 . 李会民 (中国科大超算中心) MPI编译环境的使用 . . . . 2011年10月 . 4 / 17 MPICH、MVAPICH、MVAPICH2、Open MPI等MPI编 译环境 MPICH和MPICH2为针对以太网,但不支持InfiniBand 网络的MPI实现 MVAPICH、MVAPICH2为基于MPICH和MPICH2之上针 对InfiniBand 网络的MPI实现 MPICH、MVAPICH2、MVAPICH、Open MPI等MPI编译环境编译 命令基本一致 一些编译参数有些不同 MPI作业提交的参数也有所不同,当前LSF作业调度系统提供的MPI 作业运行脚本mpijob,主要针对系统默认设置的MPI实现,其它版 本的MPI实现未必能直接使用,需要根据具体MPI实现对提交作业 的要求进行改编 . 李会民 (中国科大超算中心) MPI编译环境的使用 . . . . 2011年10月 . 5 / 17 MPI并行程序编译举例 编译命令主要为:mpicc、mpic++、mpicxx、mpiCC、mpif77和mpif90, 不同类型程序的编译命令如下: 将C语言的MPI并行程序yourprog-mpi.c编译为可执行文 件yourprog-mpi: mpicc -o yourprog-mpi yourprog-mpi.c 将C++语言的MPI并行程序yourprog-mpi.cpp编译为可执行文 件yourprog-mpi,mpicxx也可换为mpic++或mpiCC: mpicxx -o yourprog-mpi yourprog-mpi.cpp 将Fortran 77语言的MPI并行程序yourprog-mpi.f编译为可执行文 件yourprog-mpi: mpif77 -o yourprog-mpi yourprog-mpi.f 将Fortran 90语言的MPI并行程序yourprog-mpi.f90编译为可执行文 件yourprog-mpi: mpif90 -o yourprog-mpi yourprog-mpi.f90 编译优化等,主要结合所使用的编译器的编译选项与具体MPI实现的编 译选项共同设置 . 李会民 (中国科大超算中心) MPI编译环境的使用 . . . . 2011年10月 . 6 / 17 MPICH、MVAPICH2、MVAPICH主要编译选项 -show:仅显示命令信息,但不进行编译 -help:给出简单帮助 用指定的编译器编译命令代替默认的编译命令,只有在编译器 与MPICH库兼容时才可使用 -cc=name:mpicc的参数,指定C编译器 -CC=name:mpiCC和mpicxx的参数,指定C++编译器 -fc=name:mpif77的参数,指定Fortran 77编译器 -f77=name:mpif77的参数,指定Fortran 77编译器 -f90=name:mpif90的参数,指定Fortran 90之后的编译器 -compile-info:显示程序编译的过程 -link-info:显示链接过程 . 李会民 (中国科大超算中心) MPI编译环境的使用 . . . . 2011年10月 . 7 / 17 Open MPI主要编译选项 -showme:仅显示命令信息,但不进行编译 -showme:compile:仅显示编译器编译参数信息,但不进行编译 -showme:link:仅显示编译器链接时的参数信息,但不进行链接 用OMPI_value变量控制使用的编译命令、编译参数等,value可为: CPPFLAGS:预处理选项 LDFLAGS:链接选项 LIBS:链接库选项 CC:C编译命令 CFLAGS:C编译选项 CXX:C++编译命令 CXXFLAGS:C++编译选项 F77:Fortran 77编译命令 FFLAGS:Fortran 77编译选项 FC:Fortran 9x编译命令 FCFLAGS:Fortran 9x编译选项 如使用gfortan作为Fortran 90编译命令,并显示编译信息: OMPI_FC= g f o r t r a n m p i f 9 0 −showme . 李会民 (中国科大超算中心) MPI编译环境的使用 . . . . 2011年10月 . 8 / 17 Open MPI并行实现下的并行程序调试 编译时添加-g参数,如 m p i f 9 0 −g yourmpi −p r o g . f 9 0 −o yourmpi −p r o g 几种运行方式: 使用GNU调试命令gdb,不调用初始调试命令调试: m p i e x e c −n 4 x t e r m −e gdb −q − t u i . / yourmpi −p r o g 使用GNU调试命令gdb调试,并调用调试命令文件dbg . t x t : m p i e x e c −n 4 x t e r m −e gdb −q − t u i −x dbg . t x t . / yourm 使用Intel调试命令 i d b c ,不调用初始调试命令调试: m p i e x e c −n 4 x t e r m −e i d b c . / yourmpi −p r o g 使用Intel调试命令 i d b c 调试,并调用调试命令文件dbg . t x t : m p i e x e c −n 4 x t e r m −e i d b c −command dbg . t x t . / yourmp 调试命令文件dbg . t x t 内容格式,每行一条命令,比如:  break 13 condition 1 k==2 run  注意:xterm为Linux下的一种图形终端命令,也可使用其它的。上述调试需要 图形界面,如远程连接Linux系统调试,需打开X11转发 . 李会民 (中国科大超算中心) MPI编译环境的使用 . . . . 2011年10月  . 9 / 17 MPI程序出错时常用调试方式 以Intel调试器和OpenMPI的配合为例: 添加-g参数编译 设置dbg.txt文件内容为  run   开始调试: m p i e x e c −n 4 x t e r m −e i d b c −command dbg . t x t . / yourm 程序将会自动停止在出错的位置,并显示对行的源代码 . 李会民 (中国科大超算中心) MPI编译环境的使用 . . . . 2011年10月 . 10 / 17 1. MPI编译环境简介 2. MPICH、MVAPICH、MVAPICH2、Open MPI等MPI编译环境 3. IBM PE MPI并行环境 4. 联系信息 . 李会民 (中国科大超算中心) MPI编译环境的使用 . . . . 2011年10月 . 11 / 17 IBM PE JS22上安装的MPI的并行环境为IBM Parallel Environment for AIX,主要 包括以下内容: 并行操作环境(Parallel Operating Environment-POE):编译、提交和 管理 MPI库:支持MPI程序 并行调试器pdb:用于调试并行程序 . 李会民 (中国科大超算中心) MPI编译环境的使用 . . . . 2011年10月 . 12 / 17 MPI并行程序的编译 PE的编译命令主要为:mpCC、mpCC_r、mpcc、mpcc_r、 m p x l f 、 mpxlf_r、mpxlf90、mpxlf90_r、mpxlf95、mpxlf95_r和 mpxlf2003_r。 对于并行程序,源文件类型和编译命令的对应关系如下: 将C语言的MPI程序yourprog-mpi.c编译为32位可执行程 序yourprog-mpi: mpcc -o yourprog-mpi yourprog-mpi.c 将C++语言的MPI程序yourprog-mpi.C编译为32位可执行程 序yourprog-mpi: mpCC -o yourprog-mpi yourprog-mpi.C 将Fortran 77语言的MPI程序yourprog-mpi.f编译为32位可执行程 序yourprog-mpi: mpxlf -o yourprog-mpi yourprog-mpi.f 将Fortran 90语言的MPI程序yourprog-mpi.f90编译为64位可执行程 序yourprog-mpi: mpxlf90 -o yourprog-mpi -q64 yourprog-mpi.f90 . 李会民 (中国科大超算中心) MPI编译环境的使用 . . . . 2011年10月 . 13 / 17 MPI并行程序的运行 MPI并行程序的运行命令为poe,其格式为: poe program p r o g r a m _ o p t i o n s 下述命令表示以4个进程运行yourprog-mpi: poe y o u r p r o g −mpi − p r o c s 4 在JS22上,请务必用作业管理软件LoadLeveler进行提交,因此无需 再指定-procs参数,具体将在作业管理系统中介绍 . 李会民 (中国科大超算中心) MPI编译环境的使用 . . . . 2011年10月 . 14 / 17 MPI并行程序调试 PE提供并行调试器PDB,可对并行程序进行调试,PDB与分布交互式 Shell(Distributed Interactive Shell-DISH)共同工作,PDB使用DISH管理 进程,利用dbx命令串行调试。 对并行程序进行调试,需在编译时添加-g参数编译成可调试的程序 . 李会民 (中国科大超算中心) MPI编译环境的使用 . . . . 2011年10月 . 15 / 17 1. MPI编译环境简介 2. MPICH、MVAPICH、MVAPICH2、Open MPI等MPI编译环境 3. IBM PE MPI并行环境 4. 联系信息 . 李会民 (中国科大超算中心) MPI编译环境的使用 . . . . 2011年10月 . 16 / 17 联系信息 李会民: 办公室:科大东区新科研楼A座网络信息中心二楼205室 办公电话:0551-3602248 电子信箱:hmli@ustc.edu.cn 个人主页:http://hmli.ustc.edu.cn 中国科大超算平台:http://scc.ustc.edu.cn . 李会民 (中国科大超算中心) MPI编译环境的使用 . . . . 2011年10月 . 17 / 17

相关文章