我怎样才能qstat给我完整的工作名称?
我知道qstat -r提供有关任务的详细信息,但它太多了,并且包含了资源要求.
该qstat -r输出是这样的:
131806 0.25001 tumor_foca ajalali qw 09/29/2014 15:49:41 1 2-100:1
Full jobname: tumor_focality-TCGA-THCA-ratboost_linear_svc
Hard Resources: distribution=wheezy (0.000000)
h_rt=72000 (0.000000)
mem_free=15G (0.000000)
h_vmem=15G (0.000000)
h_stack=256M (0.000000)
Soft Resources:
131807 0.25001 vital_stat ajalali qw 09/29/2014 15:49:41 1 2-100:1
Full jobname: vital_status-TCGA-LGG-ratboost_linear_svc
Hard Resources: distribution=wheezy (0.000000)
h_rt=72000 (0.000000)
mem_free=15G (0.000000)
h_vmem=15G (0.000000)
h_stack=256M (0.000000)
Soft Resources:
Run Code Online (Sandbox Code Playgroud)
现在我唯一的选择就是根据grep需要输出:
$ qstat -r | grep "Full jobname" -B1
--
131806 0.25001 tumor_foca ajalali qw …Run Code Online (Sandbox Code Playgroud) 我有一个qsub脚本
#####----submit_job.sh---#####
#!/bin/sh
#$ -N job1
#$ -t 1-100
#$ -cwd
SEEDFILE=/home/user1/data1
SEED=$(sed -n -e "$SGE_TASK_ID p" $SEEDFILE)
/home/user1/run.sh $SEED
Run Code Online (Sandbox Code Playgroud)
问题是 - 它将所有错误和输出文件(job1.eJOBID和job1.oJOBID)放在我运行qsub submit_job.sh的同一目录中,而我想保存这些文件(输出和错误日志文件在相同的不同place(指定为$ SEED_output).我试图将行更改为
/home/user1/run.sh $SEED -o $SEED_output
Run Code Online (Sandbox Code Playgroud)
但它没有用.有什么建议?? 如何指定默认输出和错误日志文件的路径和名称?
我正在运行程序,它被Segmentation fault中断.问题是核心转储文件已创建,但大小为零.
你听说过这样的案件以及如何解决吗?
我在磁盘上有足够的空间.我已经执行ulimit -c unlimited了无限制核心文件的大小 - 运行它或放在提交的批处理文件的顶部 - 但仍然有0字节的核心转储文件.包含这些文件的文件夹的权限是uog + rw,创建的核心文件的权限仅为u + rw.
该程序是由C++编写的,并使用Grid Engine的qsub命令在linux集群上提交,我不知道这些信息是否与此问题相关.
我有200多个工作需要提交给sge集群.我将把它们提交给两个问题.其中一个问题是我不想提交工作的机器.我怎样才能排除那台机器?我发现的唯一可能有用的是(假设q1有三个有效节点,q2的所有可用节点都有效):
qsub -q q1.q@n1 q1.q@n2 q1.q@n3 q2.q
Run Code Online (Sandbox Code Playgroud) 如何在SGE中提交作业时请求节点数(不是procs)?
例如在TORQUE中,我们可以指定 qsub -l nodes=3
如何在SGE中按名称请求节点?
比如,对于Torque,我们可以做到这一点qsub -l nodes=abc+xyz+pqr,在那里abc,xyz并且pqr是主机名
对于单个主机名,qsub -l hostname=abc它可以工作.但是如何在SGE中划分多个主机名?
有没有办法列出使用qstat或其他SGE命令执行Sun Grid Engine作业的节点?
我必须使用python脚本获取此信息.我已经弄清楚如何从python执行SGE命令,但我没有找到列出特定作业的执行节点的解决方案.我试图列出已完成的工作
qsub -s z -f -F
Run Code Online (Sandbox Code Playgroud)
但执行该作业的主机名称不会出现在此列表中.有人可以帮我吗?
我想通过qsub在Sun Grid Engine上提交作业(现在:Oracle Grid Engine?).我不希望使用-sync yes选项或qrsh,因为我希望我的控制程序是单线程的,并且能够一次启动多个作业.这些选项会阻止我的控制程序的线程.
但是,我想收到我发布的进程的退出状态.从手册页中,似乎无法在不阻塞我的线程的情况下获取此代码.如果没有修改我正在启动的作业以将其退出代码打印到stdout,是否有任何方法可以获得此状态?
是否可以在bash脚本中的注释中扩展变量?
我想写一个脚本来提供给SGE.该qsub语法允许我将其他参数传递到使用bash脚本与开始内部线网格引擎#$.例如,
#$ -q all.q
#$ -S /bin/bash
#$ -V
#$ -m beas
#$ -o run_20120103.out
Run Code Online (Sandbox Code Playgroud)
我想要的是,-o参数是动态设置为变量的$1.所以我会天真地写
#$ -o run_${1}.out
Run Code Online (Sandbox Code Playgroud)
但是,由于行以a开头#,bash忽略它并且变量$1未展开.
有任何想法吗?一些bash预处理器?还有其他方法吗?
编辑我只是选择了$1一个例子.它也可以$FOO或$BAR.
我想要qdel一系列具有连续ID的工作.例如:
qdel 18280 18281 18282 18283 18284 18285
Run Code Online (Sandbox Code Playgroud)
想象一下像这样的更长的连续ID列表.我显然不必手动打字.有更简单的方法吗?
在SGE/PBS中,我可以像在本地一样向集群提交二进制可执行文件.例如:
qsub -b y -cwd echo hello
Run Code Online (Sandbox Code Playgroud)
将提交一个名为echo的作业,该作业将"hello"一词写入其输出文件.
我如何向SLURM提交类似的工作.它希望文件在第一行有一个hash-bang解释器.在SLURM我得到
$ sbatch echo hello
sbatch: error: This does not look like a batch script. The first
sbatch: error: line must start with #! followed by the path to an interpreter.
sbatch: error: For instance: #!/bin/sh
Run Code Online (Sandbox Code Playgroud)
或使用pseuodo qsub:
$ qsub echo hello
There was an error running the SLURM sbatch command.
The command was:
'/cm/shared/apps/slurm/14.11.3/bin/sbatch echo hello 2>&1'
and the output was:
'sbatch: error: This does not look like a batch script. …Run Code Online (Sandbox Code Playgroud)