Transcript Linux
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] make make 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命令进行编译,生成可执行文件。