MATLAB实现并行计算来缩短执行时间

编程入门 行业动态 更新时间:2024-10-11 05:31:25

MATLAB实现并行计算来缩短<a href=https://www.elefans.com/category/jswz/34/1770854.html style=执行时间"/>

MATLAB实现并行计算来缩短执行时间

**

MATLAB实现并行计算来缩短执行时间

**

本文采用 MATLAB 内附样例
”802.11be Packet Error Rate Simulation for an EHT MU Single-User Packet Format“ 为基础,将其改造为 并行计算,看看 并行计算是否有效率方面的优势。

结论:
1)多重循环:当存在多重循环时,不能多重循环同时采用并发。也就是说只能有一层为并行计算;
2) GPU 调用:不采用并行计算时, 若循环体中存在 GPU 调用(每次生成、释放GPU对象),则有可能反而降低效率:因为 GPU 对象的生成与释放很耗时间。采用并行计算时,采用 CPU 的效率也是高于 GPU ( 代码中仅有 agwn 一处涉及 GPU/CPU 的选择,其他代码默认都是 CPU) ;
3)并发轮次: 尽可能让每次并发的轮次等于 CPU 的核数;如果小于 CPU核数,则未充分发挥并发潜力;
4) 单轮次时间: 串行用时大约只有并行用时的 一半左右。 也就是说,并行计算同一组代码用时,大约是串行计算的两倍。 可见:并行计算代价也很高;也就是说,并发至少3 轮次以上才会有效率上的提升;
5)并行预热 : 并行预热一般需要 30 秒以上。 所以同样代码一次跑并行 , 比后面跑并行要多花 30 秒以上的时间; 一般需要跑个两三次才能达到性能巅峰;

1.串行运行每轮时间 5~7 秒 (CPU)
共 外循环 13 轮, 内循环 5 轮, 每轮 5~7 秒 。整个程序 共计 4 分钟 8 秒 运行完毕;

2 串行运行每轮时间 7~10 秒 (GPU)

3… 外循环用并行计算,每轮时间 一般 15 秒左右。
共计用时 2 分5 秒左右 . 可以看到每次 6 轮并发(CPU 6 核)

  1. 内循环用并行计算,每轮时间一般 15 秒左右。 共计用时 2 分28秒左右。 每次 5 轮并发 (内循环总共只有 5 轮,所有 CPU核数并未充分利用)

更多推荐

MATLAB实现并行计算来缩短执行时间

本文发布于:2024-02-06 10:31:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1748754.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:执行时间   算来   MATLAB

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!