多核程序设计(考试题).doc

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多核程序设计(考试题)

简述用户级线程和内核级线程之间的映射模型有哪些,并分别加以说明: 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:Instruction Per Clock)和处理器的主频。 因此,提高处理器性能就是两个途径:提高主频和提高每个时钟周期内执行的指令数(IPC)。而通过改良架构来提高IPC的幅度是非常有限的,所以在单核处理器时代只能通过提高(处理器的)主频来提高性能,由于处理器功耗正比于主频的三次方,所以给处理器提高主频不是没有止境的。而将单核处理器增加到双核处理器,如果主频不变的话,IPC理论上可以提高一倍。所以为了达到更高的性能,在采用相同微架构的情况下,可以增加处理器的内核数量同时维持较低的主频。(这样设计的效果是,更多的并行提高IPC,较低的主频有效地控制了功耗的上升) 九、请分别说明 OpenMP 指导语句#pragma omp parallel, #pragma omp parallel for 和 #pragma omp parallel private 的含义和作用。 答:#pragma omp parallel 区域并行性指导语句,说明后续语句按多线程方式运行; #pragma omp parallel for 循环并行化指导语句,说明后续 for 循环语句按多 线程方式运行; #pragma omp parallel private 并行区变量私有化指导语句,说明后续语句中 的某变量在多线程方式运行时被各线程私有化,每次仅容许一个线程访问该变量。 十、阐述超线程技术和多核架构在并行计算应用领域上的区别和联系:

文档评论(0)

ayangjiayu4 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档