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

标签 python multithreading core jupyter-lab

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

export JULIA_NUM_THREADS=7
但是当我打印时:
import threading
threading.activeCount()
>>>5
如何为我的 jupyterlab 笔记本提供更多 CPU?
这真的不是我的领域,所以如果事情真的很简单,我很抱歉,我只是不明白我做错了什么以及从哪里开始。

最佳答案

TLDD;无需配置。它可供您使用,只需要明确编码您想要并行运行的内容。JULIA_ACTIVE_THREADS是 Jupyter 中 Julia 内核的配置选项,而不是 Python 内核(运行笔记本代码的进程)的配置选项。
除非您在容器中运行 Jupyter,否则您可以开箱即用地使用系统中所有可用的内核。如果 Jupyter 在容器或虚拟机中,它将使用您分配的内容,仅此而已。
请记住,默认情况下,您在运行 Jupyter 内核时使用 1 个内核。
当你运行 threading.active_count()并得到 1,这意味着您正在代码上使用一个正在运行的线程。现代处理器可以为每个可用内核使用多个线程。坏消息是,这不是衡量您使用 cpu 的好坏的标准。
Python 可以充当在幕后并行工作的库的协调器(想想 numpy、pandas、tensorflow ......)。
如果您想编写使用超过 1 个线程和/或 1 个 CPU 的 Python 代码,请查看 multiprocess module .
multipreocessing 模块是标准库的一部分,您可以在 Jupyter 内部毫无问题地使用它。可能你会找到 ProcessPool有用的方法(如果你想使用深度学习,有一个 pytorch.multiprocessing 模块具有相同的接口(interface),但支持在不同线程中使用 GPU)。

关于python - 控制 jupyterlab 服务器中使用的 CPU 数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64911796/

相关文章:

python - 无法使用 ^C 退出

python - 如何绘制 Shapely 点列表

C++,如何在非并行任务中通过线程准确划分cpu工作

java - 是否可以在 hashmap 中存储线程对象?

multithreading - 确定机器上可用核心的数量?

python - 从 .CSV 获取主题标签并在 Python 3 中对它们进行计数

python - Pygame 事件队列

c++ - GCC 4.8 中 C++11 线程局部变量的性能损失是什么?

java - 在 Java 中使用线程进行并行编程

c++ - 在 RHEL 6 上强制核心转储