向Sun Grid Engine提交Joblib并行化的python脚本。

问题描述 投票:0回答:1

我有一个python脚本,它使用 joblib 模块与 loky 后端,用于并行化和 n_jobs 设置为 12. 我想知道我应该如何将它提交到太阳网格引擎与 qsub 命令。

我有这样的东西。

qsub -q all.q     \
     -l h_vmem=14G \
     -V             \
     -N              \
     -pe all.pe       \
      12               \
      script.py

在python脚本中,这是否能像预期的那样工作?joblib 模块?

python bash parallel-processing sungridengine
1个回答
0
投票

Q : "这能行吗?果然 蟒蛇脚本 joblib 模块?"

这他妈要看一个人对一个。"正如所料" 子句,不是吗?

如上所述,Python-interpreter肯定会实例化出 12 n_jobs-受控数量的自我 "复制 "的过程实例(表现为 "复制")。loky 因为它是奉命这样做的。

然而 qsub 已要求SGESoGE*GE预先配置GE,以便下一步操作。12 并行环境实例(即完全独立运行的 12 python进程,每个进程都有 14 [GB] RAM 拨款需求 ~ 168 [GB] RAM - 所以希望,你至少有这么多的物理RAM资源,否则就会开始讨厌的交换,对任何期望的破坏性不利影响。joblib (以后才会出现)的技巧。

每一个这样的Python进程,都在自己的SGESoGE里面。PARALLEL_ENVIRONMENT 后起之秀 12 loky-机械化 joblib-口述的 n_jobs导致 144 总数。他们的工作负载的性质将决定,如果这些成为 "浪费",如果磁盘IO-bound,"表现不佳",如果CPURAM-traffic的总和已经撞到了物理RAM-IO-bound的上限,或者 "聪明",如果资源和需求在整个计算图的运行过程中服从Lege Artis平衡(对于这一点,我的帽子确实会被举起来)。

最好的 下一步 :

修订: 配置 与您的SGESoGE技术支持部门合作,最好是在主作业提交之前进行预测试,并在主作业提交之前添加以下内容 -v "核查员"

######################################################
#               this-JOB-SUBMISSION-CONFIGURATION-file
######################################################
# Usage:
#
#        gsub @<this-JOB-SUBMISSION-CONFIGURATION-file>
#
# Remarks:
#
#        qsub -q all.q     \      ### -q  define-LIST-OF-QUEUES 2B used 4scheduling this JOB
#             -l h_vmem=14G \     ### -l  define-RESOURCES
#             -V             \    ### -V  export-ALL-ENVIRONMENT-VARS to the job-CONTEXT
#             -N              \   ### -N  qsub-JOB-NAME ? a missing value :: rather test with adding -v qsub-JOB-SUBMISSION-VERIFIER
#             -pe all.pe 12    \  ### -pe instantiate-PARALLEL-ENVIRONMENTS <pe_name> <pe_min>[-][ <pe_max> ]
#              script.py          ###     <command> [ <command_parameters> [...]]
© www.soinside.com 2019 - 2024. All rights reserved.