You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看使用multiprocessing的Python脚本占用的CPU核心数?

查看Python多进程脚本实际使用CPU核心数的方法

一、先修正你的脚本(当前代码未实际启用并行)

你现在的代码虽然实例化了multiprocessing.Pool(),但循环里还是直接串行调用fibonacci(i),完全没用到进程池的并行能力。先改成真正的多进程调用:

import numpy as np
import multiprocessing
import time

def fibonacci(n):
    if n <= 1:
        return np.array([0] if n == 0 else [0, 1])
    sequence = [0, 1]
    while len(sequence) < n:  
        next_number = sequence[-1] + sequence[-2]  
        sequence.append(next_number)  
    return np.array(sequence)

if __name__ == '__main__':
    start_time = time.time()
    # 默认池大小等于系统CPU核心数,也可手动指定如multiprocessing.Pool(processes=4)
    pool = multiprocessing.Pool()

    n = 100
    # 用map批量提交并行任务
    results = pool.map(fibonacci, range(0, n))
    pool.close()
    pool.join()

    U = time.time() - start_time
    print("Elapsed time =", U)

二、查看实际使用核心的方法

1. 代码内直接验证

在脚本中添加代码,直接打印进程池的进程数(对应使用的核心数),还可以查看每个子进程绑定的CPU核心:

import os
import psutil

# 放在if __name__ == '__main__'代码块内
print(f"系统可用CPU核心总数: {multiprocessing.cpu_count()}")
print(f"当前进程池使用的进程数: {pool._processes}")

# 查看每个子进程绑定的CPU核心
for p in pool._pool:
    proc = psutil.Process(p.pid)
    print(f"子进程PID {p.pid} 绑定核心: {proc.cpu_affinity()}")

需要先安装psutil:pip install psutil

2. 系统工具直观查看

  • Windows:打开任务管理器 → 「详细信息」标签,找到Python进程,观察子进程的CPU占用;或切换到「性能」标签,查看各核心的负载情况。
  • Linux/macOS:使用htop(需先安装)或top命令(按1显示单核心负载),直接观察Python子进程对各核心的占用;也可执行ps -eo pid,ppid,pcpu,args | grep python查看进程CPU占比。

三、补充说明

  • multiprocessing.Pool()默认使用multiprocessing.cpu_count()返回的核心数,若系统有其他进程占用资源,脚本可能不会完全占满所有核心,但池的进程数就是它能调用的最大核心数。
  • 若需强制指定核心数量,创建池时传入processes参数即可,比如multiprocessing.Pool(processes=6)会固定使用6个核心。

内容的提问来源于stack exchange,提问作者KeplerNick123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 10:17:34