运行 使用 GNU Parallel 测试的终端命令
Terminal Command to run tests using GNU Parallel
我有一个文件夹,里面有这样的问题:
problem1, domain 1
problem2, domain 2
problem3, domain 3
我想用GNU Parallel 解决运行 一堆这样的问题。这是我尝试过的简短版本:
seq 01 20 | parallel -k -j6 java pddl/benchmarks_STRIPS/psr/p{}-domain.pddl -f pddl/benchmarks_STRIPS/psr/p{}.pddl
我想要某种命令来告诉 GNU parallel 域 1 将使用问题 1 进行编译,域 2 将使用问题 2 等进行编译。
有没有办法使用 GNU 来做到这一点,还是我应该单独写出每个?
我认为这可能是零填充的问题,因为我的 seq
命令不会对数字进行零填充。
如果您有 bash 4+
(我认为这是正确的版本),您可以使用:
echo {01..20} | parallel ...
或者,如果您的年龄较大 bash
,您可以使用类似的东西:
printf "%02d\n" {1..20} | parallel ...
我假设 pXX-domain.pddl 文件存在。您可以使用 GNU Parallel 的 {= =}
语法来计算 pXX 名称:
parallel -k -j6 java {} -f '{= s/-domain(\.pddl)$// =}' ::: pddl/benchmarks_STRIPS/psr/p*-domain.pddl
或者如果相反:
parallel -k -j6 java '{= s/(\.pddl)$/-domain/ =}' -f {} ::: pddl/benchmarks_STRIPS/psr/p??.pddl
需要 GNU Parallel 20140722。
这样你就不需要提前知道哪些文件存在了。
我有一个文件夹,里面有这样的问题:
problem1, domain 1
problem2, domain 2
problem3, domain 3
我想用GNU Parallel 解决运行 一堆这样的问题。这是我尝试过的简短版本:
seq 01 20 | parallel -k -j6 java pddl/benchmarks_STRIPS/psr/p{}-domain.pddl -f pddl/benchmarks_STRIPS/psr/p{}.pddl
我想要某种命令来告诉 GNU parallel 域 1 将使用问题 1 进行编译,域 2 将使用问题 2 等进行编译。 有没有办法使用 GNU 来做到这一点,还是我应该单独写出每个?
我认为这可能是零填充的问题,因为我的 seq
命令不会对数字进行零填充。
如果您有 bash 4+
(我认为这是正确的版本),您可以使用:
echo {01..20} | parallel ...
或者,如果您的年龄较大 bash
,您可以使用类似的东西:
printf "%02d\n" {1..20} | parallel ...
我假设 pXX-domain.pddl 文件存在。您可以使用 GNU Parallel 的 {= =}
语法来计算 pXX 名称:
parallel -k -j6 java {} -f '{= s/-domain(\.pddl)$// =}' ::: pddl/benchmarks_STRIPS/psr/p*-domain.pddl
或者如果相反:
parallel -k -j6 java '{= s/(\.pddl)$/-domain/ =}' -f {} ::: pddl/benchmarks_STRIPS/psr/p??.pddl
需要 GNU Parallel 20140722。
这样你就不需要提前知道哪些文件存在了。