#!/bin/bash
doone() {
tracelength="$1"
short="$2"
long="$3"
ratio="$4"
echo "$tracelength $short $long $ratio" >> results.csv
python3 main.py "$tracelength" "$short" "$long" "$ratio" >> file.smt2
gtime -f "%U" /Users/Desktop/optimathsat-1.5.1-macos-64-bit/bin/optimathsat < file.smt2
}
export -f doone
step=0.1
parallel doone \
::: 200 300 \
:::: <(seq 0 $step 0.2) \
::::+ <(seq 1 -$step 0.8) \
:::: <(seq 0 $step 0.1) \
::: {1..2} &> results.csv
我需要 results.csv 中给出的数据按顺序排列。每个作业都会打印其输入,即开头提到的 3 个变量:$tracelength、$short、$long和$ratio,然后是该作业的相关执行时间;都在一条线上。到目前为止,我的结果看起来像这样:
0.00
0.00
0.00
0.00
200 0 1 0
200 0 1 0.1
200 0.1 0.9 0
我怎样才能修复订单?为什么执行时间总是0.00?file.smt2是一个大文件,执行时间绝不可能是0.00。