python并行编程学习之并行计算存储体系结构
基于指令和可被同时处理的存储单元的数目,计算机系统可以分为以下四种类目:
- 单指令,单数据单元(SISD)在该体系结构中,计算机是单处理器机器,一次只能用单一的指令来操作单一的数据流。在SISD中,机器指令按照顺序被处理。在一个计算机的时钟周期里,CPU执行三个操作,匹配、译指(decode,解码)和执行。
所谓匹配,指的是CPU从寄存器中读取需要进行操作处理的数据以及需要执行的指令;
所谓译指,是指CPU对指令的解码,使得计算机能够将指令转换为机器所能读懂的二进制码;
所谓执行,是指指令在数据上执行,所得的计算结果,存储到另一个寄存器中。
以上三个操作,不只是在SISD结构中存在,它们是所有计算机运行执行的基本操作。
在这种体系结构中,CPU按照顺序执行相应的程序,该架构主要包含三个部分,中心存储单元、CPU以及I/O系统,中心存储单元用于存储指令和程序数据;CPU用于从存储单元中获取数据和指令,并且 对指令进行译指,然后按照程序既定的顺序执行它。I/O系统则是用来输入和输出程序的数据。
- 单指令,多数据单元(SIMD)SIMD结构的计算机,由n个相同的处理器构成,每个处理器拥有其独有的存储单元,用于存储数据。所有处理器在单一指令流的控制下工作,另外,每个处理器处理相对应的一条数据流。每个处理器对不同的数据,同时执行同一条指令。这种架构比MISD架构功能更为全面和强大。在这种结构的计算机中,结合并行算法,适合解决涵盖多种功能的问题,此外,在这种计算机结构中,算法更容易设计、分析以及嵌入。唯一的限制是,需要将一个大问题分成多个子问题,要求每个子问题都是相同性质的,这样每个子问题才能通过相同的指令被同时处理。
- 多指令,单数据单元(MISD)在这个结构中,计算机拥有多个处理器核,每个处理器拥有其自己的控制单元,它们共享存储单元。在每个时钟周期中,每个处理器根据从自己的控制单元中读取的指令,同时处理从存储器中读取的数据。在这个结构下,并行性(指令层面的并行性)是通过对同一段数据执行多种操作而获得的。在这个结构中,能够解决的问题类型相当特殊,比如与数据加密有关的问题。
- 多指令,多数据单元(MIMD)。
python并行编程学习之并行计算存储体系结构的更多相关文章
- python并行编程学习之绪论
计算机科学的研究,不仅应该涵盖计算处理所基于的原理,还因该反映这些领域目前的知识状态.当今,计算机技术要求来自计算机科学所有分支的专业人员理解计算机处理的基础的关键,在于知道软件和硬件在所有层面上的交 ...
- python并行编程
一.编程思想 并行编程的思想:分而治之,有两种模型 1.MapReduce:将任务划分为可并行的多个子任务,每个子任务完成后合并得到结果 例子:统计不同形状的个数. 先通过map进行映射到多个子任务, ...
- 转:Python语言编程学习资料(电子书+视频教程)下载汇总
开发工具: Python语言集成开发环境 Wingware WingIDE Professional v3.2.12 Python语言集成开发环境 Wingware WingIDE Professio ...
- Python并行编程的几个要点
一.基于线程的并行编程 如何使用Python的线程模块 如何定义一个线程 如何探测一个线程 如何在一个子类中使用线程 Lock和RLock实现线程同步 信号实现线程同步 条件(condition)实现 ...
- Python并行编程(十四):异步编程
1.基本概念 除了顺序执行和并行执行的模型以外,还有异步模型,这是事件驱动模型的基础.异步活动的执行模型可以只有一个单一的主控制流,能在单核心系统和多核心系统中运行. 在并发执行的异步模型中,许多任务 ...
- Python并行编程(二):基于线程的并行
1.介绍 软件应用中使用最广泛的并行编程范例是多线程.通常一个应用有一个进程,分成多个独立的线程,并行运行.互相配合,执行不同类型的任务. 线程是独立的处理流程,可以和系统的其他线程并行或并发地执行. ...
- python面向对象编程学习
python面向对象编程 基本概念理解 面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作 ...
- python 面向对象编程学习
1. 问题:将所有代码放入一个py文件:无法维护 方案:如果将代码才分放到多个py文件,好处: 1. 同一个名字的变量互相不影响 2.易于维护 3.引用模块: import module 2.包:解决 ...
- python 函数式编程学习笔记
函数基础 一个函数就是将一些语句集合在一起的部件,它们能够不止一次地在程序中运行.函数的主要作用: 最大化的代码重用和最小化代码冗余 流程的分解 一般地,函数讲的流程是:告诉你怎样去做某事,而不是让你 ...
随机推荐
- C语言--指针详解
这段时间在看 Linux 内核,深觉 C 语言功底不扎实,很多代码都看不太懂,深入学习巩固 C 语言的知识很有必要.先从指针开始. 一.什么是指针 C语言里,变量存放在内存中,而内存其实就是一组有序字 ...
- Python多重赋值
可以将变量名视对象的一个链接 >>>foo1 = foo2 = 4.3 >>>foo1 is foo2 True >>>foo1 = 4.3 &g ...
- 扩展Lucas定理 扩展Lucas板子
题意概述:多组询问,给出N,K,M,要求回答C(N,K)%M,1<=N<=10^18,1<=K<=N,2<=M<=10^6 分析: 模数不为质数只能用扩展Lucas ...
- python struct详解
转载:https://www.cnblogs.com/gala/archive/2011/09/22/2184801.html 有的时候需要用python处理二进制数据,比如,存取文件,socket操 ...
- dRMT: Disaggregated Programmable Switching
dRMT: Disaggregated Programmable Switching 2017年SIGCOMM会议上提出的新型可编程交换机架构,对2013年提出的RMT架构存在的问题进行了优化. 主要 ...
- javascript方法扩展
String.prototype.startWith = function(str){ return str.indexOf(str) == 0; }; var str = "abc&quo ...
- 面试Tips
面试Tips 面向对象:准备找工作的同学 内容概述:关于面试的一些经验总结,希望能带给你些许帮助.若有描述不准确的地方,欢迎指点建议. 内容提炼:共分为四阶段 1.面试前之静生慧 (1)课本知识过一遍 ...
- Java & hashCode作用
首先,想要明白hashCode的作用,你必须要先知道Java中的集合. 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set.你知道它们的区别吗?前者集合内的元素 ...
- oracle与DB2的一些架构
首先,我们需要理解 Oracle 使用的架构,并理解它与 DB2 的不同之处.图 1 展示了 Oracle 的系统结构.将该图与 图 2 进行比较,后者显示了 DB2 的系统结构.在阅读本文的时候,为 ...
- mysql-otp 驱动中设置utf8mb4
utf8mb4支持emoji表情,在mysql中设置连接字符集为utf8mb4可以直接储存emoji表情. 可以在客户端连接中设置: SET NAMES utf8mb4 查看是否起效: SHOW VA ...