gpt4 book ai didi

python - 如何在 Python 中判断我是否在 Beowulf 集群上运行?

转载 作者:太空宇宙 更新时间:2023-11-04 04:46:59 25 4
gpt4 key购买 nike

我有一个程序在许多不同的机器上运行,包括一个集群。目前,我通过查找计算机的主机名来检查我是否在集群中,如果是集群的名称,我会向程序添加分布式元素,即 pestat 和 qsub 调用。我试图让程序更加可移植,但被困在这里。

是否有一种简单的方法来检查是否有附加的从节点,或者附加了多少个从节点?我搜索了一些标准模块,包括os、sys、socket、platform,但没有找到我可以使用的东西。我曾考虑过在运行 pestat 时使用 try/except block ,但我觉得应该有更好的东西。

编辑:郑重声明,我愿意使用 linux/bash 解决方案,或者查找表明我是否在集群上的环境变量。

最佳答案

我将稍微跳跃一下这个解释。如果我超出了要求,请告诉我。根据您的描述,听起来您正在使用 TORQUE 或 PBSpro。鉴于目前不支持通过 python 检测集群,您可以:

1) 检查二进制文件的路径。这意味着脚本不再依赖于主机。

#!/usr/bin/env python

import re
import subprocess

command_to_run = "qstat -q"

p = subprocess.Popen(command_to_run, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
output, error = p.communicate()
match = re.search(r'command not found', error)
if match:
"""something...
match = re.search(r'Queue', output)
if match:
"""something else...

这允许您执行一些更复杂的逻辑。例如,检测集群是否关闭或开启。如果我们在路径中有命令,但它们返回连接错误,您可能不想提交,例如“连接被拒绝”。

2) 在每个系统上,您可以编写自己的 python 模块并尝试通过脚本导入它。如果失败,那么您就知道您使用的是正常系统。这可以通过木偶进行管理并相应地分发。

关于python - 如何在 Python 中判断我是否在 Beowulf 集群上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29264708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com