我有一个实验,需要多次执行并跟踪其执行时间。
我的python代码需要使用不同的输入多次运行,但是对于相同的输入也需要多次运行,以获取每个输入的平均执行时间。
我正在考虑使用并行化(并且我正在bash中进行此操作),但是我不知道如何处理它,因为我需要跟踪所有内容,然后在图形中表示结果。
我担心的是,如果我想使用命令parallel
将所有内容保存在一个文件中,因为我无法控制哪个作业先结束,所以我将获得无序数据。例如,如果我决定将某个输入的所有输出都放在一个文件中(分配给该特定输入),然后从中取平均值,那么我将得到许多文件,这可能会使下一步变得更加困难。
我不是要代码,我只是想更好地了解(如果可能)我可以使用的算法。也许是一种控制parallel
创建的作业顺序(FIFO)的方法,也许是另一种并行化工具...?帮助
答案 0 :(得分:1)
其中之一可以为您工作吗?
parallel --keep-order myexperiment ::: a r g s 1 ::: a r g s 2 > output-in-order
parallel --results mydir/ myexperiment ::: a r g s 1 ::: a r g s 2
parallel --results myfile{1}-{2} myexperiment ::: a r g s 1 ::: a r g s 2
parallel --results myfile.tsv myexperiment ::: a r g s 1 ::: a r g s 2
如果您是科学家,那么最后一个很有趣,因为R可以直接读取它。
答案 1 :(得分:0)
您一次启动所有脚本(例如循环运行),每个脚本将其结果重定向到单独的文件
为此,例如在测试日志的命名中使用
Log_file_name. $$. Log => Log_file_name.1548.log
$$
:返回脚本的进程号(是一个值)
我希望这可以帮助您