【发布时间】:2016-09-20 21:02:09
【问题描述】:
我想为此命令使用 GNU Parallel:
seq -w 30 | parallel -k -j6 java -javaagent:build/libs/pddl4j-3.1.0.jar -server -Xms8048m -Xmx8048m fr.uga.pddl4j.planners.hsp.HSP -o pddl/benchmarks_STRIPS/benchmarks_STRIPS/ipc1/movie/domain.pddl -f pddl/benchmarks_STRIPS/benchmarks_STRIPS/ipc1/movie/p{}.pddl -i 8 '>>' AstarMovie.txt
我在 java 程序中有 600 秒的超时,但并行不执行它。进程可以运行 2、3、4 或更长时间并且永不停止。
我根据在线 GNU 教程尝试了这个命令,但它也不起作用:
seq -w 30 | parallel -k --timeout 600000 -j6 java -javaagent:build/libs/pddl4j-3.1.0.jar -server -Xms2048m -Xmx2048m fr.uga.pddl4j.planners.hsp.HSP -o pddl/benchmarks_STRIPS/benchmarks_STRIPS/ipc1/movie/domain.pddl -f pddl/benchmarks_STRIPS/benchmarks_STRIPS/ipc1/movie/p{}.pddl -i 8 '>>' AstarMovie.txt
我在教程中看到 GNU Parallel 使用毫秒 - 所以 600000 是 10 分钟,这是我需要的,但 12 分钟后进程仍在运行。我需要同时运行 6 个进程,每个进程最多运行 10 分钟。
任何帮助都会很棒。谢谢。
编辑: 为什么人们觉得有必要为像“600 秒”到“600 秒”这样的小变化而编辑帖子?停止为业力做它..
【问题讨论】:
-
“GNU Parallel 不尊重您的超时”是什么意思?如果你的程序在 10 分钟后自动停止,GNU Parallel 如何让它继续运行?
-
GNU Parallel 手册页说
--timeout值以秒为单位。 -
在我的 java 程序中,我有一个 600 秒的超时时间来完成一项任务。使用 GNU 并行时,进程将超过此超时并继续尝试解决问题
-
不,它说 “如果命令运行时间超过 val 秒”。
-
试试这个...
time parallel --timeout 10 sleep {} ::: 15
标签: parallel-processing gnu-parallel