问题标签 [lsf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 在 Linux 服务器上更改平台 LSF 作业脚本上的 python 版本
我想在 LSF 上执行我的 python 代码,问题是返回
在 lsf 中是
2.6.6 (r266:84292, Jul 22 2015, 16:47:47) [GCC 4.4.7 20120313 (Red Hat 4.4.7-16)]
但是我的代码是为 python2.7 编写的。如何将正确版本的 python 更改或分配给 LSF 作业脚本。
python - 在 drmaa-python 中将作业数组索引作为参数传递
我正在使用 lsf-drmaa 实现并通过 drmaa-python 进行接口。我通常将环境变量 $LSB_JOBINDEX 作为参数传递到我的 run.sh 脚本中。通过 drmaa-python,我创建JobTemplate jt
并希望将其作为参数传递。我曾尝试使用 PARAMETRIC_INDEX,但此命令对我不起作用:jt.args = [str(drmaa.JobTemplate.PARAMETRIC_INDEX)]
.
我收到以下错误:
我在哪里出错和/或如何使用另一种方法传入索引?谢谢 -
python-3.x - 运行多个 Python 代码实例的覆盖和错误
我是一名物理专业的学生,试图运行具有随机元素的与研究相关的模拟。模拟可以分成几个非交互部分,每个部分随机演变,因此不需要运行之间的交互。
我稍后会使用不同的代码/文件来分析所有作业返回的结果(与问题无关,仅提供清晰的背景图片来说明正在发生的事情)。
我使用该研究所的 HPC(我将其称为“集群”)运行我的代码的多个副本,这是一个不从任何其他文件读取任何内容的单个 .py 文件(但会创建输出文件)。代码的每个副本/实现都应该为代码的每个单独实现创建一个唯一的工作目录,os.makedirs(path,exist_ok=True)
然后使用os.chdir(path)
. 我已经多次尝试运行它,以以下行为类型结束:
- 一些阵列作业运行良好且表现良好。
- 其他,相互覆盖(即job1和job2都写入job1目录中的.txt文件)
- 其他人只是明确表示根本没有创建目录,但也没有死,所以我猜他们会继续运行并可能将我的数据写入我不知道且无法访问的地方。
这些行为对我来说似乎是完全随机的,因为我事先不知道哪个数组作业可以完美运行,哪个作业具有行为 2、行为 3 或两者兼有(对于大型job-array,我将有一些工作运行良好,一些显示行为 2,一些显示行为 3,以及仅 2 或仅 3)。
我几乎尝试了所有可以在网上找到的东西,例如我在某处读到一个常见的问题os.makedirs
是关于一个umask
问题,并且os.umask(0)
在调用之前添加是一种很好的做法,所以我添加了它。我有时也读过一个集群可能会挂断,所以调用time.sleep
几秒钟然后再试一次可能会起作用,所以我也这样做了。还没有解决问题...
我附上了代码的一部分,这可能是检查的罪魁祸首,我之前在代码中设置的数字是哪里N,L,T
,DT
我还导入了库等(请注意,办公室计算机运行 Windows,而集群运行 Linux,所以我仅用于os.name
根据我正在运行的操作系统设置我的目录,以便代码无需修改即可在两个系统上运行):
集群的环境是 LSF 环境。为了运行我的代码的多个实现,我使用“arrayjob”命令,即使用 LSF 将相同代码的多个实例(在本例中为 100 个)发送到集群中不同(或相同)主机上的多个不同 CPU。
我还附上了显示我上面描述的错误的示例。行为 2 的示例是以下输出文件:
像这样的 .txt 文件,用于跟踪代码的进度,通常由每个作业单独创建并存储在自己的目录中。在这种情况下,由于某种原因,两个不同的作业正在写入同一个文件。当观察在创建目录并确定工作目录后立即创建的不同 .txt 文件时,可以验证这一点:
我非常感谢我能得到解决这个问题的任何帮助,因为它阻碍了我们推进研究。如果需要任何其他细节来解决这个问题,我很乐意提供。
谢谢!
linux - linux:如何在LSF作业系统中重定向一行bsub中的运行命令?
我在配备 LSF 作业系统的集群上提交作业。
我不喜欢写作业脚本。我更喜欢一行bsub
,例如
它运行良好。但我想要实时屏幕输出。
所以我尝试了
但这不起作用,因为它只是重定向作业提交的信息而不是运行命令的输出
虽然我知道 bsub 提供-o
并-e
重定向输出。但这两个命令不是实时的。正如我测试的那样,他们在作业完成后保存了整个屏幕输出。但这不是我想要的。更何况,我也知道bpeek
,这也不是我想要的。
所以我的问题是如何在一行内正确重定向运行命令的输出bsub
? 我尝试了几种方法,使命令引用,括号......都失败了
bash - 如何实现自动bpeek?
我在配备 IBM LSF 作业系统的集群上。
我想实现一个功能,这样我就可以查看我正在运行的每个作业的当前输出
所以我写
但是,由于bpeek
进入窥视模式,循环不会循环。
所以我想也许我可以bpeek
在每个高峰结束时杀人。但是我发现 PIDbpeek
没有列在ps -ef
. 所以这似乎不起作用。
有谁知道如何解决这个问题?
shell - 确保 shell 脚本仅作为 lsf 作业执行
我有 shell 脚本,想禁用它作为正常工作的执行。它应该只作为 LSF 中的 bjob 执行
如何在脚本中确保这一点
multithreading - 如何在 MPI fortran 程序中设置 intel mkl 的总线程限制?
我在配备 LSF 作业系统的集群上运行 MPI fortran 程序。我的程序还包含 MKL 功能。
我知道有子程序可以设置 MKL 线程数(例如设置为 2)
首先,我认为这设置了程序的总线程数。但正如我测试的那样,这似乎为每个 MPI 进程设置线程号
所以如果我提交一份工作
然后 ssh 进入节点Top
,我发现它实际上使用了 4 个内核,每个 MPI 进程使用 2 个线程。
但这在我的集群上是不允许的,因为它使用的 cpu 资源比请求的多,并且在运行期间会被杀死。
有时MPI进程数不能划分cpu核心。例如,如果一个节点有 24 个核心,并且我有 7 个 MPI 进程要运行,我想提交如下
由于 MKL 具有Dynamic
功能,MKL 会自动将资源动态分配给 7 个 MPI 任务,并有效地使用所有 cpu。
但是如果现在集群已经满了。我只能请求12个核心,然后
那么如何将 MKL 设置为在 7 个 MPI 任务中准确使用 12 个 mkl 线程,从而不会被系统杀死,但仍保持最大效率。
linux - 如何获取在 LSF 上启动的命令的完整路径
用户使用 bsub 在 LSF 上启动了一个作业。从jobId,我可以知道执行了哪个命令,但无法确定该命令的完整路径
有没有办法找到它?或带有该命令的 PATH 变量?
linux - 使用 bsub 提交给 LSF 的命令的 PID
当使用 bsub 提交命令时,它将使用res
命令启动一个进程。
res
反过来将作为另一个进程启动实际命令
我想知道这个实际命令的 pid
比方说,我已经提交了这个命令。有了bhist -l jobid
,我们可以知道 pid of res
,但无法找到获取 pid of 的方法virtuoso