并行计算深入探索:从串行算法到KMP并行算法设计
需积分: 16 175 浏览量
更新于2024-08-10
收藏 4.7MB PDF 举报
"从问题描述开始设计并行算法,该文是关于并行计算的一份手册,探讨如何从问题本质出发设计并行算法,尤其以串匹配问题为例进行了详细阐述。串匹配是文本和图像处理中的常见问题,具有重要的理论和实际应用价值。文中提到了传统的串匹配算法在最坏情况下的时间复杂度较高,而KMP算法提供了一个线性的解决方案,但该算法在当时并未被广泛发表。此外,Boyer和Moore也提出了自己的串匹配算法。本书《并行计算:结构·算法·编程》是面向21世纪课程教材,涵盖了并行计算的硬件基础、并行算法设计、并行数值计算以及并行编程等内容,旨在反映学科的最新发展和趋势,适用于高等教育的本科高年级学生和研究生学习使用。"
这篇摘要涉及的知识点主要包括:
1. **并行算法设计**:并行计算的核心在于并行算法的设计,从问题的本质出发寻找新的解决途径,不完全依赖于串行算法的思路,而是专注于并行化的实现。
2. **串匹配问题**:串匹配是计算机科学中经典的问题,涉及到在文本中查找特定模式串的所有出现位置。文中提到两种主要的串匹配算法:朴素算法(时间复杂度较高)和KMP算法(线性时间复杂度)。
3. **KMP算法**:KMP算法是由Knuuth、Morris和Pratt提出的,能够在最坏情况下达到线性时间复杂度,提高了串匹配的效率。
4. **Boyer-Moore算法**:这是另一种有效的串匹配算法,与KMP算法类似,也提供了比朴素算法更快的匹配速度。
5. **并行计算结构**:书中详细介绍了并行计算机的系统结构模型,包括对称多处理机、大规模并行处理机、机群系统,并讨论了并行计算的性能评测。
6. **并行算法设计策略和技术**:并行算法设计通常涉及一系列策略,如数据划分、任务分配等,以及基本设计技术,这些都在第二篇中进行了讨论。
7. **并行数值计算**:书中涵盖矩阵运算、线性方程组求解和快速傅里叶变换等核心的并行数值算法。
8. **并行程序设计**:第四篇介绍了并行程序设计的基础,包括共享存储和分布式存储系统的编程,以及并行程序设计环境和工具。
9. **教材适用性**:本书作为面向21世纪的课程教材,适合计算机及相关专业的本科高年级学生和研究生学习,并且适合科研人员作为参考资料。
通过以上知识点,读者可以了解到并行计算领域的重要概念、算法设计思想以及实践应用,对于深入理解和掌握并行计算技术有着重要的指导作用。
2014-04-29 上传
2022-05-04 上传
2008-10-18 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
sun海涛
- 粉丝: 36
- 资源: 3850
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章