Python 每个jupyter笔记本是否使用线程或进程

Python 每个jupyter笔记本是否使用线程或进程,python,jupyter-notebook,Python,Jupyter Notebook,当我运行命令时 jupyter笔记本 从bashshell启动本地主机上的jupyter笔记本服务器。每次我打开一个新笔记本并开始执行代码时,这是一个单独内核上的新进程还是同一内核上的新线程?假设我在一台有M个内核的机器上运行N个不同的独立笔记本,这些笔记本都是CPU密集型的 如果它们都从同一个内核(同一个进程)运行,并且有不同的线程,那么其余的内核基本上是空闲的吗 如果它们是从不同的内核运行的,那么这是否意味着我只能同时运行M台笔记本 或者可能两者兼而有之:ipython内核负责启动超出我手动

当我运行命令时

jupyter笔记本

从bashshell启动本地主机上的jupyter笔记本服务器。每次我打开一个新笔记本并开始执行代码时,这是一个单独内核上的新进程还是同一内核上的新线程?假设我在一台有M个内核的机器上运行N个不同的独立笔记本,这些笔记本都是CPU密集型的

  • 如果它们都从同一个内核(同一个进程)运行,并且有不同的线程,那么其余的内核基本上是空闲的吗
  • 如果它们是从不同的内核运行的,那么这是否意味着我只能同时运行M台笔记本
  • 或者可能两者兼而有之:ipython内核负责启动超出我手动控制范围的新线程/进程。在这种情况下,在解释器级别上,只有M个total笔记本可以同时执行,但我可以打开内存允许的任意多个笔记本

  • 从阅读文档、bug报告和自己使用中可以看出,每个
    jupyter notebook
    命令都启动自己的工作进程,这就是可以直接运行的范围。它还可以将长时间运行的作业发送到单独的工作任务,使用或使用。

    我在我的笔记本电脑上做了一个实验,它有2个内核,最多4个线程。我在2-5台相同的笔记本电脑之间运行,每台笔记本电脑都从1-100万亿增加了一个数字。每个笔记本都花了几分钟完成执行

    在windows任务管理器中,每个笔记本都被视为自己的进程。不超过4台笔记本电脑可以同时运行,每台笔记本电脑占用单个CPU的20-25%。第五个笔记本实际上必须等到其他笔记本完成后才能开始执行

    所以我要回答我自己的问题

  • 笔记本的每次执行都是一个单独的线程,能够在计算机的任何核心上运行。如果不使用类似于库的线程,同一笔记本中的单元显然无法并发执行
  • 在RAM允许的情况下,您可以打开任意数量的笔记本电脑,前提是它们不能执行。但是,您只能运行

    最大线程数=每个内核的线程数*内核数

    同时使用笔记本电脑。如果您尝试运行更多,附加笔记本将暂停,直到其他线程完成

  • 这是正确的解释


  • 这篇文章实际上有几个问题。你帖子中的每个“?”都是一个不同的问题。但一般来说,一篇好的帖子只关注一个问题。您可以编辑以关注“一台有N核的机器上可以运行多少台ipython jupyter笔记本?”或类似的内容。调查您自己的问题的一种方法是,有一些系统工具,如适用于Linux的
    top
    ,以及适用于Windows的task manager,允许您观察正在运行的进程。当你运行更多的笔记本电脑时,你是否尝试过使用这些工具,如果是,你的观察结果是什么?