足球比分直播

基于多核技术的并行网络仿真器分析.pdf

返回
基于多核技术的并行网络仿真器分析.pdf_第1页
第1页 / 共65页
基于多核技术的并行网络仿真器分析.pdf_第2页
第2页 / 共65页
基于多核技术的并行网络仿真器分析.pdf_第3页
第3页 / 共65页
基于多核技术的并行网络仿真器分析.pdf_第4页
第4页 / 共65页
基于多核技术的并行网络仿真器分析.pdf_第5页
第5页 / 共65页
点击查看更多>>
资源描述:
南京邮电大学硕士研究生学位论文 缩略语表 65 缩略语表 API,Application Program Interface CBR, Constants Bit Rate CMP,Chip Multiprocessor DCA, Direct Connect Architectrue DES, Discrete Event Simulation ECMP,Equal Cost Multipath EIB,Element Interconnect Bus FSB,Front Side Bus GVT,Global Virtual Time HLA, High Level Architecture IPC,Inter-Process Communication PDES,Parallel Discrete Event Simulation POSIX,Portable Operating System Interface of Unix PPE,PowerPC Processing Element LVT,Local Virtual Time MPI,Message Passing Interface NUMA, Non-Uni Memory Access RED,Random Early Detection SPE,Synergistic Processing Element SPI,System Program Interface SMP,Symmetric Multiple Processor SRI, System Request Interface TBF,Token Bucket Filter UMA,Uni Memory Access WRED, Weighted Random Early Detection 南京邮电大学学位论文原创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包 含其他人已经发表或撰写过的研究成果,也不包含为获得南京邮电大学或其它 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的 任何贡献均已在论文中作了明确的说明并表示了谢意。 研究生签名_____________ 日期____________ 南京邮电大学学位论文使用授权声明 南京邮电大学、中国科学技术信息研究所、国家图书馆有权保留本人所送 交学位论文的复印件和电子文档,可以采用影印、缩印或其它复制手段保存论 文。本文电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文 外,允许论文被查阅和借阅,可以公布(包括刊登)论文的全部或部分内容。 论文的公布(包括刊登)授权南京邮电大学研究生院(筹)办理。 研究生签名 ____________ 导师签名 ____________ 日期 _____________ 南京邮电大学硕士研究生学位论文 第一章 前言 1 第一章 前言 1.1 课题背景 1.1.1 网络仿真器概述 近年来,随着通信网络和计算机网络应用的普及,网络的规模日益庞大,通信网络技术的研发、网络性能评估、协议设计分析等愈益复杂,对于分析工具的要求越来越迫切。网络仿真是以计算机技术和网络技术为基础,依据相似性原理建立一个能够模仿真实网络动态行为的计算机模型,通过该模型对真实网络的行为变化进行数值统计与分析,作为研究、开发和规划的技术依据。网络仿真的优点在日趋发展的信息社会已得到充分的体现,尤其是NS2 、OPNET等基于离散事件仿真的软件,在通信网络研究领域占有重要的地位[1,2]。 随着技术的发展,网络越来越复杂,而且规模也逐渐增大,这使得网络仿真面临越来越高的要求。面对大规模网络仿真的需求,已有仿真软件显现出不少局限性。提高仿真软件的性能可以从两个方向考虑。一个方向是建立更好的数学模型,既能够提供精确的仿真结构又能有效减少计算量。这两个要求往往是相背的,只能在两者之间做某种折中。另一个方向是提高计算机的性能,出现了分布式的机群以及后来的多核计算机。这时并行离散事件仿真机制被广泛地应用于分布式计算机群,此类软件有PDNS[3,4]、 OPNET[5]、 OMNET[6]等,它们均源于高级体系结构(HLA, High Level Architecture )开发的分布式并行仿真[7,8]技术。虽然这些软件使得大规模网络仿真成为可能,但其带来的弊端也是显而易见的,如计算机利用效率不高,划分设置的人工配置繁琐等。在多核计算机上部署这些软件效果仍然不是很理想。因此,研究如何使用多核计算机实现高性能的软件仿真具有十分重要的意义。 1.1.2 多核技术的发展 随着现代社会对信息处理速度要求的提高,对计算机硬件 的要求也越来越高。影响计算机性能的核心部件是CPU ,要求其有强大的处理能力。 长久以来,处理器芯片都是通过提高主频来提高处理器的性能的,但是随着芯片制程工艺的不断发展,单个芯片上的晶体管集成度几乎达到顶峰,传统的处理器体系结构技术已经很难继续沿用下去。而且主频的提高还会增加处理器的功耗,带来的散热问题会导致芯片运行不稳定。所以,单核处理器的处理能力已经难以有可观的提高[9]。 南京邮电大学硕士研究生学位论文 第一章 前言 2 在这样的背景下,各主流处理器厂商将产品战略转向多内核方面,陆续地推出了商用的多核处理器[10]。多核处理器,也简称为多核,是将两个或更多的独立处理器核封装在一个集成电路芯片中的实现方案。通过增加片内处理器核的个数来提升处理器整体性能的做法将会成为未来若干年内的主流。特别是最近几年, AMD 和 Intel等公司推出了高性能的适用于个人计算机的多核 CPU 。目前多核的个人计算机已经被广泛使用。 多核的普及对软件开发是一个新的挑战。软件开发者必须了解多核的架构,并编写出合适的并行计算程序来,才能发挥多核系统最大的性能。虽然单核编程技术已经十分成熟,但多核编程相对来说比较复杂。 目前并行编程的标准大致有三类数据并行语言标准、共享变量编程标准和消息传递库标准。针对离散事件仿真的特性,一般采用的是后两种标准。消息传递库标准中比较典型的有消息传递接口(MPI ,Message Passing Interface )[11],在PDNS 和 OMNET都有采用,比较适合于分布式计算机。共享变量编程标准有线程库和编译制导两类。多核多线程开发工具有 Win32 线程库、pthread 库以及 OpenMP[10,12]。 Win32 线程库运行于 WinNT和 Win9X平台,拥有完善而复杂的函数库,目前比较成熟,但对编程人员有较高的要求;pthread 库是 Linux下最常用的多线程支持库,具有方便移植的特点,编程要求也较高; OpenMP则针对共享地址空间的并行计算机提供并行计算支持,具有使用简单的特点,但OpenMP 是编译制导,对于事件处理的控制会有较大的难度。 1.2 研究内容与本文工作 为了迎合网络与计算机技术发展的需求,将多核系统的应用技术结合到网络仿真软件中是必然的趋势。研究这样的并行网络仿真软件,提出可行的设计方案,提高网络仿真软件的性能,就是本课题的主要目的。 当前一些主流的网络仿真软件也采用了并行技术,但其表现的性能仍然不能满足人们的需要。如软件 PDNS 中需要对划分进行繁琐的配置工作,其实际运行性能也没有得到显著的提高。OMNET 的并行仿真虽然使性能有显著的提高,但是在操作性方面,因其设计的不完整,在建立模块时会受到许多限制。还有一些商用软件, QualNet 和 OPNET 能够满足大型复杂网络的仿真需要,但有知识产权问题且价格昂贵,不仅学习的进入障碍很高,而且不易于用户进行扩展与研究。 本文将深入分析网络仿真的主流技术,根据并行离散事件仿真[13]PDES, Parallel Discrete Event Simulation的机制,设计出可以适合多核计算机系统的仿真框架。将在主流的多核操作南京邮电大学硕士研究生学位论文 第一章 前言 3 系统上,利用现有的多线程编程技术,实现操作方便并且仿真性能优异的并行网络仿真软件。 1.3 课题来源 本课题源于校企合作项目。本人所做的工作是(1)研究网络仿真中的离散事件仿真机制,掌握关键的实现要点;(2)熟悉多核计算机系统以及适用于多核的编程技术,完成并行网络仿真器模型的实现;(3)在 DES 的基础上研究 PDES 技术并且掌握其核心机制,结合多核操作系统的特点,改进 PDES 技术的关键算法,提出可行的实现方案来提高网络仿真软件的性能。 1.4 论文结构安排 论文的具体安排如下 第一章 介绍课题背景、研究内容与本文工作,包括课题来源以及论文的结构安排。 第二章 首先介绍多核的发展、体系结构和多核操作系统,接着介绍并行软件设计的关键要点,以及可支持的多线程。 第三章 首先介绍网络仿真的现有状况,接着介绍 DES 机制的原理和模块构建,最后分析了 PDES 原理和关键实现技术。 第四章 根据第二章对基于多核的并行编程技术的掌握和第三章对于并行离散事件仿真技术的理解,构建并行网络仿真器原型系统,讨论系统整体架构及关键技术,描述多线程的使用、划分技术的实现以及同步算法。 第五章 针对第四章提出的并行网络仿真器原型系统设计方案,详细描述具体实现,给出PDES 的流程设计、多线程的实现、划分块的实现流程以及事件调度的实现。 第六章 针对提出的并行网络仿真器原型系统,进行验证与测试,分析结果。 南京邮电大学硕士研究生学位论文 第二章 多核系统与并行设计 4 第二章 多核系统与并行设计 2.1 多核的发展 从计算机诞生之日起,人们对更强计算能力的不懈追求就一直驱使着计算机工业的发展。传统的解决方案是不断提高时钟频率,但是速度提升有一定的限制[9]。一是电子信号速度的限制,理论极限是小于光速,这个速度在铜线或光纤中约为 20cm/ns。在计算机中意味着采用10GHz时钟,信号的传送距离总共不会超过 2cm。时钟越高,传送距离越短,这就要求计算机要做得越小,但是这又会遇到另外一个问题散热。在高端Pentium 系统中, CPU的散热器已经比CPU 还要大。获得高速度的另一种方式是使用并行计算机,目前高强度的数据处理正越来越多地使用并行计算机。在并行计算机中,发展最快的是多核处理机,这些多核设计完全取代了作为台式计算机的基础的单核设计。 IBM、 Sun、 Intel和AMD 都已经将他们的芯片流水线从单核处理器转为生产多核处理器。 多核是一种将多个处理器放置到一个计算机芯片上的架构设计,每个处理器被称为一个核。随着芯片容量的增加,在一个芯片上放置多个处理器变得可行。这些设计被称为片上多处理器(CMP,Chip Multiprocessor )。多核是 CMP 或单芯片多处理器的流行的名字,已经成为改进总体系统性能的首选方法。 自 IBM 于 2001 年 10 月发布世界上第一款多核处理器双核 RISC 处理器 Power 4 后,HP、Sun 、 Intel、AMD 公司分别推出了自己的多核芯片。目前多核处理器不仅包含更多核,甚至能够支持 64 位系统。 Intel 于 2010 年 3 月正式发布了新的 8 核产品 Xeon 7500。 AMD 于2010 年 4 月发布了皓龙 6000 系列平台,配备世界首款 12 核和 8 核 x86 处理器。同年 5 月AMD 在北京发布了 30 余款笔记本,第一次在笔记本电脑平台引入了三核和四核处理器。 2.2 多核的体系结构 按计算内核的对等关系,可以将 CMP 分为同构多核结构(如 Intel 和 Sun)和异构多核结构(如 IBM),同构 CMP 设计中的内核结构一致,异构设计中的内核则有不同的指令集和架构。虽然这些多核设计的结构不同,但均得到了有效的实现。 CPU 之间数据共享与同步主要包括两种方式,总线共享 Cache 结构和基于片上互连的结构。总线共享 Cache 结构中,每个 CPU 内核拥有共享的二级或三级 Cache,用于保存比较常用的数据,并通过连接核心的总线进行通信,例如 Intel 的 Core 2 Due 和 Core i7。基于片上南京邮电大学硕士研究生学位论文 第二章 多核系统与并行设计 互连的结构中,每个 CPU 核拥有独立的处理单元和 Cache, CPU 核之间通过交叉开关或者片上网络等方式连接,例如 Intel 的 Pentium D 和 Core 2 Quad。 本文研究的主要平台是CMP的多核,目前有影响力的多核芯片,集中在四家芯片生产商[16] AMD Multicore Opteron、 Intel Core 2 Duo、 Sun UltraSparc T1 和IBM Cell Broadband Engine(CBE )。 2.2.1 AMD Multicore Opteron 双核 Opteron 是 AMD 多核处理器产品线中的入门级产品。双核 Opteron 采用了 AMD 实现多核架构的基本方法,它是最基本的配置。Opteron 与 Intel 处理器系列在源码级和二进制代码级别都兼容,即为 Intel 处理器编写的应用程序也可以在 Opteron 上编译并执行。其结构如图 2-1 所示 图 2-1 AMD Opteron 结构示意图 双核 Opteron 有两个 AMD64 处理器、两组 L1 cache、 两组 L2 cache、系统请求接口(SRI , System Request Interface)、交叉开关、内存控制器和 HyperTransport 技术组成。 Opteron 同其他设计在架构上的关键区别之一,就在于 AMD 中使用 HyperTransport 技术的直连架构 (DCA,Direct Connect Architectrue),这种直连架构也决定了 CPU 与内存以及其他 I/O 设备进行通信的方式。 1)直连架构 前端总线(FSB,Front Side Bus )是处理器与主板芯片或内存控制集线器之间的数据通道,较低的 FSB 会限制并阻碍数据流。减慢数据流的速度就意味着延迟时间更长,从而降低了系统性能,同时也限制了系统的可扩展性。 Opteron 处理器没有采用基于总线的架构,而是5 南京邮电大学硕士研究生学位论文 第二章 多核系统与并行设计 采用了直连架构和 HyperTransport 技术。而直连架构能够提高整体系统性能和效率,并且消除了前端总线架构固有的传统瓶颈。 直连架构取消了前端总线,是一种点到点的连接模式。处理器核心可通过 Hypertranspor链接直接与内存、 I/O 子系统,以及其他处理器相连。内存控制器位于处理器片上,而不是在采用前端总线架构的主板上。这样做进一步降低了延迟并提高了系统性能。 直连架构拥有一个独特的集成内存控制器。采用直连架构的 AMD64 处理器拥有一个集成的片上内存控制器,可优化内存性能和每个 CPU 的带宽,还能降低前端总线架构的固有延迟。 AMD 的内存带宽随着配置中添加处理器而增加,相比之下,由于主内存访问受到外部北桥芯片的限制,所以旧式设计的扩展能力较差。 2)HyperTransport 技术 HyperTransport(超传输)技术是一种高速度、低延迟的双向点对点链接,能够提供计算核心、 I/O 子系统、内存条和芯片组之间可扩展的带宽互联。 HyperTransport 的目的是提高带宽、低延迟响应、兼容老式总线、可扩展新的网络架构总线。AMD 皓龙处理器最多支持 3个一致的超传输链接,可为每个处理器提供高达 57.6 GB/s 的峰值带宽。 Opteron 使用了非一致存储访问(NUMA, Non-Uni Memory Access)结构。这种结构中,每个处理器可以通过处理器的片上内存控制器对自己的本地内存进行快速访问。 NUMA使用分布式内存结构,但可以共享,如图 2-2 所示 图 2-2 NUMA 结构框图 NUMA 中,处理器拥有自己的内存块,但每个内存块共享同一个地址空间。这意味着物理地址与内存空间是保持一致性的,地址空间从逻辑上看是可以共享的,但 CPU 不能直接访问对方的物理内存。NUMA 结构中每个处理器拥有独立的内存控制器,具有良好的扩展性。 2.2.2 Intel Core 2 Duo Intel 的 Core 2 Duo 只是 Intel 多核处理中的一个系列,不支持超线程,支持 64 位架构,6 南京邮电大学硕士研究生学位论文 第二章 多核系统与并行设计 其结构如图 2-3 所示。该处理器有两个 64 位内核,每个内核有 64KB L1 cache,而 L2 cache在内核中共享。L2 cache 可以达到 4MB。每个内核都最多可完全利用 L2 cache。这意味着当一个内核未被充分利用,不需要很多 L2 cache 时,其他需要资源的内核可增加对 L2 的使用,充分利用系统的资源。 图 2-3 Intel Core 2 Due 结构示意图 Core 2 Duo 通过支持 SSE(Streaming SIMD Extensions )以及执行向量化指令的特殊寄存器提高性能。SSE3 提供 13 条指令,用于在打包的整型或浮点数据单元上执行 SIMD 操作。这样就加快了利用 SIMD 操作的应用程序,例如高密集图形、加密以及数学应用。 这种多核结构采用了一致存储访问结构(UMA , Uni Memory Access),即多个处理器共享同一个内存,如图 2-4 所示。每个处理器的内存访问时间与其他处理器一致。这种处理器结构通常被称为对称多处理器(SMP, Symmetric Multiple Processor)。SMP 的单一主存和一致访问时间的特点,使得它要比 NUMA 更容易实现对应的功能。 UMA 中共享地址空间,是指处理器在物理上共享相同的地址块。 SMP 结构特别适用于较小的结构,但是如果处理器的数目增多,内存控制器将成为扩展的瓶颈,整体的系统将会降低。 图 2-4 UMA 结构框图 7 南京邮电大学硕士研究生学位论文 第二章 多核系统与并行设计 2.2.3 其他处理器 1)UltraSparc T1 UltraSparc T1 是八核 CMP,提供了对芯片级多线程的支持。每个核能够运行 4 个线程,也被称为超线程。UltraSparc T1 可以最多运行处理 32 个硬件线程。内核采用 64 位,每个核均有 L1 cache。内核通过交叉开关来共享 L2 cache。 UltraSPARC T1 处理器就像把一台机架服务器微缩到一片芯片中, Sun 为这一多线程的技术申请了专利,叫做“酷线程”(CoolThreads)。使用这种运行 32 个并行线程的低功率、低热的处理器,能够在计算吞吐量上获得较大的收获。 Sun 公司设计的 T1,并没有提高单个处理器或者单处理器核心的计算主频,而是注重提高整体的计算吞吐量。对于目前追求单个处理器性能和主频的主流商用计算处理器来说,这是绝对的颠覆。 2)IBM Cell Broadband Engine 除了 Intel、 AMD 和 Sun 的同构设计外,还有一类是异构多核芯片。最具代表的是 CBE处理器,于 2005 年由 IBM、索尼和东芝联合推出,目前已经被应用到索尼公司的 PS3 和微软 X360 游戏机中,这是第一款投入实际商用的异构多核处理器。 CBE 是一种异构多核芯片,由两种不同类型的处理器组成,PowerPC 处理单元(PPE ,PowerPC Processing Element)和 Synergistic 处理单元(SPE , Synergistic Processing Element)。如图 2-5 所示, CBE 中拥有 1 个 PPE、 8 个 SPE、 1 个高速内存控制器、 1 条高带宽部件互连总线(EIB ,Element Interconnect Bus )、高速内存和 I/O 接口,是一个混合型的 9 内核处理器。 PPE 内存接口控制器 Memory IO 接口 EIBElement Interconnect Bus SPE1 SPE3 SPE5 SPE7 SPE0 SPE2 SPE4 SPE6 图 2-5 CBE 的架构图 PPE 部件和 SPE 可以使用标准 GUN gcc 编译器编程。SPE 代码单独编译,然后同 PPE代码连接在一起,构成一个执行单元。 SPE 使用 PPE 来运行操作系统代码和多数应用程序中的主线程或最高级别的线程。PPE 将 SPE 作为应用程序的高性能劳动力来使用。 8
展开阅读全文
收藏
下载资源

加入会员免费下载





足球比分直播