gpt4 book ai didi

Bash 循环 - 并行化和迭代

转载 作者:行者123 更新时间:2023-11-29 09:49:57 24 4
gpt4 key购买 nike

目标如下:我总共有 40 个 FPGA。 10 个 FPGA 连接到一个编程器,即我有 4 个编程器来闪存所有 40 个 FPGA。FPGA 只能在每个编程器上连续编程。

现在我需要一个循环来对所有 40 个 FPGA 进行编程。为了加快/加速这个过程,我想并行编程 4 个程序员的 FPGA,即并行 4 个 flash 脚本。必须先完成烧写过程,然后才能执行每个编程器的下一个烧写过程。为简单起见,我们假设 FPGA 的编号从 01 到 40。

  • 程序员1:FPGA01,..,FPGA10
  • 程序员2:FPGA11,..,FPGA20
  • 程序员3:FPGA21,..,FPGA30
  • 程序员4:FPGA31,..,FPGA40

这意味着 FPGA02 只能在 FPGA01 完成后才能刷写。但FPGA01、FPGA11、FPGA21和FPGA31应该并行烧录。

下面代码的问题是该过程不会等到闪烁完成。

for i in `seq 1 10`
do
my_flash_script.py --FPGA 0$i &
done

最佳答案

好像你的背景是错误的。尝试:

for i in $(seq -w 1 10); do my_flash_script.py --FPGA $i; done &
for i in $(seq -w 11 20); do my_flash_script.py --FPGA $i; done &
for i in $(seq -w 21 30); do my_flash_script.py --FPGA $i; done &
for i in $(seq -w 31 40); do my_flash_script.py --FPGA $i; done &
wait

(请注意,如果您将设备编号为 0 到 39,这会变得更加自然,但这完全是另一个问题。)

关于Bash 循环 - 并行化和迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54681729/

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