第2章并行编程基础 <1并行编程综述 2进程任务和线程 C3并行性问题 24交互和通信问题 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 第2章 并行编程基础 ◼1 并行编程综述 ◼ 2 进程任务和线程 ◼ 3 并行性问题 ◼ 4 交互和通信问题
1并行编程综述 并行编程处于令人遗憾的状况: 并行软件开发远落后于并行硬件的进展 缺少合适的并行软件是阻碍主流用户接 纳并行计算的主要原因。 a与顺序计算相比,当今的并行系统软件 和应用软件不仅数量很少,而且功能性也 相当原始。 隧道之末总有阳光。 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 1 并行编程综述 ◼ 并行编程处于令人遗憾的状况: ❑ 并行软件开发远落后于并行硬件的进展。 缺少合适的并行软件是阻碍主流用户接 纳并行计算的主要原因。 ❑ 与顺序计算相比,当今的并行系统软件 和应用软件不仅数量很少,而且功能性也 相当原始。 ◼ 隧道之末总有阳光
并行编程缘何艰难 在并行编程中有许多不同的模型。是 个更复杂的智力活动。 并行程序的编译器、调试程序、以及 特征分析器( profiler)要比串行程序 落后得多。 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 一、并行编程缘何艰难 ◼ 在并行编程中有许多不同的模型。是 一个更复杂的智力活动。 ◼ 并行程序的编译器、调试程序、以及 特征分析器(profiler)要比串行程序 落后得多
应用数据库、科学、工程和嵌入式系统等 顺序串行 并行 份而治之动态规划计算交互工作池异步迭代 算法范例分支和限制回溯、流水,主-从细孢元自动机 贪婪 蕴式并行(KAP) 数据并行 outran9o.HPF 编程模型,冯;诺依曼模型 消息传递(PVM,MP1) 共享变呈(X3H5) (Fortran, C, Cobo l 共享存储器(PP,SMP,DSM) 消息传递(MP, Clusters) 并行和顺序编程比较 数据并行(S|MD) 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院
1.顺序编程 口长期以来已建立了许多算法范例 些实现指导用户从事算法设计 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ◼1.顺序编程 ❑长期以来已建立了许多算法范例 ❑一些实现指导用户从事算法设计
2.并行编程 并行编程处于初级阶段; 口对于并行问题的应用,不太可 能有一个现成的并行代码; 口并行代码的机器不同。 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 2.并行编程 ◼并行编程处于初级阶段; ❑对于并行问题的应用,不太可 能有一个现成的并行代码; ❑并行代码的机器不同
口并行编程也不支持成熟、通用和稳 定的工具; 口并行算法范例仍未能被很好地理解 或被广泛地接受; a不存在单一、通用的机器模型; 口并行编程的模型有两级,而在每 级上又有许多不同模型。 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ❑并行编程也不支持成熟、通用和稳 定的工具; ❑并行算法范例仍未能被很好地理解 或被广泛地接受; ❑不存在单一、通用的机器模型; ❑并行编程的模型有两级,而在每一 级上又有许多不同模型
口与顺序语言在编程或自然模型级上缺 少代可扩展和异构可扩展的能力 这些并行语言大多数在当前系统上使 用的并行语言均是 Fortran或的某种 扩展。 口一个编程模型即是程序员在开发一个 并行程序时所见到和使用的模型。 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ❑与顺序语言在编程或自然模型级上缺 少代可扩展和异构可扩展的能力 ◼ 这些并行语言大多数在当前系统上使 用的并行语言均是Fortran或C的某种 扩展。 ❑一个编程模型即是程序员在开发一个 并行程序时所见到和使用的模型
口一个自然模型是由一个特定并行计算机平 台所提供的、用户可见的最低层的编程模 型。其他的编程模型可在此自然模型上加 以实现。 例如,在一个 SGI Power Chal lenge计算机上 (它是SMP),自然模型为共享变量模型(如 SG I Power C) 数据并行(如HPF)和消息传送(如MP)可在其 顶部实现。 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ❑ 一个自然模型是由一个特定并行计算机平 台所提供的、用户可见的最低层的编程模 型。其他的编程模型可在此自然模型上加 以实现。 ◼ 例如,在一个SGI PowerChallenge计算机上 (它是SMP), 自然模型为共享变量模型(如 SGIPowerC)。 ◼ 数据并行(如HPF)和消息传送(如MPl)可在其 顶部实现
3并行编程进展 尽管以上的回顾较为悲观,但在并行 编程领域已有了许多进步 已开发了许多并行算法。 口尽管大多数算法基于非现实的PRAM模型, 但其中某些在作适当修正后可以实用 已涌现一小批简单的并行算法范例, 且已逐步为用户所接受。 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 3.并行编程进展 ◼ 尽管以上的回顾较为悲观,但在并行 编程领域已有了许多进步: ◼ 已开发了许多并行算法。 ❑ 尽管大多数算法基于非现实的PRAM模型, 但其中某些在作适当修正后可以实用。 ◼ 已涌现一小批简单的并行算法范例, 且已逐步为用户所接受