美文网首页
使用PBS作业调度系统提交python脚本以及python调用R

使用PBS作业调度系统提交python脚本以及python调用R

作者: Lairai | 来源:发表于2020-07-28 00:54 被阅读0次

    首先说下如何指定各种脚本的工作路径(shell, python, R)

    • qsub可以通過-d指定作業脚本運行目錄
    • R, python脚本:上一级调用时在命令行参数里指明运行路径

    下面举例说明如何提交pythonCodePath/job.py(job.py里面还调用了)

    1. 通过qsub 提交路径为shellCodePath/job.sh的工作脚本,指明工作路径(也就是python脚本的工作路径)为workDirPython
    qsub -d workDirPython shellCodePath/job.sh
    
    1. job.sh中调用python script
    #!/bin/bash
    #PBS -l nodes=1:ppn=6 
    #PBS -q short
    #PBS -V
    python pythonCodePath/job.py `pwd`
    python pythonCodePath/last.py
    

    两点注意
    pwd通过 -d workDirPython 指明
    last.py是一个空脚本,用于处理python脚本在shell里没有执行的情况!(由于最后一句python脚本不被执行)

    在python脚本中读取命令行参数也很简单

    import sys
    ...
    PATH_WORK = sys.argv[1] + "/"  # Gets working directory from command args
    ...
    
    1. 在python脚本里可以通过命令的方式调用R脚本,例如在job.py里面调用RCodePath/test.R,并指明test.R的工作路径为workDirR
    import os
    ...
        command_R = "Rscript " + "RCodePath/test.R" \
                           + " " + workDirR
        os.system(command_R)
    ...
    

    你可以指明任意多的参数

    在R脚本里通过接受命令行参数得到运行环境

    arguments = commandArgs(T)
    path.working = arguments[1]
    setwd(path.working)
    

    相关文章

      网友评论

          本文标题:使用PBS作业调度系统提交python脚本以及python调用R

          本文链接:https://www.haomeiwen.com/subject/kldxrktx.html