我有一个 bash 脚本,它接受三个长度相等的数组作为输入:METHODS
、INFILES
和OUTFILES
。
该脚本将解决所有索引( ) 的METHODS[i]
问题INFILES[i]
并将结果保存到。OUTFILES[i]
i
0 <= i <= length-1
中的每个元素METHODS
都是以下形式的字符串:
$HOME/program/solver -a <method>
Run Code Online (Sandbox Code Playgroud)
其中solver是一个程序,可以按如下方式调用:
$HOME/program/solver -a <method> -m <input file> -o <output file> --timeout <timeout in seconds>
该脚本并行解决所有问题,并将每个实例的运行时间限制设置为 1 小时(但有些方法可以很快解决某些问题),如下所示:
#!/bin/bash
source METHODS
source INFILES
source OUTFILES
start=`date +%s`
## Solve in PARALLEL
for index in ${!OUTFILES[*]}; do
(alg=${METHODS[$index]}
infile=${INFILES[$index]}
outfile=${OUTFILES[$index]}
${!alg} -m $infile -o $outfile --timeout 3600) &
done
wait
end=`date +%s` …
Run Code Online (Sandbox Code Playgroud)