资源描述:
《并行编程环境设置和注意事项》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、并行编程环境设置和注意事项一.远程登陆服务器请同学们使用服务器分配的原始密码通过SSH工具登陆到实验集群的登陆节点:202.38.192.99,然后使用命令passwd对初始密码进行修改。PS:Linux下密码不可见。接着在自己的账号下使用命令mkdir命令建立2个目录:OpenMP,MPI用来存放不同实验数据和文档。二.跳转计算节点本次实验除了LC的登陆头节点(202.38.192.99)还有4个计算节点,分别是C0-0,c0-1,c0-2,c0-3。使用命令ssh可以从当前节点转到计算节点,例如sshc0-1则可从当前节
2、点转到计算节点c0-1,其他如此类推。MPI实验在登陆节点上运行程序一定要加-nolocal或者-machinefile参数,禁止使用登陆节点计算。三.设置编译环境使用命令vi~/.bash_profile设置环境变量,添加路径如下文,然后使用.~/.bash_profile(注意~前有个点+空格)使设置生效,整个操作过程如下:[lp.zh@bl6000~]$vi~/.bash_profile#.bash_profile#Getthealiasesandfunctionsif[-f~/.bashrc];then.~/.bas
3、hrcfi#UserspecificenvironmentandstartupprogramsPATH=/opt/mpich-1.2.7pl/bin:/opt/intel/Compiler/11.0/069/bin/ia32:$PATH:$HOME/bin:/usr/sbinLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:opt/mpich-1.2.7pl/lib/:/opt/intel/Compiler/11.0/069/lib/ia32exportPATHexportLD_LIBRAR
4、Y_PATHunsetUSERNAME[lp.zh@bl6000~]$.~/.bash_profile然后使用whichmpirun命令检测路径,如果屏幕显示/opt/mpich/gnu/bin/mpirun表明设置成功。如下所示:[lp.zh@bl6000~]#whichmpirun/opt/mpich-1.2.7pl/bin/mpirun一.清除异常进程请明确你的程序在哪个节点上运行,万一出现问题你必须停止(kill)该节点上的程序进程。请不定时对你所在的节点进行查询,以观测你的进程是否还在上面正常运行,命令如下(使用自
5、己的用户名取代username):ps-aux
6、grepusername另外,对出现问题的进程必须停止,命令如下(pid为进程号):kill-9pid二.清除异常信号量可以使用ipcs-a命令检查是否存在大量残留信号量。运行MPICH安装目录下的清理程序。路径在/opt/mpich/gnu/clean/cleanipcs。需要清理frontend和计算节点的。一.编译运行OpenMP程序以OpenMP实验附录的程序Helloworld.c为例:[lp.zh@bl6000OpenMp]$icc-openmp-oHellowor
7、ldHelloworld.cHelloworld.c(10):(col.1)remark:OpenMPDEFINEDREGIONWASPARALLELIZED.[lp.zh@compute-0-1OpenMp]$./HelloworldHello,worldfromOMPthread0Numberofthreads2Hello,worldfromOMPthread1二.编译运行MPI程序编译:mpiccsrc.c或者mpicxxsrc.cpp默认用gcc作为编译器,一般mpicc–O2可获得不错的优化后的程序运行:mpiru
8、n[参数][执行文件]-nolocal参数,不要在frontend上执行计算任务。-np参数,指定进程数目-machinefile参数,指定机器,推荐使用该参数,可以避免信号传输过程中的一些错误。默认使用/opt/mpich-1.2.7pl/binMpirun–machinefilemyfile,其中myfile指定自己想要按顺序执行的机器目录,格式为:compute-0-6.localcompute-0-7.localcompute-0-1.local。。。顺序可以自由设置,若不使用,mpich将机械地从头(节点1)开始选
9、择机器。高级:可使用SGE、PBS乃至ganglia来生成machinefile,自动选择较为不忙的机器)以OpenMP实验附录的KMP串匹配MPI程序为例:编译:gccgen_pat.c–ogen_patmpicckmp.c–okmp运行:首先运行gen_ped生成模式串,gen_ped