在 jupyterlab 服务器中使用的控制数 CPU

Control number of CPU using in jupyterlab server

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

export JULIA_NUM_THREADS=7

但是当我打印时:

import threading
threading.activeCount()
>>>5

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

一些想法,但渴望发表评论,我对 jupyter 不熟悉,只熟悉“正常 python”,所以也许这一切都朝着错误的方向前进;):

  1. 据我所知,àctive_count(在我看来你不应该使用旧的驼峰命名法)只有 returns 活动线程的数量,而不是可用的。所以尝试添加更多线程。我有一个 Quadcore 和 jupyter 以 5 个线程开始,但我可以添加更多。
  2. Multithreading is not the same as multiprocessing (If you want to run on different Cores you have to use multiprocessing) (python thread vs. multiproccess), 也许你找错东西了?

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

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

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

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

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

的好坏程度。

Python 可以充当在幕后并行工作的库的编排器(想想 numpy、pandas、tensorflow...)。

如果您想编写 Python 使用多于 1 个线程的代码 and/or 1 CPU,请查看 multiprocess module.

多进程模块是标准库的一部分,您可以在 Jupyter 中毫无问题地使用它。可能你会发现 ProcessPool 方法很有用(如果你想使用深度学习,有一个 pytorch.multiprocessing 模块具有相同的接口,但支持在不同的 GPU 上工作线程)。