python - Python 如何在我被 LSF 分配了 4 个核心的集群上看到 12 个 cpu?

标签 python python-3.x multiprocessing cluster-computing hpc

我访问一个 Linux 集群,其中使用 LSF 分配资源,我认为这是一个常用工具,来自 Scali ( http://www.scali.com/workload-management/high-performance-computing )。在交互式队列中,我请求并得到了最大核心数:4。但是如果我检查Python的多处理模块看到有多少个CPU,数字是12,这是我分配到的节点的物理核心数。看起来多处理模块在遵守 LSF 应该/将施加的界限方面存在问题。这是 LSF 或 Python 中的问题吗?

[lsandor@iliadaccess03 peers_prisons]$ bsub -Is -n 4 -q interact sh
Job <7408231> is submitted to queue <interact>.
<<Waiting for dispatch ...>>
<<Starting on heroint5>>
sh-3.2$ python3
Python 3.2 (r32:88445, Jun 13 2011, 09:20:03) 
[GCC 4.3.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import multiprocessing
>>> 
>>> multiprocessing.cpu_count()
12

最佳答案

没问题,尽管您的程序应该尊重排队系统分配给它的资源量,正如您所意识到的,该资源量可能远低于 100%。我不相信 LSF 有操作系统级别的钩子(Hook)来强制合规性,也不应该这样做。

过去我见过用包装脚本处理这个问题。通过适当的设置同时设置程序和作业,然后启动它。

关于python - Python 如何在我被 LSF 分配了 4 个核心的集群上看到 12 个 cpu?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7449893/

相关文章:

python - 使用 PyCharm 我想显示 plot extra figure 窗口

python - 多处理 : map vs map_async

python - 奇数计数python

python - 我可以使用 Augustus (Python) 应用包含 DefineFunction 的 PMML 模型吗?

python - 如何使用 python 检查日期是否为空?

python - Pygame - 在给定区域随机生成对象

python:并行调用多个实例的方法

python - 使用 ProcessPoolExecutor 时更新变量

python - 通过ØMQ发送python多处理连接

python - Pandas 散点图未显示所有数据