为什么多处理不使用Google Compute Engine中的100%CPU?

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

我必须并行运行一些代码,虽然它在我的本地计算机中使用了100%的CPU,但它不像Google Compute Engine那样工作。

我正在使用具有24vCPU和22Gb内存的计算引擎。下图显示了程序运行时CPU的利用率。

CPU utilization below 0,15%我正在使用的模拟代码是:

from joblib import Parallel, delayed
import multiprocessing 

def some_function():
       num_cores = multiprocessing.cpu_count() # = 24
       salida = Parallel(n_jobs=num_cores)(delayed(hijo.calcula_error)(metodo='pond') for hijo in self.descendencia)

其中hijo.calcula_error是一个可以并行运行的函数。

这种行为是正常的还是我做错了什么?

python google-compute-engine python-multithreading joblib
1个回答
0
投票

我认为这也很大程度上取决于你的代码,我会检查multiprocessing methods并通过在单个核心实例上运行来开始测试,看看它是否使用了所有容量(或者可能在24核心实例上产生24个进程)。我希望这可以提供帮助。

我在这里考虑的另一件事是看看内存瓶颈或磁盘I / O限制,这可能会限制实例的所有性能。

© www.soinside.com 2019 - 2024. All rights reserved.