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

在Google Colab GPU环境下如何同时运行两个Python脚本?

在Google Colab中同时运行两个Python脚本的可行方案

我懂你在Colab里想用GPU同时跑两个脚本做持续评估的需求,之前用!python script1.py & !python script2.py &没生效很正常——Colab的命令行环境在处理后台任务时有不少特殊限制,直接用&很容易因为会话上下文或者输出缓冲的问题导致进程悄悄终止。下面给你几个靠谱的解决办法:

方案1:用nohup后台运行并记录日志

这是最稳妥的基础方案,能避免进程因为会话断开或输出问题挂掉:

# 启动第一个脚本,输出重定向到script1.log
!nohup python script1.py > script1.log 2>&1 &
# 启动第二个脚本,输出重定向到script2.log
!nohup python script2.py > script2.log 2>&1 &
  • nohup的作用是让进程忽略挂起信号,就算你暂时断开Colab的网页,脚本也能继续在后台跑
  • > script1.log 2>&1会把脚本的标准输出和错误输出都写到日志文件里,之后你可以用!cat script1.log查看运行情况

方案2:用tmux创建独立会话(适合需要随时查看进程状态)

如果需要随时查看脚本的实时输出,或者管理后台进程,tmux是个好工具。先安装tmux:

!apt-get install -y tmux

然后分别为两个脚本创建独立的后台会话:

# 创建名为session1的后台会话,运行script1
!tmux new-session -d -s session1 'python script1.py'
# 创建名为session2的后台会话,运行script2
!tmux new-session -d -s session2 'python script2.py'
  • 想看某个脚本的实时输出,就执行!tmux attach-session -t session1(按Ctrl+B再按D可以回到Colab命令行,不会终止会话)
  • 不想打开会话的话,也可以用!tmux capture-pane -p -t session1直接抓取当前输出内容

方案3:用Python启动器脚本(灵活可控)

写一个简单的Python脚本作为启动器,用subprocess模块同时启动两个子进程,还能在Python里监控进程状态:
先创建start_scripts.py文件:

import subprocess
import threading

def run_script(script_name):
    # 启动脚本并捕获输出
    proc = subprocess.Popen(
        ['python', script_name],
        stdout=subprocess.PIPE,
        stderr=subprocess.STDOUT,
        text=True
    )
    # 实时打印输出
    for line in proc.stdout:
        print(f"[{script_name}] {line}", end='')
    proc.wait()

# 分别启动两个脚本的线程
threading.Thread(target=run_script, args=("script1.py",)).start()
threading.Thread(target=run_script, args=("script2.py",)).start()

然后运行这个启动器:

!python start_scripts.py

这个方案的好处是你可以在启动器里添加更多逻辑,比如监控进程是否崩溃、自动重启,或者自定义输出格式。

额外提醒

Colab的GPU是单卡资源,两个脚本会共享GPU显存,记得确保你的脚本没有硬编码独占全部显存的设置(比如PyTorch里的torch.cuda.set_per_process_memory_fraction(0.5)可以限制每个进程用一半显存,避免OOM)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:24:40