- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多核计算机
第1章 多核计算机概述 1.1 多核计算 1.单核CPU的发展限制 为什么要采用多核技术? 1.2并行计算 并行计算:并行机上所作的计算,又称高性能计算或超级计算。 计算科学:计算物理、计算化学、计算生物等 科学与工程问题的需求:气象预报、油藏模拟、核武器数值模拟、航天器设计、基因测序等。 需求类型:计算密集、数据密集、网络密集。 美国HPCC计划:重大挑战性课题,3T性能 美国Petaflops研究项目:Pflop/s。 美国ASCI计划:核武器数值模拟。 什么是并行计算? 并行计算是相对于串行计算来说的,所谓并行计算分为时间上的并行和空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发执行的计算。 并行计算科学中主要研究的是空间上的并行问题。 空间上的并行导致了两类并行机的产生:单指令流多数据流(SIMD)和多指令流多数据流(MIMD)。 串行机也叫做单指令流单数据流(SISD)。 1.2.1并行算法的定义和分类 并行算法的定义 算法 并行算法:一些可同时执行的诸进程的集合,这些进程互相作用和协调动作从而达到给定问题的求解。 并行算法的分类 数值计算和非数值计算 同步算法和异步算法 分布算法 确定算法和随机算法 数值算法:求解基于代数关系运算的算法。如矩阵运算、多项式求和、求解线性方程组、FFT算法等。 非数值算法:基于关系运算的算法。如排序、选择、组合有哪些信誉好的足球投注网站、串匹配、图论算法等。 同步算法:各进程的执行必须相互等待。 异步算法:各进程的执行不必相互等待。 分布算法:网络中的多个节点协同完成问题的求解。 在局域网环境下进行的计算称为分布计算;可以把工作站机群环境下的计算称为并行计算或网络计算;把基于Internet 的计算称为网格计算或元计算;在多核计算机上的计算称为多核计算等。 确定算法:算法的每一步都能明确地指明下一步应该如何进行。 随机算法:随机地在指定范围内选取若干参数,以确定算法的下一步走向。 1.3并行计算机体系结构 组成并行计算机的各个部分: 节点(node) 互联网络(interconnect network)(节点间的通信与协作机制) 内存 (memory) 什么是多核处理器? 两个或多个独立运行的内核集成于同一个处理器上面 从物理上讲,多核是指在一个处理器芯片上封装了多个微处理器,每个微处理器有独立的控制流,有不同的内部状态。 从软件开发角度讲,指一个芯片中包含了多个执行核心,从而在正确的软件支持下,软件开发人员,可以看到并行执行了多个线程。 双核处理器 =一个处理器上包含2个内核 多核处理器 = 一个处理器上包含2个或多个内核 多线程的优点 创建一个线程比创建一个进程的代价要小 线程共享进程的资源,线程被创建时不需要再分配内存等资源,因而创建线程所需的时间更少。 线程的切换比进程间的切换代价小 线程作为执行单元,从同一进程的一个线程切换到另一线程时,需载入的信息比进程切换时要少,所以切换速度更快。 充分利用多处理器资源 同一进程的线程可以在多个处理器核上并行运行,该进程运行速度显著提高。 多核平台上的应用软件开发 操作系统对多核的支持,只能提供任务一级的并行。 多核平台上的应用软件开发不同于以前的软件编写思想 首先设计者必须认识底层多核的存在 把软件设计成多进程或多线程 并将这些进程或线程与底层的多核处理器绑定 真正使程序的不同部分同时并行运行。 如何将软件分成多个进程或线程,发挥多核的性能是本门课的重点。 Windows多线程编程 OpenMP多线程编程 第2章并行程序设计 例:用数值积分算法求π时,就是求出在区间[0,1]内函数曲线4/(1+x2 )下的面积,即π的近似值。 将区间[0,1]划分成 N个等间隔的子区间,每个区间宽度为1/N;计算出各个子区间中点处的函数值;再将各个子区间的面积相加,可计算出π值。 π= ∑ (4/ (1+(i+0.5)/N)2 ) · (1/N) 0≤i ≤N 其中,N越大, π值越精确,计算时间也越长。 2.1 并行程序概念 #define N 1000000 main( ) { double local, pi=0.0,w; long i ; w=1.0/N for(i=0;iN;i++){ local=(i+0.5)*w; pi=pi+4.0/(1.0+local*local); } printf("pi is %f\n",pi*w); } 串行C代码: MPI消息传递并行C代码段: #define N 1000000 main( ) { double local=0.0, pi ,w,temp =0.0; long i ,task
文档评论(0)