并行计算深入探索:从串行算法到KMP并行算法设计

需积分: 16 79 下载量 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世纪的课程教材,适合计算机及相关专业的本科高年级学生和研究生学习,并且适合科研人员作为参考资料。 通过以上知识点,读者可以了解到并行计算领域的重要概念、算法设计思想以及实践应用,对于深入理解和掌握并行计算技术有着重要的指导作用。