ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

OpenLava极简用户教程

2021-06-27 10:31:20  阅读:549  来源: 互联网

标签:极简 教程 Host 机器 队列 任务 job bsub OpenLava


本文转至:http://blog.eetop.cn/blog-1751000-6943731.html

Openlava是什么

Openlava脱胎于IBM的lsf(两者命令和用法基本相同),是一个免费、开源的工作负载调度程序,支持HPC(高性能计算),是IC应用环境下主流的任务分发和调度工具。

 

 

Openlava术语:

使用openlava我们需要了解如下基本概念:

- Job

任务,用户工作的一个抽象,对应着一条任务指令。

- Host

机器,任务分发和任务执行的机器。

- Queue

队列,多个Host(机器)组成一个队列,用于为指定类型的任务(Job)提供一组资源池。

 

其中Host分为如下三类:

- Execution Host

计算节点,用于接收并执行任务。

- Submission Host

任务分发节点,一般和Execution Host是分开的,仅用于分发任务,不接收和执行任务。

- Master Host

主控节点,一般和Execution Host及Submission Host都是分开的,仅用于收集负载和状态信息,管理任务。

 

 

 

Openlava命令:

常用基本命令

基本命令

用法

bsub

提交任务到openlava

bjobs

查看任务状态和基本信息

bkill

杀死未完成的任务

bqueues

查看队列状态和基本信息

bhosts

查看机器状态及基本信息

lshosts

查看机器资源状态

lsload

查看机器负载状态

 

- bsub

%bsub -q [queueName] : 指定队列,如果不指定,则任务会提交到默认队列(一般是normal)。

%bsub -m [hostName] : 指定机器,任务将会被提交到指定的机器上运行(需要确保机器在当前队列中)。

%bsub -P [projectName] : 指定项目,一般用于标识和统计。

%bsub -Is : 投递任务的时候用shell模式启动一个终端,并将任务投递到上面以交互式运行。这种模式一般用于启动带图形界面的工具,启动需要交互式的工具,将标准输出打印到当前窗口,或者为了阻塞式运行任务(任务运行期间bsub不退出)。

%bsub -o [fileName] : 保存任务的标准输出到指定的文件,这个模式和”-Is”相冲突,但是可以和”-e”叠加使用。

%bsub -e [fileName] : 保存任务的标准错误到指定的文件,这个模式和”-Is”相冲突,但是可以和”-o”叠加使用。

%bsub -n [number] : 指定为当前任务保留多少cpu处理器。

%bsub -R [resourceString] : 指定为当前任务的资源需求。

 

示例:

* 当前任务为virtuoso(图形界面), 任务投递到队列GUI,所属项目为ABC,预计需要4个cpu核(在同一台机器)和10G内存,则任务投递方式为:

bsub  -q GUI  -P ABC  -Is  -n 4  -R “span[hosts=1] rusage[mem=10240]”  “virtuoso”

* 当前任务为liberate,任务投递到默认队列,所属项目为ABC,需要保存标准输出和标准错误,预计1个cpu核足够, 要求投递的机器剩余内存大于100G,剩余swap大于100G,剩余tmp空间大于30G,则任务投递方式为:

bsub  -P ABC  -o lsf.log  -e lsf.log  -R “select[mem>=102400 && swap>=102400 && tmp>=30720]”  “liberate liberate.tcl”

 

- bjobs

%bjobs : 查看当前用户所有的未完成job。

%bjobs -a : 查看当前用户在一段时间内所有的job,包括已完成和未完成的job。

%bjobs -UF [jobId] : 查看指定job的详细信息。

 

- bkill

%bkill 0 : 杀死当前用户所有的job。

%bkill -r [jobId] : 强制杀死指定的job。

 

- bqueues

%bqueues : 查看所有队列的job状态。

 

- bhosts

%bhosts : 查看所有机器的job状态。

 

- lshosts

%lshosts : 查看所有机器的资源状况。

 

- lsload

%lsload : 查看所有机器的负载状况。

 

 

扩展知识

1. 从队列详细信息我们能够到什么

MAX : 队列的理论最大slots可用数目,此队列最多可以占用60 slots。

JL/U : 队列个人slots限制,每个人在这个队列中最多可以占用5 slots。

NJOBS/PEND/RUN/SSUSP/USUSP/RSV : 当前队列上的作业情况。

RUNLIMIT : 队列的运行时间限制,10080 min即7天,队列上的任务运行时间达到7天会被kill掉。

USERS : 哪些用户或者用户组可以使用这个队列。

HOSTS : 哪些机器或者机器组在这个队列中。

 

2. 从任务详细信息中我们可以得到什么

对于RUN/DONE/EXIT状态的job,我们可以从job的详细信息中获取:

任务的分发参数,包括Project, Queue, Command, Processors Requested, Requested Resources等。

机器信息,包括投递机器(Submitted from)和执行机器(Dispatched to)。

时间信息,包括投递时间和执行时间。

用户信息(User)。

目录信息(CWD)。

有些job还可以看到资源用量信息,包括CPU time, MEM, SWAP等。

 

对于PEND状态的job,我们则可以额外获取“PENDING REASONS”这一重要信息。

Openlava的用户经常有这种困惑,为什么我的job投递出去,但是总是PEND的状态跑不起来?一般而言常见的PEND原因无非以下几种:

Limits on the number of job slots that are configured for a queue, a host, or a user

运行job的数目达到了queue设置的上限。
AvAIlability of the specified resources

没有机器满足指定的资源条件。
Job dependency and pre-execution conditions

Job的依赖关系不被满足。

Relative priority to other users and jobs

优先级低。

Start time that is specified by the user when the job is submitted

用户指定了job开始时间(开始时间之前都是PEND的状态)
Load conditions on qualified hosts

不满足机器上的载入条件。
Dispatch windows during which the queue can dispatch and qualified hosts can accept jobs

queue设置了调度时间窗口,调度窗口之内job都是PEND的状态。
Run windows during which jobs from the queue can run

queue设置了运行时间窗口,时间窗口之外job都是PEND的状态。

标签:极简,教程,Host,机器,队列,任务,job,bsub,OpenLava
来源: https://www.cnblogs.com/scandit/p/14940008.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有