多核程序设计"/>
【期末复习】Intel多核程序设计
文章目录
- Intel多核程序设计
- 期末考试题型:
- 一、简答题
- 1.按照硬件工艺可以将计算机的发展分为哪五代?
- 2.可以从哪两个角度对微处理器进行分类?并分别列举出相应的类型。
- 3.Intel公司的理论贡献有哪两个方面?并分别进行阐述。
- 4.请列出五种国产CPU品牌的名称并指出对应的研发单位。
- 5.什么叫多核处理器?
- 6.弗林分类法的依据是什么?他把计算机系统的结构分成哪四类?(PPT第二章)
- 单指令流单数据流 (SISD ,Single Instruction stream Single Data stream)
- 单指令流多数据流 (SIMD, Single Instruction stream Multiple Data stream)
- 多指令流单数据流 (MISD ,Multiple Instruction stream Single Data stream)
- 多指令流多数据流 (MIMD ,Multiple Instruction stream Multiple Data stream)
- 7.在多核芯片体系结构中,同构多核和异构多核的定义分别是什么?(第一章)
- (1) 同构多核
- (2) 异构多核
- 8.请列举五种主要的并行计算机系统名称。(第二章 (1))
- 9.在中央处理器中,指令是以某种控制形式被解释的,一般有哪几种控制方式?(第二章 (1))
- 10.请分别阐述并行和并发的定义,并说明二者之间的关系。
- 11.请分别阐述多处理机和多计算机的定义,并简要说明二者之间最本质的区别是什么?
- 12.什么是多处理机?可以从哪三个方面对多处理机进行分类?
- 13.请阐述程序、作业和进程的定义。(第三章)
- 程序
- 作业
- 进程
- 14.进程和线程的定义分别是什么?
- 进程
- 线程
- 15.线程具有哪四种基本状态?
- 16.线程具有哪五种基本操作?
- 派生(spawn)
- 调度(schedule)
- 结束(Finish)
- 阻塞(Block)
- 激活(unblock)
- 17.多线程机制的优点包括哪五个方面?
- 18.可以将多线程分成哪三类?
- 用户级线程
- 内核级线程
- 组合模式
- 19.用户级线程和内核级线程之间存在哪三种映射模型?
- 一对一模型
- 多对一模型
- 多对多模型
- 20.多线程同步的原因是什么?
- 21.什么是线程同步?
- 22.Win32线程同步有哪五种方式?(第四章)
- 23.Win32 函数库中提供了操作多线程的函数,包括哪四个接口?
- 24.OpenMP的执行模型采用什么形式?它的应用程序由哪三个部分组成?
- 25.在OpenMP多线程应用程序中,请比较循环并行化和并行区域编程的主要区别是什么?
- 二、画图题
- 1、试画出求解下式的树形流程图,并求出TP、EP和SP。
- 2、试画出下列程序段中各语句之间的数据关系表达式和数据相关图。
- 3、求A1, A2, … ,A8的累加和的程序如下:
- 三、程序题
Intel多核程序设计
期末考试题型:
1、简答题 6道×5分=30分
2、画图题 2道×10分=20分
3、程序题 5道×10分=50分
一、简答题
1.按照硬件工艺可以将计算机的发展分为哪五代?
第一代(1946-1958):电子管数字计算机;
第二代(1958-1964):晶体管数字计算机;
第三代(1964-1971):集成电路数字计算机,如:SSI/MSI;
第四代 (1971-1990):大规模/超大规模集成电路数字计算机,如:LSI/VLSI;
第五代 (1991-):甚大规模集成电路数字计算机,如:ULSI
SSI / MSI:Small/Medium Scale Integration
LSI / VLSI: Large Scale Integration/Very Large Scale Integration
ULSI: Ultra Large Scale Integration
2.可以从哪两个角度对微处理器进行分类?并分别列举出相应的类型。
微处理器的分类:
(1)按照CPU处理信息的字长可以分为:
4位微处理、8位微处理器、16位微处理器、32位微处理器及64位微处理器
(2)按照CPU内部结构中核心数的多少,又可以分为:单核、多核
3.Intel公司的理论贡献有哪两个方面?并分别进行阐述。
Intel公司的理论贡献如下:
摩尔定律
每隔18个月,芯片上可以集成的晶体管数目将增加一倍。
钟摆理论
在奇数年,英特尔将会推出新的工艺;而在偶数年,英特尔则
会推出新的架构。简单的说,就是奇数工艺年和偶数架构年的
概念。例如:2005年英特尔更新从90纳米走向65纳米,2006年
英特尔推出酷睿架构。 2007年走向45纳米。值得注意的是,
首先它不会在一年内两个技术同时出现。每一年都可以在上个
技术上再提升一个规模。
4.请列出五种国产CPU品牌的名称并指出对应的研发单位。
龙芯(Loongson):中国科学院计算机技术研究所
申威(SW处理器):江南计算机所(总参56所)(无锡)
飞腾:国防科学技术大学
北大众志(MPRC):北京北大众志微系统科技有限责任公司
兆芯:兆芯集成电路公司(威盛与上海市政府合资成立的公司)
海思(Hisilicon):深圳海思半导体有限公司(属于华为集团)
展讯:展讯通信有限公司(隶属于清华紫光集团)
5.什么叫多核处理器?
定义:多核(即多核心)CPU是指,在同一个CPU硅晶片上集成了多个独立物理核心,每个核心都具有独立的逻辑结构,包括一二级缓存、执行单元、指令级单元和总线接口等逻辑单元,在实际工作中多个核心协同工作,能达到比具有同级单个独立物理核心(即单核)的CPU增倍的工作性能。
6.弗林分类法的依据是什么?他把计算机系统的结构分成哪四类?(PPT第二章)
按照指令流和数据流的不同组织方式,把计算机系统的结构分为以下四类:
单指令流单数据流 (SISD ,Single Instruction stream Single Data stream)
SISD计算机是传统的顺序执行的计算机,在同一时刻只能执行一条指令(即只有一个指令流),处理一个数据(即只有一个数据流)。
SISD计算机通常由一个处理单元和一个存储器组成,如下图所示。它通过执行单一的指令流,对单一的数据流进行操作,指令按顺序读取,数据在每一时刻也只能读取一个。
其主要缺点是单个处理单元的处理能力有限,同时,这种结构也没有发挥数据处理中的并行潜力,在实时系统和高速系统中,很少采用SISD结构。
单指令流多数据流 (SIMD, Single Instruction stream Multiple Data stream)
SIMD计算机属于属于并行结构计算机,一条指令可以同时对多个数据进行运算。
SIMD计算机由单一的指令控制部件控制,按照同一指令流的要求,为多个处理单元分配各不相同的数据,并进行处理。SIMD系统结构由一个控制单元、多个处理单元、多个存储模块和一个互联网络组成,如下图所示:
多指令流单数据流 (MISD ,Multiple Instruction stream Single Data stream)
MISD计算机具有多个处理单元,这些处理单元组成一个线性阵列,分别执行不同的指令流,而同一个数据流则顺序通过这个阵列中的各个处理单元,如下图所示:
MISD系统结构只适用于某些特定算法,在目前常见的计算机系统中很少见。
多指令流多数据流 (MIMD ,Multiple Instruction stream Multiple Data stream)
MIMD计算机属于并行结构计算机,多个处理单元根据不同的指令流执行不同的操作,处理不同的数据。
MIMD系统是计算机能够实现指令、数据作业、任务等各级全面并行计算的多处理系统。典型的MIMD系统由多个处理单元、多个存储模块和一个互联网络组成,如下图所示:
7.在多核芯片体系结构中,同构多核和异构多核的定义分别是什么?(第一章)
根据计算内核的对等与否,CMP可分为同构多核和异构多核.
(1) 同构多核
计算内核相同,地位对等的称为同构多核,现在Intel和AMD主推的双核处理器,就是同构的双核处理器。
也可以理解成同构多核是指:CPU里面只有单纯的CPU运算模块 ,没有其他模块在里面。
(2) 异构多核
计算内核不同,地位不对等的称为异构多核,异构多核多采用“主处理核+协处理核”的设计,IBM、索尼和东芝等联手设计推出的Cell处理器正是这种架构的典范。
也可以理解成异构多核处理器是指:在CPU里集成了CPU与其他模块一起同步工作,也就是说一块CPU里不单有 CPU运算模块还有其他运算模块,例如 :GPU 显卡运算模块,也就是现在的所谓核显。
8.请列举五种主要的并行计算机系统名称。(第二章 (1))
并行计算机系统除少量早期的、专用的SIMD系统外,绝大部分为MIMD系统,目前,主要的并行计算机系统有以下五种:
- 并行向量机(PVP, Parallel Vector Processor)
- 对称多处理机(SMP, Symmetric Multiprocessor)
- 大规模并行处理机(MPP, Massively Parallel Processor)
- 机群(Cluster)
- 分布式共享存储多处理机(DSM, Distributed Shared Memory)
9.在中央处理器中,指令是以某种控制形式被解释的,一般有哪几种控制方式?(第二章 (1))
在中央处理器(Center Processing Unit,CPU)中,指令是以某种控制形式被解释的。一般有顺序控制、重叠控制和流水控制三种方式。
- 顺序控制方式
机器指令顺序串行地执行,指令内部的微操作也顺序串行地执行,这就是顺序控制方式。若把一条指令的微操作归并为取指令,分析和执行三个阶段,则顺序方式如下图所示。
- 重叠控制方式
在第K条指令操作完成之前,就可对第K+1条指令进行操作,这就是重叠控制方式。
- 流水控制方式
若把重叠中的分析再细分(当然,所细分成的部分必须有相应独立的功能段),也就构成了流水控制方式。
我们把一条指令的解释分为如图所示的5个过程,
那么采用流水过程的时空关系就如下图所示。
- 相关及其处理
一段程序的相邻指令不能被同时操作的现象称相关。
例 :
相关可以分为两类:全局相关(控制相关)和局部相关(数据相关)。MOV AX,1234H ADD AX,AX
由条件转移指令、转子程序指令和中断引起的相关称控制相关,执行当前指令需要前面指令的执行结果引起的相关称作数据相关。
10.请分别阐述并行和并发的定义,并说明二者之间的关系。
并行和并发的区别
并行是指两个或者多个事件在同一时刻发生,即:在多个核或者多个CPU上同时发生。
并发是指两个或者多个事件在同一时间间隔内发生,即:在单核或者单个CPU上先后执行。
并行则一定并发,但是反之不成立。
例如:一个大人同时给两个小孩喂饭属于并发行为,表面上看上去,两个小孩都在吃饭。但是,若换成两个大人分别给其中的一个小孩喂饭,那么此时的行为属于并行。
11.请分别阐述多处理机和多计算机的定义,并简要说明二者之间最本质的区别是什么?
多处理机和多计算机
多处理机与多计算机都属于MIMD类的并行计算机。一般以是否具有共享存储器作为标志对它们进行区分。具有共享存储器的通常称为多处理机;而不具有共享存储器的称作多计算机。
12.什么是多处理机?可以从哪三个方面对多处理机进行分类?
由n(n>=2)台处理机经某种互联方式连接构成的计算机系统称多处理机。
多处理机可以从处理机之间的耦合度、处理机之间相互连接的方式、系统结构模型三个方面来对多处理机进行分类。
13.请阐述程序、作业和进程的定义。(第三章)
程序
对数据进行处理的指令序列。其特点是存储在辅助存
储器(如硬盘)上。
作业
程序从被选中执行,到其运行结束,并又成为程序的
这一完整过程中的程序。
进程
被装入主存储器中的作业。
14.进程和线程的定义分别是什么?
进程
是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。
线程
是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。
15.线程具有哪四种基本状态?
16.线程具有哪五种基本操作?
派生(spawn)
线程在进程内派生出来,它既可由进程派生,也可由线程派生。
调度(schedule)
选择一个就绪线程进入执行状态。
结束(Finish)
如果一个线程执行结束,它的寄存器以及堆栈内容等将被释放。
阻塞(Block)
如果一个线程在执行过程中需要等待某个事件发生,则被阻塞。
激活(unblock)
如果阻塞线程的事件发生,则该线程被激活并进入就绪队列。
17.多线程机制的优点包括哪五个方面?
- 创建一个线程比创建一个进程的代价要小:由于线程共享进程的资源,所以线程被创建时不需要再分配内存空间等资源。
- 线程的切换比进程间的切换代价小:线程作为执行单元,当从同一个进程的一个线程切换到另一线程时,需要载入的信息比进程切换时要少。
- 充分利用多处理器:同一进程的线程可以在多个处理器上并行运行,该进程的运行速度可以显著提高,而单线程的进程却只能在一个处理器上运行不能充分利用多个处理器。
- 数据共享:对于同一进程的线程来说,它们共享同一块地址空间,可以访问相同的数据。
- 快速响应特性:对于交互程序来说,多线程设计的优势是,当执行一些耗时或者可能被阻塞的操作时,其他部分仍然保持运行和响应。
18.可以将多线程分成哪三类?
用户级线程
管理过程全部由用户程序完成,操作系统内核只对进程进行管理。
内核级线程
所有管理操作都是由操作系统内核完成的。在多处理器系统上,内核可以分派属于同一进程的多个线程在多个处理器上运行,提高进程执行的并行度。
组合模式
有的操作系统提供了组和的线程模式,在Solaris中,用户创建的多个用户级线程被映射到一些内核线程上。
19.用户级线程和内核级线程之间存在哪三种映射模型?
一对一模型
把每个用户级线程映射到一个内核级线程。
多对一模型
把多个用户级线程映射到一个内核级线程。
多对多模型
将m个用户级线程映射到n个内核级线程,m大于或等于n。
20.多线程同步的原因是什么?
由于线程共享同一进程的内存空间,多个线程可能需要同时访问同一个数据。如果没有正确的保护措施,对共享数据的访问会造成数据的不一致和错误。
21.什么是线程同步?
进程、线程同步,可理解为进程或线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B依言执行,再将结果给A;A再继续操作。
在多线程编程里面,一些敏感数据不允许被多个线程同时访问,此时就使用同步访问技术,保证数据在任何时刻,最多有一个线程访问,以保证数据的完整性。
22.Win32线程同步有哪五种方式?(第四章)
- 全局变量
- 事件(Event)
- 临界区(Critical section)
- 互斥量(Mutex)
- 信号量(Semaphore)
23.Win32 函数库中提供了操作多线程的函数,包括哪四个接口?
- 创建线程
- 管理线程
- 终止线程
- 线程同步
24.OpenMP的执行模型采用什么形式?它的应用程序由哪三个部分组成?
OpenMP的执行模型采用Fork-Join的形式
编译指导语句(compiler directive)、运行函数库(runtime library)和环境变量(environment variables)
25.在OpenMP多线程应用程序中,请比较循环并行化和并行区域编程的主要区别是什么?
- 并行区域采用了复制执行的方式,将代码在所有的线程内部都执行一次
- 循环并行化采用了工作分配的执行方式,将循环所需要的所有工作量按照一定的方式分配到各个执行线程中,所有线程执行工作的总和是原先串行执行所完成的工作量
二、画图题
1、试画出求解下式的树形流程图,并求出TP、EP和SP。
2、试画出下列程序段中各语句之间的数据关系表达式和数据相关图。
S1: A=SIN(B)
S2: C=D+A
S3: B=(D+2)
S4: A=COS©
3、求A1, A2, … ,A8的累加和的程序如下:
S1:A1=A1+A2
S2:A3=A3+A4
S3:A5=A5+A6
S4:A7=A7+A8
S5:A1=A1+A3
S6:A5=A5+A7
S7:A1=A1+A5
(1)画出数据关系表达式和数据相关图;
(2)写出用fork、join语句表示其并行任务的派生和汇合关系的程序;
三、程序题
4.1 4.1.1 4.3 4.5 6.1 6.10 6.11 6.15 6.18
6.21
更多推荐
【期末复习】Intel多核程序设计
发布评论