Warm tip: This article is reproduced from serverfault.com, please click

python-控制Jupyterlab服务器中使用的CPU数量

(python - Control number of CPU using in jupyterlab server)

发布于 2020-11-19 12:37:05

我正在使用jupyterlab,我知道我有12个内核。目前,我只使用1,而我想使用更多。我想通过在终端中写这个来更改我使用的号码:

export JULIA_NUM_THREADS=7

但是当我打印时:

import threading
threading.activeCount()
>>>5

如何为jupyterlab笔记本提供更多CPU?这真的不是我的领域,所以对不起,如果真的很简单,我只是不明白我在做什么错以及从哪里开始。

Questioner
Reut
Viewed
0
Iñigo 2020-11-28 08:59:45

TLDD;无需配置。它可供你使用,只需要明确地编写要并行运行的代码。

JULIA_ACTIVE_THREADS 是Jupyter中Julia Kernel的配置选项,而不是Python Kernel(运行笔记本代码的过程)的配置选项。

除非你在容器中运行Jupyter,否则可以立即使用系统中所有可用的内核。如果Jupyter位于容器或虚拟机中,它将使用你分配的内容,仅此而已。

请记住,默认情况下,运行Jupyter内核时使用1个内核。

当你运行threading.active_count()并获得1时,这意味着你在代码上使用了一个正在运行的线程。现代处理器可以为每个可用内核使用多个线程。坏消息是,这不能衡量你使用cpu的质量。

Python可以充当在后台并行工作的库的协调器(请考虑numpy,pandas,tensorflow ...)。

如果要编写使用1个以上线程和/或1个以上CPU的Python代码,请查看multiprocess模块

多重处理模块是标准库的一部分,你可以在Jupyter内部轻松使用它。也许你会发现ProcessPool方法有用(如果你想进行深度学习,则有一个pytorch.multiprocessing模块具有相同的接口,但支持使用不同线程的GPU)。