跳转到主要内容

简单可扩展作业提交系统

项目描述

这是什么?

tej是一个易于使用的作业提交系统。它允许你在远程机器上启动脚本或程序,同时跟踪它们的状态和结果。

它是screen(1)会话中运行脚本的理想替代品,例如通过SSH,并且可以轻松集成到许多后端(如PBS)。

它旨在从脚本中轻松使用,无论是批处理还是Python,并且可以在Windows客户端上良好运行。

它做什么?

集群通常附带作业提交和排队系统。这些系统处理作业队列,可能产生多个节点,具有优先级、依赖关系、预期运行时间和截止日期等。

Tej的目标不是做这些。它只是允许你向单个服务器提交作业,并允许你稍后检查其状态并获取结果。默认运行时间简单地提交作业,一旦提交就开始运行;如果服务器上可用PBS,那么tej将使用它来运行作业。

当然,tej是可扩展的,这意味着如果您需要的话,可以添加一些队列和调度功能(通过编写具有更多功能的“运行时”)。

tej的目标是在不事先配置服务器的情况下即可使用;如果需要,它将在首次运行时在服务器上设置所需的架构(其最简单形式是服务器上的~/.tej目录,其中将包含作业)。

tej被VisTrails科学工作流程管理系统用于运行远程作业。VisTrails模块签名映射到tej作业名称,这样如果作业不存在,则可以启动它;如果它在运行,则等待它;当它完成时,简单地检索其结果(来自任何客户端的机器)。

命令行用法

在服务器上设置tej(可选,否则将在首次运行时使用默认选项设置)

$ tej setup user@server.hostna.me \
    --queue /scratch/tejqueue \
    --make-link ~/.tej \
    --runtime default

这需要一个SSH进入的目的地,tej目录的位置(服务器上可以有多个;默认情况下,使用~/.tej),--make-link创建一个链接,使默认的/.tej重定向到/scratch/tejqueue,而--runtime选择在服务器上设置哪个运行时(默认值default立即使用nohup启动提交的作业,pbs将它们交给qsub,……)。

提交一个简单的作业

$ tej submit user@server.hostna.me myjobdir
Job submitted as:
myjobdir_user_123456

在这里,假设myjobdir具有默认布局,并且没有添加元数据。整个目录将被上传,并且将运行start.sh。

显式提交作业

$ tej submit user@server.hostna.me --queue=/scratch/tejqueue \
    --id example_job \
    --script bin/jobinit \
    myjobdir
Job submitted as:
example_job

获取作业状态

$ tej status user@server.hostna.me --id myjobdir_user_123456
Job is still running (1:28:57)
$ tej status user@server.hostna.me --queue=/scratch/tejqueue \
    --id example_job
Job is finished (1:30:01)
$ tej status user@server.hostna.me --id myjobdir_user_567890
No job 'myjobdir_user_567890'

从完成的作业下载输出

$ tej download user@server.hostna.me --id myjobdir_user_123456 \
    output/log.txt
$ tej download user@server.hostna.me --id myjobdir_user_123456 \
    results.csv view.png input.bin

请注意,文件不需要是输出。文件将下载到当前目录。

终止正在运行的作业

$ tej kill user@server.hostna.me --id example_job
Job 'example_job' has already completed
$ tej kill user@server.hostna.me --id myjobdir_user_123456
Job 'myjobdir_user_123456' killed
$ tej kill user@server.hostna.me --id myjobdir_user_567890
No job 'myjobdir_user_567890'

清理完成的作业

$ tej delete user@server.hostna.me --id example_job
Deleted job 'example_job'

名称

“tej”代表“简单可扩展作业提交系统”。

“tej”/tɛʒ/在法语俚语中也是投掷/抛掷的意思。在这里,它被用作动词(“让我将它tej到服务器……”,“它完成了吗?我昨天tej的那个!”)。

可能不是最好的名字,但已经被占用,而且它很简短。

免责声明

请注意,此软件仍然是beta版本。虽然它已经在VisTrails中使用,但它可能仍在演变。请随时告诉我您的意见、用例,或在我的GitHub上向我提出功能请求/补丁。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

tej-0.6.tar.gz (22.1 kB 查看哈希值)

上传时间

构建分发

tej-0.6-py2.py3-none-any.whl (28.0 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持