macos - 在 shell 中并行化的最佳方法
问题描述
我有一个需要多次执行的实验并跟踪它的执行时间。
我的 python 代码需要使用不同的输入运行多次,但也需要多次运行相同的输入以获得每个输入的平均执行时间。
我正在考虑使用并行化(我在 bash 中这样做)但我不知道如何处理它,因为我需要跟踪所有内容,然后在图表中表示结果。
我担心的是,如果我想使用命令将所有内容都放在一个文件中,parallel
我将拥有无序的数据,因为我无法控制哪个作业首先结束。例如,如果我决定将某个输入的所有输出放在一个文件中(分配给该特定输入),然后从中获取平均值,我最终会得到很多文件,这可能会使下一步变得更加困难。
我不是要代码,我只是想要一个更好的想法(如果可能的话)我可以使用的算法。也许是一种控制由创建的作业(FIFO)顺序的方法,也许是parallel
另一种并行化工具......?帮助
解决方案
其中之一可以为您工作吗?
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 直接读取。
推荐阅读
- java - 如何反转链表?
- r - 使用 R 将函数应用于矩阵中的每个行组合 公共连接
- apache-spark - Hadoop 通过 Hadoop 配置文件分配 Master 和 Worker 节点的工作流程是什么?
- react-native - 如何更改 React 本机应用程序 SHA1 值?
- amazon-web-services - .app 域和 cloudfront/s3 通过 Namecheap
- c - Kernighan 和 Ritchie - 练习 3.6(带有三个参数的 itoa
- python - 在一个字典中更新多个字典
- ansible - 在本地有两个不同版本的同一个ansible集合
- flutter - 未定义的名称“AppLocalizations”。(文档)创建新项目后
- reactjs - 纱线构建不起作用但纱线开始工作