Linux 并并并并并并并并并并并 并并并 2010 并 5 并
Jan 30, 2016
Linux并行计算平台搭建及应用
王彦棡
2010 年 5月
主要内容
• 基础知识
• MPI的配置
• 如何使用 Linux并行计算环境
基础知识
Linux 是一套免费使用和自由传播的类Unix 操作系统,它主要用于基于 x86 系列 CPU 的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的 Unix 兼容产品。
基础知识
/bin: 存放常用命令 /etc: 系统管理所要的配置文件和子目录 /home: 存放用户主目录的地方 /lib: 系统基本的动态链接库 /opt: 可以选择的 /proc: 虚拟系统 , 是由系统初起时内存中产生的 /tmp: 存放各程序执行时所产生的临时文件 /usr: 占空间最大的目录,用户的很多应用程序和文件几乎全在这个目录中
常用 cmd命令操作
– 常用目录文件操作: ls/cd/rm/mkdir/cp/mv/cat/tar
– 编辑器 vim 。– man 手册工具。– 对于删除修改等危险操作和不熟的命令切记要谨慎执行。
主要内容
• 基础知识
• MPI的配置
• 如何使用 Linux并行计算环境
设置无密码的远程登录 -SSH (基于公钥认证方式)
创建密钥对执行:ssh-keygen -t dsa ( 或 rsa, 则之后对应文件名dsa 改为 rsa)
遇到问题直接回车即可。该命令将会在 ~/.ssh 目录下创建 id_dsa 和 id_dsa.pub
两个密钥文件,其中 id_dsa 保存私钥, id_dsa.pub 保存公钥。
设置无密码的远程登录 -SSH
在目标机器上对本机公钥授权将上一步中本机生成的公钥文件中的内容,复制到目标机器的 ~/.ssh/authorized_keys 文件中,则可以实现本机该用户对目标机器的无密码访问。•scp ~/.ssh/id_dsa.pub <target>:tmpfile
•ssh <target> “cat tmpfile >>
/.ssh/authorized_keys”
* 注:如果之前共享了 /home 目录,则每台机器上的 authorized_keys
文件实际是同一个,只需在本机操作该文件即可。
MPICH安装配置
•下载 MPICH( 最新版 1.2.7p1) : http://www-unix.mcs.anl.gov/mpi/mpich1/downloads/mpich.tar.gz
•配置 (./configure [config-args])
•编译 (make)
•安装 (make install)
•简单测试 ( 编译和执行例程 )
MPICH安装配置
一个典型配置实例:./configure -cc=gcc -c++=g++ -fc=gfortran -f90=gfortran \-rsh=ssh \ --with-device=ch_p4 \--enablef77 \--enable-f90 \ --prefix=/opt/mpich
* 注 1 :如使用 gfortran 编译器进行 Fortran 语言绑定,需要事先设定环境变量 export F77_GETARGDECL=" " 。* 注 2 : make install 安装时可能会在复制 pi3f90 报错,这实际不影响安装,是由于 src/fortran/configure 中没能自动检测到 Fortran 90 程序后缀造成的,可在该文件相关位置进行修改,使其产生正确输出。
MPICH2安装配置
一个典型配置实例:./configure --prefix=/usr/local/mpich2 \--enable-cxx \--enable-f77 \--enable-f90 \CC=icc \CXX=icpc \F77=ifort \F90=ifort
* 注: MPICH2 的 C++ 接口实现中存在一个 BUG ,这会造成在使用mpicxx 编译 C++ 程序时编译器报告 SEEK_SET 等宏被重复定义的告警信息,设置编译选项 -DMPICH_IGNORE_CXX_SEEK 可以忽略这个问题。
主要内容
• 基础知识
• MPI的配置
• 如何使用 Linux并行计算环境
如何登录和上传文件
Windows 本身不支持 SSH 登录,必须使用第三方模拟终端程序登录系统,用支持 STFP 或 SCP 的软件上传文件。
PUTTY NetTerm/SecureNetTerm Xmanager/SecureCRT.....
Linux 系统在不同的桌面环境下启动终端后,直接执行ssh 命令远程登录,用 scp 命令远程拷贝文件。
Gnome-terminal Xterm Konsole
常用路径变量
对于 BASH ,登录之后执行以下两个配置文件: .bash_profile .bashrc
需要着重注意的几个环境变量: PATH 可执行程序搜索路径 MAN_PATH man 工具手册搜索路径 LD_LIBRARY_PATH 动态链接库搜索路径
环境变量的设置会影响到编译时是否使用了正确的编译环境,是否能生成正确的可执行文件。
PBS
提交作业: qsub -l nodes=<x>:ppn=<y> -q
<queuename> scriptfile
查看和跟踪作业: qstat [-f] [jobid] tracejob <jobid>
删除作业: qdel <jobid>
作业输出信息: scriptfile.o(jobid) / scriptfile.e(jobid)
LSF
提交作业: bsub -n <cpus> -q <queuename> -o
<output> exefile args
查看和跟踪作业: bjobs [-l] [jobid] bhist <jobid>
删除作业: bkill <jobid>
作业输出信息: bsub 中 output指定
并行环境下应用软件安装移植
如软件带有 configure 自动配置程序,选择合适的参数进行配置,再进行 make 编译。
典型配置安装过程:tar zxvf <...>.tar.gz 解压(cd xxxxxx)./configure [configargs]makemake install
查看 README 、 INSTALL 文件或是 doc 目录下相关文档,或是执行 configure --help 可以了解configure 配置的相关参数含义和选项。
并行环境下应用软件安装移植
如无 configure 程序,找到关键的 Makefile 文件,并根据当前的实际环境进行修改后执行 make 进行编译。
Makefile 文件中常遇到的一些变量有:CC/CXX C/C++ 编译器FC/F77/F90 Fortran/Fortran77/Fortran90(95)编译器CFLAGS/FFLAGS 默认 C/Fortran 编译参数LDFLAGS 默认连接器参数MPICC(CXX,FC,F77,F90) 对应的 MPI 编译器XXXLIB(S) 一些需要进行链接的函数库
修改完毕后执行 make 命令进行编译,生成可执行文件。