多核程序的设计考试题.docx
- 文档编号:16804325
- 上传时间:2023-07-17
- 格式:DOCX
- 页数:55
- 大小:58.88KB
多核程序的设计考试题.docx
《多核程序的设计考试题.docx》由会员分享,可在线阅读,更多相关《多核程序的设计考试题.docx(55页珍藏版)》请在冰点文库上搜索。
多核程序的设计考试题
一、简述用户级线程和内核级线程之间的映射模型有哪些,并分别加以说明:
1.多对一模型
1)多对一模型把多个用户级线程映射到一个内核级线程。
2)线程的管理在用户空间实现,所以效率高。
3)当一个线程因调用系统调用被阻塞时,整个进程被阻塞。
2.一对一模型
1)一对一模型把每个用户级线程影射到一个内核级线程。
2)当一个线程阻塞时,其他线程仍然可以运行。
3.多对多模型
1)多对多模型将m个用户级线程影射到n个内核级线程,m≥n。
2)用户可以创建所需要的用户级线程,通过分配适当数目的内核级线程获得并发执行的优势并节省系统资源。
二、简述下列Windows多线程程序设计中常用函数的含义
ResumeThread();
被挂起线程的恢复运行
TerminateThread();
终止线程运行
InitializeCriticalSection();
初始化线程临界区
CreateMutex();
创建线程互斥量
CreateEvent();
创建线程事件
三、简述下列Linux多线程程序设计中常用函数的含义
pthread_create();
创建线程
pthread_join();
线程阻塞(同步)
pthread_attr_init();
线程属性初始化
pthread_cancel();
线程取消
sem_getvalue();
获得线程信号量值
四、常用的并行程序性能优化技术有哪些?
减少通信量,提高通信粒度
全局通信尽量利用高效集合通信算法
挖掘算法的并行度,减少CPU空闲等待
负载平衡
通信,计算的重叠
通过引入重复计算来减少通信,即以计算换通信
五、简述多线程机制的优点.
创建一个线程比创建一个进程的代价要小
线程的切换比进程间的切换代价小
充分利用多处理器
数据共享
快速响应特性
可以是程序更加模块化,减少程序逻辑
六、什么是线程、进程,它们之间的关系是什么?
答:
进程是一组离散的(执行)程序任务集合;线程是进程上下文中执行的代码序列,
又被称为轻量级进程。
进程中可包含一个或多个线程。
七、由于线程共享同一进程的内存空间,多个线程可能需要同时访问同一个数据,如果
没有正确的保护措施,对共享数据的访问会造成数据的不一致和错误。
简述Windows
环境下常用的全局变量、事件和临界区三种同步机制。
答:
进程中的所有线程均可以访问所有的全局变量,各线程根据全局变量的状态来决定
是否运行相应的线程函数,它是Win32多线程同步的最简单方式。
事件是WIN32提供的最灵活的线程间同步方式,各线程根据事件的激发状态来决
定是否运行相应的线程函数。
临界区是一种防止多个线程同时执行一个特定代码段的机制,适用于多个线程操作
之间没有先后顺序但要求互斥的同步。
多个线程访问同一个临界区的原则:
„一次最多只能一个线程停留在临界区内;
„不能让一个线程无限地停留在临界区内,否则其他线程将不能进入该临界区。
八、衡量处理器性能的主要指标是什么,并以此说明多核处理器产生的原因:
衡量处理器性能的主要指标是每个时钟周期内可以执行的指令数(IPC:
InstructionPerClock)和处理器的主频。
因此,提高处理器性能就是两个途径:
提高主频和提高每个时钟周期内执行的指令数(IPC)。
而通过改良架构来提高IPC的幅度是非常有限的,所以在单核处理器时代只能通过提高(处理器的)主频来提高性能,由于处理器功耗正比于主频的三次方,所以给处理器提高主频不是没有止境的。
而将单核处理器增加到双核处理器,如果主频不变的话,IPC理论上可以提高一倍。
所以为了达到更高的性能,在采用相同微架构的情况下,可以增加处理器的内核数量同时维持较低的主频。
(这样设计的效果是,更多的并行提高IPC,较低的主频有效地控制了功耗的上升)
九、请分别说明OpenMP指导语句#pragmaompparallel,#pragmaompparallelfor和
#pragmaompparallelprivate的含义和作用。
答:
#pragmaompparallel区域并行性指导语句,说明后续语句按多线程方式运行;
#pragmaompparallelfor循环并行化指导语句,说明后续for循环语句按多
线程方式运行;
#pragmaompparallelprivate并行区变量私有化指导语句,说明后续语句中
的某变量在多线程方式运行时被各线程私有化,每次仅容许一个线程访问该变量。
十、阐述超线程技术和多核架构在并行计算应用领域上的区别和联系:
区别:
超线程技术是通过延迟隐藏的方法提高了处理器的性能,本质上,就是多个线程共享一个处理核。
因此,采用超线程技术所获得的性能并不是真正意义上的并行,从而采用超线程技术多获得的性能提升将会随着应用程序以及硬件平台的不同而参差不齐。
多核处理器是将两个甚至更多的独立执行核嵌入到一个处理器内部。
每个指令序列(线程),都具有一个完整的硬件执行环境,所以,各线程之间就实现了真正意义上的并行。
联系:
超线程技术:
充分利用空闲CPU资源,在相同时间内完成更多工作。
与多核技术相结合:
给应用程序带来更大的优化空间,进而极大地提高系统的吞吐率。
十一、简述程序员在申请互斥资源时避免产生死锁现象的三种程序设计方案:
1)线程以相同的次序进行加锁。
2)使用非阻塞的加锁操作。
3)(由于调度可能造成某些线程长时间等待,这时可以再线程释放锁之后)通过调用yield后者类似功能的库函数或系统调用放弃cpu以便其他进程被投入执行并获得锁。
十二、简述如何衡量“锁”的粒度,“锁”的粒度与数据并行性之间的关系:
锁的粒度是上锁后保护的共享数据的多少。
减小锁的粒度可以提高对共享数据访问的并行性。
编程题:
计算圆周率Pi值(蒙特卡洛法或其它方法)
DoublePI(DOWRDdwCount)
{
Doublem=0;
For(doublen=0;n { Doublex=random (1); Doubley=random (1); If((x*x+y*y)<=1) { M++; } } Doubles=m/dwCount; PI=4*s; Return(PI); } 第1章: 多核技术导论习题 1.全世界第一台全自动电子数字计算机ENIAC于哪一年研制成功? (B) A.1944年B.1945年C.1946年D.1947年 2.计算机的硬件工艺发展顺序是: (A) A.电子管数字计算机、晶体管数字计算机、集成电路数字计算机、大规模集成电路数字计算机 B.晶体管数字计算机、电子管数字计算机、集成电路数字计算机、大规模集成电路数字计算机 C.电子管数字计算机、集成电路数字计算机、大规模集成电路数字计算机、晶体管数字计算机 D.电子管数字计算机、集成电路数字计算机、晶体管数字计算机、大规模集成电路数字计算机 3.下面关于Intel8086芯片于8088芯片的描述,不正确的是: (D) A.8086是第一个16位的微处理器。 B.8088是第一个16位的微处理器。 C.8086每周期能传送或接收16位数据D.8088每周期能传送或接收16位数据 4.针对内存的速度瓶颈,英特尔为80386设计了_______来解决这个速度瓶颈: (B) A.虚拟86B.高速缓存(Cache)C.浮点运算单元D.多媒体扩展指令集 5.为了提高电脑在多媒体、3D图形方面的应用能力,产生了许多新指令集,以下不属于这 类指令集的是: (C) A.MMXB.SSEC.浮点运算集D.3DNOW! 6.以下关于超线程技术的描述,不正确的是: (D) A.利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线 程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的 运行效率。 B.采用超线程技术可在同一时间里,使应用程序能够使用芯片的不同部分。 C.超线程技术可以使芯片同时进行多线程处理,使芯片性能得到提升。 D.是一种多核技术,揭开x86处理器多核心时代。 7.总线共享Cache结构的缺点是: (C) A.结构简单B.通信速度高 C.总线的结构可扩展性较差D.以上都是 8.为什么说从单核到多核的转变成为不可避免的历史趋势: (D) A.指令级并行的局限B.能耗与散热C.内存墙问题D.以上都是 9.从数据处理的角度看,不存在并行性的是: (A) A.字串位串B.字串位并C.字并位串D.字并位并 10.阵列处理机又称为并行处理机,它的体系结构属于_______计算机。 (B) A.SISDB.SIMDC.MIMDD.MISD 11.多处理机实现_______级的并行。 (B) A.指令内部B.指令C.任务或过程D.作业或程序 12.主存储器和CPU之间增加cache的目的是: (A) A.解决CPU和主存之间的速度匹配问题 B.扩大CPU中通用寄存器的数量 C.扩大主存储器的容量 D.既扩大主存储器的容量又扩大CPU中通用寄存器的数量 13.存储周期是: (C) A.存储器的读出时间B.存储器的写入时间 C.存储器进行连续读和写操作所允许的最短时间间隔 D.存储器进行连续写操作所允许的最短时间间隔 14.交叉存储器实际上是一种_____存储器,它能_____执行______独立的读写操作。 (A) A.模块式,并行,多个B.模块式,串行,多个 C.整体式,并行,一个D.整体式,串行,多个 15.提高微处理器性能的途径有哪些。 (D) A.提高芯片内部时钟的工作频率 B.增加芯片数据总线的宽度,提高微处理器与片外传送数据或指令代码的速率,同时片内 的数据路径也必然加宽,内部的数据处理速度会加快 C.采用能够并行执行指令的微体系结构及其它相关技术 D.以上都是 16.对于Linux2.6内核的调度算法,以下表述不正确的是: (B) A.系统为每个处理器都维持一个单独的就绪队列,就绪队列包括活动的就绪队列和扩展的 就绪队列 B.任务的调度是基于先来先服务调度的 C.当活动就绪队列中的任务全部时间片结束或者等待IO挂起,只要进行简单的指针操作, 就可以相互转换活动就绪队列和扩展就绪队列 D.实现了负载均衡 17.弗林(Flynn)根据指令流和数据流的不同组织方式,把计算机系统的结构进行了分类, 以下属于弗林分类的是: (ABCD) A.单指令流单数据流(SingleInstructionstreamSingleDatastream--SISD) B.单指令流多数据流(SingleInstructionstreamMultipleDatastream--SIMD) C.多指令流单数据流(MultipleInstructionstreamSingleDatastream--MISD) D.多指令流多数据流(MultipleInstructionstreamMultipleDatastream--MISD) 18.以下哪个不属于SIMD。 (D) A.并行处理机B.阵列处理机C.向量处理机D.标量流水线处理机 19.对于对称多处理器(SMP),以下表述不正确的是: (C) A.SMP是指在一个计算机上汇集了一组处理器,各处理器之间共享内存子系统以及总线结构。 B.一台电脑不再由单个CPU组成,而同时由多个处理器运行操作系统的单一复本,并共享 内存和一台计算机的其他资源。 C.所有的处理器都可以平等地访问内存、I/O,但对于外部中断,各个处理器有不同的优先权。 D.在SMP系统中,系统资源被系统中所有CPU共享,工作负载能够均匀地分配到所有可 用处理器之上。 20.对于集群计算机,以下表述不正确的是: (C) A.集群计算机是一种并行或分布式处理系统,由很多连接在一起的独立计算机组成。 B.一个集群一般是指连接在一起的两个或多个计算机(节点)。 节点可以是在一起的,也可以是物理上分散而通过网络连结在一起的。 C.一个连接在一起的计算机集群对于用户和应用程序来说是一个一个分布的系统。 D.集群计算机是随着微处理器和网络技术的进步而逐渐发展起来的,它主要用来解决大型 计算问题。 21.对于多核处理器,计算内核相同,地位对等的称为_____;计算内核不同,地位不对等的称为_________。 (B) A.异构多核,同构多核B.同构多核,异构多核 C.都是异构多核D.都是同构多核 22.高效的通信机制是CMP处理器高性能的重要保障,目前比较主流的片上高效通信机制有: (BC) A.基于共享寄存器的结构B.基于片上的互连结构 C.基于总线共享的Cache结构D.基于共享内存的结构 23.对于高级编程中断控制器(APIC),以下表述不正确的是: (D) A.减缓与中断相关的内存总线传输压力,从而使得内存总线可用程度更高 B.帮助核之间更好的处理来自别的核的中断 C.APIC接收来自处理器中断引脚的来自内部或外部I/OAPIC的中断,然后将这些中断发送过处理器核处理 D.在多核处理器系统中,APIC不能够接受发送核内中断(Interprocessorinterrupt即IPI)消息 24.基于片上互连的结构的优点是: (AB) A.可扩展性好B.数据带宽有保证C.硬件结构复杂D.软件改动较大 25.对于Cell的编程规范,以下表述不正确的是: (D) A.要求程序员对每个核进行单独的编程B.通过特殊的编译器和链接器得到二进制代码 C.PPE和SPE是不同的编程模式D.PPE和SPE是相同的编程模式 第2章: 多线程并行程序性能分析方法综述习题 1.性能调优周期螺旋式上升的5个主要阶段依次是: (A) A.获取性能数据->分析数据,定位性能瓶颈所在->考虑解决问题的可能途径与方法->实现 解决方案->重测试 B.获取性能数据->考虑解决问题的可能途径与方法->分析数据,定位性能瓶颈所在->实现 解决方案->重测试 C.考虑解决问题的可能途径与方法->实现解决方案->重测试->获取性能数据->分析数据,定位性能瓶颈所在 D.考虑解决问题的可能途径与方法->实现解决方案->获取性能数据->分析数据,定位性能 瓶颈所在->重测试 2.需要被性能调优的程序必须处在开发的适当阶段并且必须具备如下特性: (ABC) A.程序必须是稳定的B.程序必须是有代表性的 C.程序必须使用了最新的技术D.对任何可能影响程序性能的代码都必须优化 3.为了搜集性能数据,一个好的测试数据集是必不可少的。 一个好的测试数据集需要具备哪些特点? (ABCD) A.可衡量性B.可重复性C.静态的D.有代表性 4.对于Amdahl定律,以下表述不正确的是: (A) A.对程序的可优化部分进行最高限度的性能改进就能不断地提高程序的整体性能 B.程序可能达到的加速上限为1/f C.如果要使得程序获得更高的性能,就要对程序中更大的部分进行性能调优 D.程序的性能受限于程序中性能最差的部分 5.性能调优工作包括了: (ABCD) A.改进系统平台的资源利用率B.提高有效性,减少延迟 C.增加并发度D.改进吞吐量,减少可能的性能瓶颈 6.对一个具体的问题做性能优化时,可以同时在这多个层次上考虑可能的优化手段,一般说来: (AB) A.在越高的层次上进行优化,可能获得的效益越高 B.在越低的层次上进行优化工作则相对越容易实现 C.在越高的层次上进行优化,可能获得的效益越低 D.在越低的层次上进行优化工作则相对越难于实现 7.VTune性能分析器中的取样功能有哪几种方式? (AC) A.基于时间取样B.随机取样C.基于事件取样D.线性取样 8.Intel调优助手能够给我们自动推荐代码改进办法,主要有以下哪些方面? (BCD) A.算法自动改进B.处理器瓶颈以及改进C.取样向导增强D.超线程 9.对于Vtune的兼容性,以下表述不正确的是: (B) A.支持最新的Intel处理器B.不支持Linux C.支持Windows命令行D.支持最常用的编程语言 10.MKL数学核心库的功能领域包括以下哪些? (D) A.离散傅立叶变换,ScaLAPACK软件包B.矢量数学库,矢量统计库 C.PARDISO稀疏矩阵解算器,线性代数D.以上都是 11.关于Intel(R)线程检查器,以下表述不正确的是: (D) A.监控程序执行过程中的线程行为 B.发现其中存在的竞争现象、线程阻塞以及潜在的线程死锁问题 C.提示同线程错误相关的源代码位置、侵权变量以及堆栈跟踪 D.可以快速查找但不能修复Windows和OpenMP*线程软件中的bug 12.以下哪个问题不能用Intel(R)线程检查器检测出来? (D) A.数据竞争B.线程死锁C.阻塞问题D.逻辑错误 13.对于Intel(R)线程档案器,以下表述不正确的是: (A) A.只能帮助调整Win32*线程化软件的性能 B.通过监控程序的运行来检测线程性能的相关问题,包括线程过载和同步冲突,能够帮助 查找负载平衡,同步开销等线程性能问题 C.进行关键路径分析 D.提供图形式的检测结果,可以快速查明影响程序运行时间的代码位置 14.Intel(R)线程档案器为Win32提供了哪些功能? (C) A.Win32线程关键路径分析,跟踪显示性能瓶颈 B.通过Win32*线程API对软件线程化后的性能分析 C.可与任何Windows平台上的IDE集成 D.如果不用Win32库,可以支持用户定义的同步原件 15.Intel(R)线程档案器为OpenMP提供了哪些功能? (D) A.并行代码和顺序代码的时间花费B.线程任务量不均衡 C.并行过载和顺序过载D.以上都是 16.提高微处理器内部执行的并行性有哪些措施。 (C) A.采用超级流水线技术B.采用超标量技术C.以上都是D.以上都不是 17.性能调优工作________知道什么时候结束调优,在开始性能调优工作之前,你_____对整个程序进行一个基准测试以获知程序的理论峰值。 (B) A.需要,不需要B.需要,必须C.不需要,不需要D.不需要,必须 18.Jackson优化定律是指: (C) A.不要进行优化 B.除非你已经有了一个相当清晰可靠的非优化版本的实现,否则你不要试图对程序进行优 化 C.以上两条都是 D.以上两条都不是 19.根据80/20定律,_____%的执行时间消耗在_____%的代码上。 (C) A.80,80B.20,20C.80,20D.20,80 20.多处理能力带来的最大好处是能够改进______,一个多线程程序的运行需要____个单处理器系统。 (B) A.吞吐量,多B.吞吐量,一C.频率,多D.频率,一 21.决定延迟最重要的两个因素是__________以及_________。 (D) A.内存存取时间,处理器频率B.I/O时间,处理器频率 C.I/O时间,总线带宽D.内存存取时间,I/O时间 22.并发性既可以指对单个程序使用______处理,也可以指对多个程序使用____处理。 (A) A.多任务,多任务B.多任务,单任务 C.单任务,多任务D.单任务,单任务 23.对于IntelVTune性能分析器,以下表述正确的是: (D) A.可以在程序运行的系统平台上自动搜集性能数据 B.可以将所获得的性能数据在各个不同的层次,大至系统层,下至程序源代码级,甚至到 处理器指令级,进行不同粒度的交互式可视化,帮助查找可能的性能瓶颈,并提供可能的解决方案 C.VTune既可以在本地、也可以远程搜集性能数据,并在本地进行数据处理、分析以及显示 D.以上都正确 24.对于Intel(R)线程检查器,以下表述不正确的是: (C) A.Intel(R)线程检查器监控程序执行过程中的线程行为,发现其中存在的线程阻塞以及潜在的线程死锁问题 B.提示同线程错误相关的源代码位置、侵权变量以及堆栈跟踪等 C.不能从Windows主机系统分析Linux系统中运行的线程代码 D.Intel线程检查器可以发现数据竞争现象 第3章: Intel多核处理器上的性能调优方法习题 1.独立于体系结构性能优化方法主要有: (BCD) A.编写适用于特定CPU的优化代码B.避免冗余的函数调用 C.避免不必要的边界检查D.利用局部变量保存中间计算结果 2.以下不是阻碍优化的因素有: (D) A.编译优化选项B.变量别名C.函数调用的边际效应D.源文件的大小 3.使用-O3编译选项所得的程序,执行效率比使用-O2编译选项所得的程序_______。 (D) A.高B.低C.一样D.不一定 4.对于函数调用的边际效应,以下表述不正确的是: (B) A.只要函数在调用的过程中改变了某些全局变量的值,我们就称函数调用中有边际效应。 B.存在边际效应的函数调用,其调用次数的不同会对整个程序的行为产生不同的影响。 C.为了避免函数调用的边际效应,就必须尽量避免使用全局变量,尽量使用局部变量。 D.编译器无法检测出函数调用中是否会产生边际效应,所以应该将函数调用移出循环体外。 5.对于一个优化的编译器,以下表述不正确的是: (D) A.编译器负责其中的寄存器分配的优化 B.编译器负责其中的代码选择及有限重组的优化 C.编译器进行一些局部范围内的优化 D.优化的编译器能够改进算法的计算复杂度 6.对于现代微处理器体系结构而言,对性能优化影响比较大的主要是: (ACD) A.超标量B.扩展指令集C.乱序执行D.指令流水线的深度 7.对于通过加深流水线的深度的办法来提升时钟频率,从而提高整个处理器性能的做法, 以下表述正确的是: (AC) A.如果指令流是完全规则的顺序执行,则程序的性
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多核 程序 设计 考试题