【问题标题】:Is there a way to debug GNU Parallel?有没有办法调试 GNU Parallel?
【发布时间】:2019-03-08 19:44:26
【问题描述】:

我有一个正在尝试运行的示例脚本:

#!/bin/zsh

echo "i,rt,fifo,depth,rate,burst" > sweep_srcq.csv

parallel --bar --gnu -j4 --header : \
    '
    sem --id 0 echo {i},{rt},{fifo},{depth},{rate},{burst} >> sweep_srcq.csv | cat'\
    ::: i 5 \
    ::: rt 0 1 \
    ::: fifo 1 \
    ::: rate 5 6 8 A D 14 21 32 64 \
    ::: depth 128 \
    ::: burst 1 \

当我在我的一台机器上运行这个脚本时,它完美执行,我看到了结果文件:

i,rt,fifo,depth,rate,burst
5,0,1,128,8,1
5,0,1,128,5,1
5,0,1,128,A,1
5,0,1,128,6,1
5,0,1,128,D,1
5,0,1,128,14,1
5,0,1,128,21,1
5,0,1,128,32,1
5,0,1,128,64,1
5,1,1,128,5,1
5,1,1,128,6,1
5,1,1,128,8,1
5,1,1,128,A,1
5,1,1,128,D,1
5,1,1,128,14,1
5,1,1,128,21,1
5,1,1,128,32,1
5,1,1,128,64,1

但是在我的另一台机器上,这段代码并没有执行..

我的计时器停留在0s,它基本上一直停留在那里,直到我杀死它。有什么方法可以调试,我的机器可能出了什么问题?

【问题讨论】:

    标签: gnu gnu-parallel


    【解决方案1】:

    如果它是你的完整脚本,你可以这样做,它更短更快:

    echo "i,rt,fifo,depth,rate,burst" > sweep_srcq.csv
    
    parallel --bar -j4 --header : echo {i},{rt},{fifo},{depth},{rate},{burst} \
      ::: i 5 \
      ::: rt 0 1 \
      ::: fifo 1 \
      ::: rate 5 6 8 A D 14 21 32 64 \
      ::: depth 128 \
      ::: burst 1 \
      >> sweep_srcq.csv
    

    但我觉得这不是您的完整脚本,您从parallel 调用sem 是有原因的。

    让我印象深刻的第一件事是你重定向标准输出两次:

    sem [...] >> sweep_srcq.csv | cat
    

    您希望将标准输出附加到 .csv 吗?或者你希望它发送到cat?如果你想要两者,你应该改用tee -a

    您的问题可能只是服务器对这一行的解释不同,并且停滞的服务器运行一个从您的键盘读取的cat

    【讨论】:

      猜你喜欢
      • 2021-03-28
      • 2020-12-13
      • 2016-04-20
      • 2013-04-13
      • 1970-01-01
      • 1970-01-01
      • 2017-07-13
      • 1970-01-01
      • 2011-03-21
      相关资源
      最近更新 更多