You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

远程Ubuntu服务器后台运行Jupyter Notebook并利用多核CPU

嘿,我来帮你把nohup、nbconvert这些工具串起来,完美适配你的需求——后台跑多个Jupyter Notebook、退出终端不中断,还能把36核CPU用得满满当当!

核心思路

你之前手动启动Notebook再跑单元格的操作有点繁琐,其实nbconvert自带--execute参数可以直接批量执行Notebook,不用手动操作;再结合nohup实现后台运行,最后用并行工具把36核的算力拉满,不管是多Notebook并行还是单Notebook内多核计算都能搞定。

方案一:多Notebook并行跑(填满36核)

如果你的任务分散在多个独立的Notebook里,这个方案最适合:

  1. 批量转换/执行Notebook
    先把所有要运行的Notebook放到同一个目录(比如~/notebooks_to_run/),然后用nbconvert批量处理:

    • 要是想先转成Python脚本方便后续调试,跑这个bash命令:
      for nb in ~/notebooks_to_run/*.ipynb; do
          jupyter nbconvert --to script "$nb"
      done
      
    • 要是想直接执行Notebook并把运行结果保存回原文件(比如保留单元格输出),用--execute --inplace:
      jupyter nbconvert --execute --inplace your_notebook.ipynb
      
  2. 并行启动+后台运行
    用GNU Parallel工具控制同时运行36个任务(刚好匹配你的CPU核数),再套上nohup让进程在后台持续跑:

    • 如果是跑Python脚本:
      nohup parallel -j 36 python {} ::: ~/notebooks_to_run/*.py &
      
    • 如果是直接执行Notebook:
      nohup parallel -j 36 jupyter nbconvert --execute --inplace {} ::: ~/notebooks_to_run/*.ipynb &
      

    解释下:-j 36就是限制同时运行36个进程,:::后面是要处理的文件列表,nohup会把输出默认写到nohup.out里。

方案二:单Notebook内多核计算

如果你的任务集中在几个大Notebook里,每个Notebook的计算可以拆分并行,那直接在Notebook里用Python并行库,再后台执行:

  1. 在Notebook里写并行代码
    比如用joblib(简单易上手):

    from joblib import Parallel, delayed
    import numpy as np
    
    def your_task(i):
        # 这里写你的计算逻辑,比如数据处理、模型训练
        return np.sum(np.random.rand(1000000))
    
    # 用36个进程并行执行任务
    results = Parallel(n_jobs=36)(delayed(your_task)(i) for i in range(100))
    
  2. 后台执行这个Notebook
    用nohup直接执行,退出终端也不会中断:

    nohup jupyter nbconvert --execute --inplace your_big_notebook.ipynb &
    

小技巧与注意事项

  • 日志拆分:nohup默认把所有输出写到nohup.out,多任务并行时日志会很乱,你可以指定每个任务单独生成日志:
    nohup parallel -j 36 python {} > ~/notebook_logs/{/.}.log 2>&1 ::: ~/notebooks_to_run/*.py &
    
    这样每个脚本的日志会存在~/notebook_logs/目录下,文件名和脚本名对应,排查问题更方便。
  • 资源监控:用htop命令可以实时查看CPU使用情况,确认是不是真的用到了36核。
  • 替代nohup的工具:如果想更灵活地管理后台任务(比如随时重新连接查看输出),可以用screen或tmux:
    比如用screen:
    screen -S notebook_runner
    
    在这个会话里运行并行命令,按Ctrl+A+D断开会话,下次登录用screen -r notebook_runner就能重新连接。
  • 避免资源冲突:如果多个Notebook要读写同一个文件,记得加锁或者确保任务之间没有依赖,不然会出现数据错乱。

内容的提问来源于stack exchange,提问作者eternity1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:37:33