gpt4 book ai didi

linux - Unix 环境中的多线程/并行 Bash 脚本

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:10:20 25 4
gpt4 key购买 nike

我有多个 bash 脚本,我试图在主 bash 脚本中“并行化”。

Bash 脚本:

#!/bin/bash
SHELL=/bin/bash

bash /home/.../a.sh &
bash /home/.../b.sh &
wait
bash /home/.../c.sh &
bash /home/.../d.sh &
bash /home/.../e.sh &
wait
echo "Done paralleling!"
exit 0

我已经正常运行脚本(没有&符号)和使用&符号,我没有看到处理时间有任何明显差异,这让我相信某些东西可能没有正确编码/最有效的方式。

最佳答案

在经典的计算机科学理论中,资源争用被称为“抖动”。

(在美好的过去,当一个 5 兆字节的磁盘驱动器可能只有一台小型洗衣机那么大时,我们过去称其为“Maytag 模式”,因为这个可怜的东西看起来就像一台 Maytag 洗衣机“自旋”循环!)

如果绘制由争用引起的性能曲线,它会向上倾斜,然后突然呈“肘”形:它直线上升,呈指数级增长。我们称之为“碰壁”。

在这个脚本上摆弄的一件有趣的事(如果您只是好奇...) 是在几个地方放置wait 语句。 (确保你做的是正确的......)允许,比如说,两个实例运行,等待所有实例完成,然后再运行三个,依此类推在。看看这是否更快,如果是,请尝试三个。等等。您可能会找到一个“最佳位置”。

或者……不是。 (不要花太多时间在这上面。看起来不值得。)

关于linux - Unix 环境中的多线程/并行 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38078962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com