目标如下:我总共有40个FPGA。单个编程器连接了10个FPGA,即我有4个编程器来刷新所有40个FPGA。 每个程序员只能对FPGA进行连续编程。
现在,我需要一个对所有40个FPGA进行编程的循环。为了加速/加速过程,我想并行地对4个编程器的FPGA进行编程,即并行地对4个Flash脚本进行编程。在执行每个编程器的下一个刷新过程之前,必须完成刷新过程。 为简单起见,我们假设FPGA的编号从01到40。
这意味着仅在FPGA01完成时才能刷新FPGA02。 但是FPGA01,FPGA11,FPGA21和FPGA31应该并行刷新。
以下代码的问题是,该过程不会等到闪烁完成。
for i in `seq 1 10`
do
my_flash_script.py --FPGA 0$i &
done
答案 0 :(得分:3)
似乎您在为错误的事情提供背景信息。试试:
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,这将变得更加自然,但这完全是另一个问题。)