标签: lsf

自动检索bsub的结果

我正在寻找一些一般性建议而不是编码解决方案。基本上,当通过 bsub 提交作业时,我可以通过指定以下任何一项来检索 Stdin/Stdout 的日志:

bsub -o log.txt      % sends StdOut to log.txt
bsub -u me@email     % sends StdOut to email
Run Code Online (Sandbox Code Playgroud)

这些都很棒,但是我的程序在提交给 bsub 时会创建一个文件夹并存储在远程服务器上。基本上我想

a) 检索文件夹及其内容 b) 作业完成后自动执行此操作

所以我可以在技术上使用scp -r,但是我必须手动执行此操作。如果我在工作完成后收到电子邮件警报,那还不错,但仍然 - 我必须手动执行此操作。

所以到 b):

好吧,我看不到 bsub 检索实际结果的任何特殊标志,只有 StdOut。我我可以有一个脚本来使用sleep并设置工作时间(为了安全起见,可能会有点徘徊),比如

#!/bin/bash

scp myfile.txt server:main/subfolder
ssh bsub < myprogram.sh -u my@email
sleep <job-time>
scp -r server:main/subfolder result_folder 
Run Code Online (Sandbox Code Playgroud)

但是我有点担心被注销等和脚本在工作完成之前终止。

有没有人有什么建议?

我本质上想要一个界面(将来的网站),用户可以在其中提交文件,远程分析文件,在工作开始/完成时向用户发送电子邮件,结果自动检索回本地/网络服务器,用户收到电子邮件说他们可以选择他们的结果。

一步一步!

php bash hpc lsf slurm

5
推荐指数
1
解决办法
503
查看次数

检查我的作业在 LSF 队列中的位置

有没有办法检查我的作业在LSF队列中的位置?

如果我运行:

bjobs -u all -q my_queue

我从 中的所有用户那里获得了作业列表my_queue,但是该列表是按我的作业在队列中的位置排序的吗?

job-scheduling lsf

3
推荐指数
1
解决办法
4658
查看次数

在LSF作业数组中引用作业索引

我正在尝试将作业数组中的作业索引作为参数传递给另一个bash脚本.

numSims=3 
numTreatments=6 # uses numTreatments top rows of parameters.csv
maxFail=10
j=1
while [ $j -le $numSims ];
do
    bsub -q someQueue -J "mySim[1-$numTreatments]%2" ./another_script.sh $LSB_JOBINDEX $j $maxFail
    let j=j+1
done

这里的最终想法是为1,... numTreatments,numSims作业(模拟)中的每一个提交.我想一次运行两个工作(%2).输出的格式为XX_indexNumber_simNumber,其中indexNumber从1开始运行,...,numTreatments以及从1开始的simNumber,...,numSims.

理想情况下,作为此脚本的一部分提交的所有内容都具有相同的作业ID.这尚未正确设置,因为具有相同作业的所有作业j都被分配了不同的作业ID.我的直接问题是another_script.sh没有识别$LSB_JOBINDEX为输入 - 它看到$j并且$maxFail作为第一个也是唯一两个传递的参数.当我用一些其他变量代替时$LSB_JOBINDEX,没有问题.我究竟做错了什么?


编辑 -有些事情我已经试过:"$LSB_JOBINDEX",${LSB_JOBINDEX},%I,和I=$LSB_JOBINDEX; bsub ... $I $j $maxFail

bash jobs hpc lsf

2
推荐指数
1
解决办法
2565
查看次数

用于提交命令的os.system

我正在使用os.system向系统提交命令.

也就是说,

import os
os.system(my_cmd)
Run Code Online (Sandbox Code Playgroud)

但我想知道如何获得输出,即,让我们说我在bash中并输入我的cmd,我会得到这种形式的输出:

Job <57960787> is submitted to queue <queueq>.
Run Code Online (Sandbox Code Playgroud)

我怎样才能在python中使用os.system(cmd),获取文本输出,并解析它以获取作业ID,57960787.

谢谢!

python lsf

2
推荐指数
1
解决办法
996
查看次数

从perl脚本运行bsub命令

我试图通过以下方式从perl脚本运行bsub命令:

system ("bsub -select "testid::1" -q normal");
Run Code Online (Sandbox Code Playgroud)

但我认为perl因为双引号而变得混乱"testid::1".实现这个的正确方法是什么?

shell perl lsf

1
推荐指数
1
解决办法
766
查看次数

如何在lsf中启动多线程mpi进程?

我想用LSF提交一份工作:

  • 并行运行在4个节点上
  • 每个节点都有一个mpi进程
  • 每个进程有12个线程

在没有LSF的情况下,我只需在4个节点上启动mpi,例如:

mpirun -hosts host1,host2,host3,host4 -np 4 ./myprocess --numthreads = 12

但是,在LSF存在的情况下,我看不出怎么做?我确信这可能是一种非常标准的方法,但我对LSF来说还是个新手.我用Google搜索,但答案对我来说并不是很明显.我在LSF中发现了混合MPI/OpenMP,但它似乎并不完全相同,似乎一次只需要一台主机.

multithreading distributed-computing mpi openmp lsf

0
推荐指数
1
解决办法
4086
查看次数