嗨, 欢迎来到课程的第一部分。
并行计算和Python入门。
在本节中, 我们将讨论并行计算和内存架构。
我们还将关注内存组织和并行编程模型。
接下来, 我们将看到如何设计并行程序, 并评估并行程序的性能。
此外, 我们将介绍Python。
并且我们将与流程一起工作, 并与他们一起调节。
所以我们来看看这部分的第一部影片。
并行计算内存架构。
在这个视频中, 我们将了解Flynn的分类法, 其中包括SISD, MISD, SIMD和MIMD。
我们现在来看看并行计算内存架构。
基于可以同时处理的指令和数据的数量, 计算机系统被分为四类。
一, 单指令单数据, SISD。
二, 单指令多数据, SIMD。
三, 多指令单数据, MISD。
四, 多指令多数据, MIMD。
这种分类被称为Flynn的分类法。
让我们明白SISD是什么。
SISD计算系统是一个单处理器。
它执行在单个数据流上操作的单个指令。
在SISD中, 依次处理机器指令。
在一个时钟周期中, CPU执行一次, 取出的操作。 CPU从被称为寄存器的存储器区域读取数据和指令。
二, 解码。 CPU解码指令。
三, 执行。该指令是对数据进行的。操作结果存储在另一个寄存器中。
一旦执行阶段完成, CPU将自己设置为开始另一个CPU周期。
这就是SISD架构架构的工作原理。
在这些类型的计算机上运行的算法是连续的或串行的。
因为它们不包含任何并行性。
SISD计算机的示例是具有单个CPU的硬件系统。
这些架构的主要元素, 也称为冯·诺依曼(Von Neumann)架构, 如图所示。
一, 中央存储单元。这用于存储指令和程序数据。
二, CPU。这用于从存储器单元获取指令和/或数据, 该指令和/或数据对指令进行解码并依次执行它们。
三, I / O系统。这是指程序的输入数据和输出数据。
传统的单处理器计算机被分类为SISD系统。
该图具体显示了在获取, 解码和执行阶段使用CPU的哪个区域。
现在我们来看看MISD是什么。
在这个模型中, 在处理器中, 每个都有自己的控制单元, 共享一个内存单元。
并且每个时钟周期, 从存储器接收的数据被所有处理器同时处理。
每个都与从其控制单元收到的指令相矛盾。
在这种情况下, 通过在同一条数据上执行多个操作来获得并行性, 指令级并行性。
在这些架构中可以有效解决的问题类型相当特别。
如关于数据加密的那些。
为此, 电脑MISD在商业领域没有找到空间。
MISD电脑比实际配置更多是一种智力锻炼。
这就是MISD架构方案的外观。
接下来我们来看一下SIMD。
SIMD计算机由n个相同的处理器组成, 每个处理器都有自己的本地存储器, 可以存储数据。
所有处理器都可以在单个指令流的控制下工作。
除此之外, 还有n个数据流。
一个为每个处理器。
处理器在每个步骤上同时工作并执行相同的指令, 但是在不同的数据元素上。
这是数据级并行性的一个例子。
SIMD架构比MISD架构更加通用。
涵盖广泛应用的许多问题可以通过SIMD计算机上的并行算法来解决。
另一个有趣的特征是这些计算机的算法相对容易设计, 分析和实现。
限制是, 只有可以分为多个子问题的问题, 这些问题都是相同的, 每个问题将通过同一组指令同时解决。
可以使用SIMD电脑进行寻址。
用超级计算机开发, 根据这个标准, 我们必须提到连接机, 1985思想机。
一个NPP, 从1983年是NASA。
正如我们将在第六部分中看到的那样, GPU编程与python, 现代图形处理器单元的Athene或GPU, 搭配许多SIMD嵌入式单元, 已经导致了更广泛地使用这种计算机的典范。
我们现在开始了解MIMD是什么。
根据Flynn的分类, 这类并行计算机是最通用, 更强大的类。
这里有终端处理器和指令流, 以及n个数据流。
每个处理器都有自己的控制单元和本地存储器。这使得MIMD架构比SIMD中使用的架构更具计算能力。
每个处理器在其自己的控制单元发出的指令流的控制下操作。
因此, 处理器可以在不同的数据上运行在不同的程序中。
解决不同的子问题, 可以成为一个更大问题的一部分。
在MIMD中, 通过线程和/或进程的并行级别来实现架构。
这也意味着处理器通常异步运行。该类中的计算机用于解决SIMD模型不需要常规结构的问题。
如今, 这种架构应用于许多PC, 超级计算机和计算机网络。
但是, 有一个你需要考虑的柜台。异步算法难以设计, 分析和实现。大。
所以现在我们知道并行计算内存架构如何工作。
在下一个视频中, 我们将看看内存组织。