在 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”,所以也许这一切都朝着错误的方向前进;):
- 据我所知,
àctive_count
(在我看来你不应该使用旧的驼峰命名法)只有 returns 活动线程的数量,而不是可用的。所以尝试添加更多线程。我有一个 Quadcore 和 jupyter 以 5 个线程开始,但我可以添加更多。
- 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 中毫无问题地使用它。可能你会发现 Process
和 Pool
方法很有用(如果你想使用深度学习,有一个 pytorch.multiprocessing
模块具有相同的接口,但支持在不同的 GPU 上工作线程)。
我正在使用 jupyterlab,我知道我有 12 个内核可用。 目前我只使用 1 个,我想使用更多。 我试图通过在终端中写入来更改我使用的号码:
export JULIA_NUM_THREADS=7
但是当我打印时:
import threading
threading.activeCount()
>>>5
如何为我的 jupyterlab 笔记本提供更多 CPU? 这真的不是我的领域,所以我很抱歉,如果事情真的很简单,我只是不明白我做错了什么以及从哪里开始。
一些想法,但渴望发表评论,我对 jupyter 不熟悉,只熟悉“正常 python”,所以也许这一切都朝着错误的方向前进;):
- 据我所知,
àctive_count
(在我看来你不应该使用旧的驼峰命名法)只有 returns 活动线程的数量,而不是可用的。所以尝试添加更多线程。我有一个 Quadcore 和 jupyter 以 5 个线程开始,但我可以添加更多。 - 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 中毫无问题地使用它。可能你会发现 Process
和 Pool
方法很有用(如果你想使用深度学习,有一个 pytorch.multiprocessing
模块具有相同的接口,但支持在不同的 GPU 上工作线程)。