LSF简易使用手册(2011-02-2214:28:19)LSF(LoadSharingFacility)是由platform公司开发的分布资源管理工具。它用来调度、监视、分析联网计算机的负载,可以对Cluster机群的资源统一调度和监控。一LSF使用方法1、设置环境变量:用户使用LSF前,应设置相应的环境变量:csh用户,登录系统后执行source/export/lsf/conf/cshrc.lsfbash用户,登录系统后执行./export/lsf/conf/profile.lsf用户也可写入.cshrc或.bashrc,则登录后就能设置相应的环境变量。2、提交作业LSF使用bsub命令来提交作业。bsub命令常见用法如下:bsub–nz–qQUEUENAME–iinputfile–ooutputfileCOMMAND其中z代表了提交作业需要的cpu数,–q指定作业提交到的队列,创建时间:2006-12-1215:54:001如果不采用–q选项,系统把作业提交到默认作业队列(作业队列详细介绍请看下一节)。inputfile代表程序需要读入的文件名(例如namelist等),outputfile代表一个文件,作业提交后标准输出的信息将会保存到这个文件中。COMMAND是用户要运行的程序。(1)对于串行程序COMMAND可以直接使用用户的程序名例如,对一个运行时间12小时内完成的串行作业mytest,提交方式为:bsub–n1–qQS_Norm–omytest.out./mytest(2)对于并行作业COMMAND为“–ampich_gmmpirun.lsf程序名”因为并行作业必须用到MyriNET库,所以提交的时候必须使用–ampich_gmmpirun.lsf例如对于一个12个小时内完成,使用16个cpu的并行作业mytest,提交方式为:bsub–n16–qQN_Norm–omytest.out–ampich_gmmpirun.lsf./mytest目前,系统规定每个用户最多只能使用16个cpu。3、使用脚本提交作业bsub命令可以使用输入脚本多次提交具有相同参数的作业,格式为:创建时间:2006-12-1215:54:002#BSUB–nZ#BSUB–qQUEUENAME#BSUB–oOUTPUTFILECOMMAND该脚本的参数与命令行“bsub–nZ–qQUEUENAME–ooutputfileCOMMAND”参数相同。提交时为bsub脚本名例如要提交一个12小时内完成,需要16个cpu的并行作业mytest,可以编写作业脚本bsub.scriptfile#BSUB–n16#BSUB–qQN_Norm#BSUB–omytest.out–ampich_gmmpirun.lsf./mytest作业提交方法为:bsubbsub.scriptfile二、LSF队列状况LSF分了如下几个作业组:1、长时间并行作业组(LSF管理)(1)QL_Norm队列创建时间:2006-12-1215:54:003该队列用于运行长时间并行作业,作业不限执行时间。作业规模限制为:最多使用16个CPU。2、串行作业组(LSF管理)(1)QS_Norm队列该队列用于串行短时间作业,最长作业执行时间为12小时。(2)QS_Long该队列专用于长时间串行作业,作业不限执行时间。3、短时间并行作业组(LSF管理)(1)QN_Norm队列该队列用于运行短时间并行作业,最长作业执行时间为12小时。(2)QN_Debug队列该队列用于调试或试算,最长作业执行时间为5分钟。请用户根据自己的需求,选择适当的作业组进行作业提交。附:队列命名潜规则新的队列命名遵循一定的潜规则,下面详细解释队列名中各字母的含义:QL_Norm:Q代表queues;L代表long,表示该队列运行长时间并行作业;QN_Norm:Q代表queues;N代表normal,表示该队列运行短时间并行作业;QS_Norm:Q代表queues;S代表serial,表示该队列运行短时间串行作业;QS_Long:Q代表queues;S代表serial,表示该队列运行串行作业;Long表示长时间运行;(同中科院网络中心深腾6800)三查看作业状态和删除作业等几个常用的指令:bjobs检查提交作业状态bjobsbjobs-wbjobs–r显示正在运行的作业bjobs–a显示正在运行的和最近完成的作业bjobs-p显示等待运行的作业和等待原因bjobs–s显示正在挂起的作业和挂起的原因bjobs-l显示该作业的所有信息bhist显示最近完成作业或正在运行作业的历史情况bhistjobidbkill删除不需要的作业bkilljobidbkill–rjobidbpeek当作业正在运行时显示它的标准输出,监视作业运行bpeekjobidbqueues显示队列信息bqueuesbqueues–lqueuenamebhosts显示各节点作业相关情况bhostsbhostshostnamelsload显示各节点负载信息lsloadlsloadhostnamelshosts处理各节点静态资源信息lshostslshostshostaname作业提交(命令行方式)l队列设置(bqueues命令查看):Parallel:此队列有64个节点,计算网络是infiniband(40G),每个节点有12个计算核心,24G内存;适合跨节点并行计算。smp_high:此队列有40个节点,计算网络是以太网,每个节点有12个计算核心,24G内存;适合单节点内并行,或少量节点间通信的跨节点并行计算。smp:此队列有48个节点,计算网络是以太网,每个节点有8个计算核心,24G内存;适合单节点内并行,或少量节点间通信的跨节点并行计算。l应用设置(bapp命令查看):amberg03gaussian(g09)gromacsmsl脚本范例Amber(把下面内容编写成脚本)#BSUB-qsmp(选择队列)#BSUB-appamber(应用)#BSUB-o%J.out(结果输出文件,以作业号为文件名)#BSUB-o%J.err(错误输出文件,以作业号为文件名)#BSUB-aopenmpi(编译器)#BSUB-n8(计算核心的数量)mpirun.lsfsander.MPI-O-imin_2ojn.in-omin_2ojn.out-p2ojn.top-c2ojn.crd-rmin_2ojn.rst-infmin_2ojn.infG03(把下面内容编写成脚本)#BSUB-qsmp(选择队列)#BSUB-appg03(应用)#BSUB-k/lustre/home/wangxj60(保存断点,作业停了可以继续运行)#BSUB-o%J.out(结果输出文件,以作业号为文件名)#BSUB-n8(计算核心的数量)g031reo6T-3.gjfG09(把下面内容编写成脚本)#BSUB-qsmp_high(选择队列)#BSUB-appgaussian(应用)#BSUB-o%J.out(结果输出文件,以作业号为文件名)#BSUB-e%J.err(错误输出文件,以作业号为文件名)#BSUB-n12(计算核心的数量)#BSUB-Rspan[hosts=1](12个计算核心在一台机器上)g09TS3-4_3.comGromacs(把下面内容编写成脚本)#BSUB-qparallel(选择队列)#BSUB-appgromacs(应用)#BSUB-aintelmpi(MPI)#BSUB-o%J.out(结果输出文件,以作业号为文件名)#BSUB-e%J.err(错误输出文件,以作业号为文件名)#BSUB-n12(计算核心的数量)#BSUB-Rspan[ptile=6](每个节点用6个计算核心)mpirun.lsfmdrun-v-smd.tpr-cmd.gro-emd.edr-omd.trr-gmd.logMS5.5(把下面内容编写成脚本)#!/bin/sh#BSUB-qparallel#BSUB-appms#BSUB-o%J.out#BSUB-e%J.err#BSUB-n12#BSUB-Rspan[ptile=6]#BSUB-Rrusage[mslic=1](判断模块license是否被占用)/home/msi/Accelrys/MS55_IB/etc/DMol3/bin/RunDMol3.sh-np2A(IB网络)或者/home/MS55/Accelrys/etc/DMol3/bin/RunDMol3.sh-np2A(不限网络)Fluent(把下面内容编写成脚本)#!/bin/sh#BSUB-qparallel#BSUB-appfluent#BSUB-o%J.out#BSUB-e%J.err#BSUB-n12fluent3d-itest.jou-t8-gMatlab(把下面内容编写成脚本)#!/bin/sh#BSUB-qparallel#BSUB-appmatlab#BSUB-o%J.out#BSUB-e%J.err#BSUB-n1matlab-nodisplay-rexample(example---example.m文件)并行程序(自编)自己编写程序提交方式,在配置文件中添加:source/home/apps/intel/ictce/4.0.0.020/ictvars.sh脚本样例:#BSUB-qsmp#BSUB-n8#BSUB-o%J.out#BSUB-e%J.err#BSUB-aintelmpimpirun.lsf./并行可执行文件作业提交bsub脚本名