首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bash循环并行化和迭代

Bash循环并行化和迭代
EN

Stack Overflow用户
提问于 2019-02-14 01:00:46
回答 1查看 41关注 0票数 1

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

现在我需要一个循环来编程所有的40个FPGA。为了加快/加速这个过程,我想并行地编程4个程序员的FPGA,即4个并行的闪存脚本。在执行每个程序员的下一个闪烁过程之前,必须完成闪烁过程。为了简单起见,让我们假设FPGAs的编号是01到40。

  • programmer1: FPGA01,.,FPGA10
  • programmer2: FPGA11,.,FPGA20
  • programmer3: FPGA21,.,FPGA30
  • programmer4: FPGA31,.,FPGA40

这意味着FPGA02只能在FPGA01完成时闪烁。但FPGA01、FPGA11、FPGA21和FPGA31应该并行闪烁。

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

代码语言:javascript
运行
复制
for i in `seq 1 10`
do
   my_flash_script.py --FPGA 0$i &
done
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-14 01:10:30

好像你搞错了。尝试:

代码语言:javascript
运行
复制
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,这会变得更加自然,但这是一个完全不同的问题。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54681729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档