sge的简单的应用

1、sge提交脚本qsub

  1、qsub work.sh work.sh 不能以数字开头

  2、qsub work.sh  默认工作路径为/home/username

  3、qsub -cwd work.sh  为当前路径 -wd 为指定路径!

  4、qsub -cwd -l vf=*G -q all.q *.sh

    -cwd 表示在当前路径下投递,sge的日志会输出到当前路径。

     -l vf=*G 任务的预估内存,内存估计的值应稍微大于真实的内存,内存预估偏小可能会导致节点跑挂。

    -q 指定要投递到的队列,如果不指定的话,SGE会在用户可使用的队列中选择一个满足要求的队列。

  5、qsub -cwd -l vf=*G -l h=node1 *.sh

qsub -cwd -l vf=*G -l h=node1 -P project -q all.q *.sh

    qsub –cwd  -l  h= compute-1-1,vf=nG,p=n <shell script>

    投递任务到指定节点(h) 内存(vf) cpu数量(p)P为项目名字

2、查询任务qstat

  qstat -f            查看所有任务

  qstat -j jobId   按任务id查看

  qstat -u user   按用户查看

  任务状态:

    qw    表示等待状态

    Eqw  投递任务出错

    r       表示任务正在运行

    dr     节点挂了之后,删除任务就会出现这个状态,只有节点重启之后,任务才会消失

3、任务删除qdel

  qdel -j 1111   删除任务号为1111的任务

4、其他命令

  qrsh  与qsub相比,是交互式的投递任务,注意参数:

    -now yes|no   默认设置为yes

若设置为yes,立即调度作业,如果没有可用资源,则拒绝作业,任务投递失败,任务状态为Eqw。

若设置为no,调度时如果没有可用资源,则将作业排入队列,等待调度。

     例子: qrsh -l vf=*G -q all.q -now no -w n *sh

qacct  从集群日志中抽取任意账户信息

qalter 更改已提交但正处于暂挂状态的作业的属性

qconf 为集群和队列配置提供用户界面

qhold 阻止已提交作业的执行

qhost 显示SGE执行主机(即各个计算节点)的状态信息

qlogin 启动telnet或类似的登录会话。

5、bash脚本与Linux环境变量

  为了防止脚本运行时找不到环境变量,在投递的bash脚本的前面最好加上以下两句话:

  #! /bin/bash

  #$ -S /bin/bash

6、日志查看

  1、sge会产生两个文件一个是test.sheID,一个是test.shoID其中test.sheID为错误文件。test.shoID为记录文件!

  

  调查中.....

7、sge常用命令

Sum Grid Engine常用命令

  qacct       #从群集日志文件抽取仲裁记录信息

  qalter      #更改已提交但暂挂的作业的属性

  qconf       #提供群集配置和队列配置的用户界面

  qdel        #为用户、操作员或管理员提供向作业或其子集发送信号的方式

  qhold       #阻止已提交作业的执行

  qhost       #显示执行主机的状态信息

  qlogin      #启用telnet或类似的带有自动选择的低负载、适当主机的登录会话

  qmake       #标准Unix make工具的替代工具。qmake延伸了make的功能,使其能够在一组合适的计算机之间分布一系列的make步骤。

  qmod        #使拥有者暂停或启用队列。所有与该队列相关的活动的进程也都将得到信号。

  qmon        #提供 X Windows Motif 命令界面和监视工具。

  qresub      #通过复制运行的或暂挂的作业创建新作业。

  qrls        #将作业从之前分配到的留置区域(例如,通过qhold)释放。

  qrsh        #可用于多种用途,比如以下的情形:

#<1>通过 Grid Engine 系统提供交互式应用程序的远程执行。qrsh 是标准的 Unix 工具 rsh 相比较而言。

#<2>允许提交批处理作业,执行时支持终端 I/O 和终端控制。终端 I/O 包括标准输出、标准错误和标准输入。

#<3>提供一个在批处理作业结束之前保持活动状态的提交客户机。

#<4>允许在 Grid Engine 软件控制下远程执行并行作业任务。

  qselect     #打印与指定的选择标准对应的队列名称列表。qselect 的输出通常输入到其他的 Grid Engine 系统命令,以便对选定的队列组进行操作。

  qsh         #在较轻负荷主机的 xterm 中打开交互式 shell 。 在该 shell 中,任何类型的交互式作业都可以运行。

  qstat       #提供与群集相关的所有作业和队列的状态列表。

  qsub        #将批处理作业提交到 Grid Engine 系统的用户界面。

  qtchsh      #完全兼容并可替代从普遍认同并广泛使用的 Unix C Shell(csh) 衍生出来的 tcsh。qtcsh提供的命令shell可以通过 Grid Engine软件透明地将指定应用程序的执行分布到适当且负荷较低的主机上。

###------------------------------------------------------------------------------

  qacct -j job_id   #查看指定作业的执行信息,不加job_id将显示所有作业信息

  qconf -sul  #前已配置的 ACL 列表

  qconf -sprjl    #显示项目列表

  qconf -sm   #显示 Grid Engine 系统管理人员的列表

  qconf -so   #显示操作人员列表

  qconf -sq   #显示队列和队列属性

  qconf -sql  #显示队列列表

队列属性的详细说明:

qname – 请求的队列名称。

hostlist – 与队列相关联的主机和主机组的列表。

processors – 该队列可以访问的多处理器系统的处理器。(除非必要,否则请不要修改这些参数值。)

qtype – 队列中可以运行的作业类型。当前,作业类型可为批处理或交互式。

slots – 可以和该队列同时执行的作业数。

owner_list – 队列拥有者,在管理人员、操作员和拥有者中有介绍。

user_lists – 用户访问权限列表中列在该参数下的用户或组标识符可以访问该队列。

xuser_lists – 用户访问权限列表中列在该参数下的用户或组标识符不能访问该队列。

project_lists – 列在该参数下的带有项目标识符的提交作业有权访问该队列。

xproject_lists – 列在该参数下的带有项目标识符的提交作业不能访问该队列。

complex_values – 根据提供给队列的特定属性定义集资源属性指定性能。

qconf -sel  #显示当前配置为执行主机的所有主机的名称列表

qconf -se hostname  #显示指定的执行主机的详细信息

qconf -sh   #显示具有管理权限的主机列表

qconf -ss   #显示提交主机列表

qconf -sc   #显示所配置的资源属性列表

qconf -sconf    #显示当前配置

qconf  -aprj    #添加一个新项目

qconf  -sprjl   #显示项目列表

qconf  -aq queue_name   #添加一个队列

qconf -ahgrp @host_group_name       #添加主机组,hostlist中主机列表间隔用空格

qconf -mconf        #编辑默认Shell【login_shells                 bash,sh,ksh,csh,tcsh】

qconf -aq       #显示默认队列模板

###-----------------------

qsub 参数

-cwd                     #从当前工作路径运行作业

-wd working_dir            #定义工作目录

-o  path                  #定义标准输出文件路径、文件名

-e  path                  #定义标准错误输出文件路径、文件名

-j y[es]|n[o]                #定义作业的标准错误输出是否写入到输出文件中

-now y[es]|n[o]                               #立即执行作业

-a date_time                #作业开始运行时间

-b y[es]|n[o]                #指定运行程序是二进制文件还是脚本文件,默认n

-m b|e|a|s|n              #定义邮件发送规则。b:作业开始时发送。e:作业结束时发送。a:作业失败时发送 s:作业挂起时发送。n:不发送

-M user[@host]             #定义邮件地址

-l resource=value           #表明作业运行所需要的资源。【-l arch=solaris64,h_vmem=750M,permas=1】

-N job_name               #重命名作业名

-q queue_name             #定义作业运行队列

-S shell_path               #指定运行Shell环境

-P project_name             #定义项目名称,前提是存在该项目

-p priority                 #定义优先级,-1023 到 1024 , 默认值0

-r y[es]|n[o]               #定义作业失败后是否重新运行

-v variable                 #定义环境变量

-dl date_time               #定义作业到期时间,在作业到期时间之前,作业的优先级会逐步提高,直到管理员指定的最高级别。

-hold_jid wc_job_list       #定义作业的依赖关系,制定作业需要在指定作业正常结束后才可以开始运行。wc_job_list 可以是JOB ID或作业名

-hold_jid_ad wc_job_list    #定义阵列作业的依赖关系

-R y[es]|n[o]               #定义是否为作业保留资源

-hard                       #定义作业被调度的硬性要求

时间: 2024-09-30 05:30:11

sge的简单的应用的相关文章

SGE学习笔记

命令: qsub   -  submit a batch job to Grid Engine. qsh    -  submit an interactive X-windows session to Grid Engine. qlogin -  submit an interactive login session to Grid Engine. qrsh   -  submit an interactive rsh session to Grid Engine. qalter -  mod

C# Ping 简单使用

编程过程中,有时候需要判断主机是否在线,最简单的方法就是使用Windows的Ping命令看看能否ping通.看到网上很多文章,说用C#去调用windows的ping.exe,然后解析返回的字符串.我觉得这种方式太麻烦了,就做一下简单判断,不想弄那么麻烦. 查了一下,C#专门提供了一个Ping类,与Windows下的ping命令类似: 命令空间: System.Net.NetworkInformation; 使用方法: bool online = false; //是否在线 Ping ping =

自动生成简单四则运算的C语言程序

该程序是在博客园里面找的,具体是谁的找了半天没找到,无法提供它原本的链接.由于自己写的过于简单,且有一些功能暂时无法实现,所以就找了一个来应付作业,望原谅.在这个程序的源码中我改了一个错误的地方,源码中有这样一个随机数发生器的初始化函数的语句:"srand((unsigned)time(NULL))".srand函数是随机数发生器的初始化函数.但是正确的写法应该是:srand(unsigned( time(NULL))):为了防止随机数每次重复,常常使用系统时间来初始化,即使用time

Mysql的锁机制与PHP文件锁处理高并发简单思路

以购买商品举例: ① 从数据库获取库存的数量. ② 检查一下库存的数量是否充足. ③ 库存的数量减去买家购买的数量(以每个用户购买一个为例). ④ 最后完成购买. 仅仅这几行逻辑代码在并发的情况下会出现问题,自己可以想象一下. 这里暂时就不测试了,下面会针对并发的处理给出测试结果. 创建表: CREATE TABLE `warehouse` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id', `stock` int(11) NOT NULL

Winfrom 简单的安卓手机屏幕获取和安卓简单操作

为啥我要做这个东西了,是因为经常要用投影演示app ,现在有很多这样的软件可以把手机界面投到电脑上 ,但都要安装,比如说360的手机助手,我又讨厌安装,于是就自己捣鼓了下 做了这个东西, 实现了以下简单功能   1.屏幕获取(因为是截图方式获取的,所以有点卡顿) 2.实现点击功能,并在点击的时候出现一个手势图标,方便用户观看 3.实现简单的滑动功能 4.实现在界面上画图功能 5.实现拖拽安装apk功能 操作说明:鼠标左边 模拟手机点击,中键停止/开始刷新界面(画图的时候不能刷新),右键去掉画图内

iOS instruments之ui automation的简单使用(高手绕道)

最近使用了几次instruments中的automation工具,现记录下automation的简单使用方法,希望对没接触过自动化测试又有需求的人有所帮助.  UI 自动测试是iOS 中重要的附加功能,它由名为"Automation"的新的工具对象支持.Automation工具的脚本是用JavaScript语言编写,主要用于分析应用的性能和用户行为,模仿/击发被请求的事件,利用它可以完成对被测应用的简单的UI测试及相关功能测试. 一. 简单的录制脚本 打开xcode,这里用我为我家亲爱

Android ExpandableListView 带有Checkbox的简单应用

expandablelistview2_groups.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height=&qu

Android ExpandableListView的简单应用

Expandablelistview1Activity.java package com.wangzhu.demoexpandablelistview; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.os.Bundle; import android.widg

一个简单的主机管理模拟程序

最近写的一个小练习,主要是把前面学的东西整合一下.写了一个简单的主机管理界面,主要是练习以下知识点: Session和Cookie进行登录验证(装饰器) 数据库的基本操作 (单表,1对多,多对多) Form的简单使用实现验证 Bootstrap模板写个简单界面 自定义分页 信号,中间件,CSRF,模板语言,JavaScript,AJAX等等 界面比较low,毕竟不是专业的. 附件里面是Django的源代码,3个文件放在一起winrar解压就可以打开