高效简单移动平均线的实现
1. 进一步优化执行时间
为了进一步减少实现的执行时间,我们需要采用更高级的技术,如并行化和委托。并行化可以利用计算机的多核处理器,将任务拆分成多个部分并行执行,从而加速程序运行。而委托则是将部分实现委托给更高效的语言,如 Fortran 和 C++。
1.1 并行计算基础
目前,我们学习了优化串行运行的 R 程序性能的方法,但这没有充分利用现代计算机的多核处理器。并行计算可以将实现拆分成多个部分,独立发送到不同的处理器进行处理,当单线程成为性能瓶颈时,并行计算有加速程序的潜力。
并行化现实世界的应用是一项具有挑战性的任务,需要深入的软件和硬件知识。并行化的程度取决于具体的算法,并且有多种类型的并行化方式。并行化不是简单的“是”或“否”的决策,而是一个连续的范围。
- 易并行任务 :如将数百张彩色图像转换为灰度图像、添加数百万个数字、暴力搜索和蒙特卡罗模拟等。这些任务的每个子任务都可以独立完成,例如每张图像可以独立处理,或者将数字分组相加后再汇总结果。
- 不可并行任务 :任务的每个步骤都依赖于前一步的结果,无法进行并行化。
- 大多数算法 :介于这两个极端之间,实际的并行化应用通常会串行执行一些任务,并行执行其他任务。
1.2 并行化的决策
在进行算法并行化时,需要做出许多决策:
1. 确定并行和串行部分 :决定算法的哪些部分将并行实现,哪些部
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



