我有一个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
模块?
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> [...]]