【问题标题】:Running Python Trainer script in Parallel并行运行 Python Trainer 脚本
【发布时间】:2018-07-23 15:58:06
【问题描述】:

我有一个python3 trainer 命令,它接受输入

  • trainer.py 脚本文件名
  • 日期
  • 输入数据文件
  • 输出参数文件

我想为 10 个(增量即+1)日期调用此命令,从而产生 10 个输出文件。其他 2 个输入文件对于所有 10 个命令都是相同的。我想知道如何跨 10 个线程 (Linux) 并行调用这些命令。

【问题讨论】:

    标签: python linux bash python-3.x terminal


    【解决方案1】:

    选项 1:在parallel 工具中使用。

    GNU 并行是一个外壳工具,用于使用一台或多台计算机并行执行作业。作业可以是单个命令,也可以是必须为输入中的每一行运行的小脚本。典型的输入是文件列表、主机列表、用户列表、URL 列表或表列表。作业也可以是从管道读取的命令。然后 GNU 并行可以拆分输入并将其并行传输到命令中。

    选项 2:手动管理作业 要在后台运行作业,只需在命令末尾附加 &

    有用的命令:

    jobs -r              # list of running
    kill -SIGSTOP %N     # suspend job N
    kill -SIGCONT %N     # resume job N
    

    示例:

    $ sleep 30 & # <- run in background
    $ sleep 60 & # <- run in background
    $ sleep 60 & # <- run in background
    
    # list of running jobs
    $ jobs -r
    [1]   Running                 sleep 30 &
    [2]-  Running                 sleep 60 &
    [3]+  Running                 sleep 40 &
    
    # kill job [3]
    $ kill %3
    
    # list of jobs
    $ jobs
    [1]   Running                 sleep 30 &
    [2]-  Running                 sleep 60 &
    [3]+  Terminated              sleep 40
    

    【讨论】:

    • 这些作业是并行执行还是顺序执行?
    • @Sanchay:并行
    • GNU 并行工具被证明是非常有用的。谢谢!
    猜你喜欢
    • 2023-04-07
    • 1970-01-01
    • 2014-11-04
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多