当前位置:文档之家› 大规模细粒度并行模拟平台研究与实现

大规模细粒度并行模拟平台研究与实现

大规模细粒度并行模拟平台研究与实现

许建卫陈明宇郑规

刘涛杨伟潘晓雷赵健博包云岗袁清波

摘要:模拟是研究未来计算机系统结构的重要手段。目前晶体管密度的增加使得处理器内部逻辑越来越复杂,高速互联技术的发展将超级计算机带入了超大规模阶段,这些给传统的串行模拟器带来了严峻的挑战。一方面,由于执行速度和内存的限制在模拟当前的目标大规模系统时遇到许多困难;更糟的是由于无法充分利用已有并行系统的资源,因此传统模拟器在模拟未来的大规模系统时将遇到严重的挑战,成为宿主机和目标系统之间的瓶颈。本文介绍了基于对称多处理器(SMP)集群的并行模拟器hypersim的设计与实现,重点介绍了hypersim的系统框架、同步、通信,以及hypersim上操作系统原型hyperOS。SPEC CPU 2000、NPB、HPCC等基准测试程序运行结果表明,hypersim可以正确地模拟一种新型的超并行1高性能计算机体系结构,并支持超并行结构上系统软件开发。在并行系统上的运行结果显示出hypersim在模拟速度和内存使用方面具有较好的扩展性。

关键字:细粒度并行;并行模拟;模拟框架;超并行体系结构

1引言

在实际系统开发之前,模拟器可以用来对各种设计方案做量化研究与评估;在系统硬件开发过程中,模拟器可以同时开发系统软件以加速开发过程;在系统开发完成之后,通过模拟器可以获取比实际系统更丰富的踪迹(trace)信息,所以模拟器已经成为系统设计和开发的重要工具。软件模拟器由于开发代价小、周期快、易于修改等优点而成为科研工作者的首选,目前微结构模拟器SimpleScalar[1]、全系统模拟器SimICS[2]和多处理器模拟器RSIM[3]等正被众多的科研人员使用。

摩尔定律指出,单位芯片上晶体管数目每18个月便会翻一番。这一规律自上世纪60年代提出到现在持续有效,期间英特尔公司生产的处理器的晶体管数目从C4004(1975)处理器的两千多到Pentium 4(2005)处理器的一千多亿,规模增大了上亿倍。进入21世纪,由于散热等因素的限制,摩尔定律在提高处理器频率方面碰到了瓶颈。为了充分利用日益丰富的晶体管资源,处理器结构开始向片上多核处理器(CMP)方面发展。2001年IBM发布的服务器处理器POWER 4有4个处理器核,而2007年SUN公司发布的服务器处理器UltraSPARC T2则有8个处理器核,并且每个处理器核有8个线程。Tilera公司2007年发布的嵌入式处理器TILE64则直接包含了64个同构的处理器核。除了处理器微结构方面的改变,系统局域网(System Area Network)互联技术的飞速发展使得超级计算机节点数目随时间呈指数级增加趋势。根据1993年首次超级计算机TOP500排名,当时最快的超级计算机CM-5节点数目为1024个,而最新的BlueGene/L超级计算机节点数目已经达到106496个。

超级计算机系统规模的扩大在给我们带来更强大的计算能力的同时,也给传统的模拟器带来了挑战。超大规模的计算机系统已经无法使用传统的串行模拟器来模拟,因为串行程序能使用的CPU和内存资源有限,而模拟未来大规模系统所需要的CPU和内存资源却十分庞大,因此使用传统的串行程序来模拟未来大规模系统将会由于CPU能力的限制而导致模拟速度非常慢,甚至由于内存的限制而无法模拟;另一方面,现有可用的超级计算机已经为我

1 Hyper Parallel Processing,HPP

们提供了强大的CPU和内存资源,只是由于传统模拟器的串行特性使得我们无法使用这些资源,因此传统的串行模拟器成了上层需求和底层能力之间的瓶颈,而并行模拟器则可以有效解决上述问题。

因此,我们开发多进程、多线程的系统级并行模拟器,目标在于充分利用已有的多节点、多核资源来模拟未来的更大规模的计算机系统,为未来计算机系统的研发提供工具和平台。由于模拟器具有细粒度同步的特点,即每个模拟周期所有的模拟部件都应该执行并仅执行一次,这使得模拟器的不同模块间耦合非常紧密,因此并行难度较大。本文研究如何将目标系统进行划分,并提供模块间的高速同步及通信机制。

2相关研究

沙马(Sharma)[4]在1996年基于MINT模拟器开发出Augmint多处理器模拟器,模拟x86 CISC指令集,可以运行SPLASH/SPLASH2应用程序。Augmint模拟器的缺点在于对外设模拟不足,无法取得全系统模拟效果;而且,Augmint不能运行操作系统,应用程序需要和模拟器编译在一起运行,使用不方便。GEMS模拟器是米罗(Milo)[5]等在2005年基于SimICS[2]开发的,可以模拟SMP2/CMP3结构。GEMS的特点是系统存储模块和互联模块非常灵活,可以方便地替换。上述模拟器虽然模拟的目标系统是CMP/SMP或大规模系统,但模拟器自身是串行程序,因此无法避免前述的串行程序的弊端。

BGLSim[6]是IBM公司开发的BlueGene/L的全系统模拟器,其目标是在机群(cluster)环境下模拟更大规模的机群,模拟器本身是并行程序。BGLSim的特点是对CPU和外设模拟得非常详细,可以运行完整的操作系统,缺点在于模拟器的不同部分之间没有任何同步,完全依靠应用程序本身的因果关系来保证程序运行的正确性。普拉卡什(Prakash)[7]等在1998年开发MPI-SIM来模拟大规模系统下的消息传递接口(Message Passing Interface,MPI)程序性能,MPI-SIM中考虑了系统的同步,通过仅在应用程序交互时进行同步的优化同步策略,MPI-SIM取得了很好的扩展性,但由于它只是一个消息传递接口库而不是一个完整的模拟器,所以无法精确模拟目标机结构。

马修(Matthew)[8]在2002年以SimpleScalar为基础,尝试使用消息传递接口通信的方式实现一个分布式的CMP模拟器SimpleCMP,它是一个分布式CMP模拟器。设计中主要对处理器(CPU)、一级缓存(L1 CACHE)、二级缓存(L2 CACHE)采用时钟驱动还是事件驱动,二级缓存采用集中式还是分布式模拟,采用阻塞还是非阻塞方式来模拟缓存等问题解决后取得了较好的加速比。SimpleCMP系统中考虑了同步,但它仅对一个节点的CMP系统模拟,这些技术对超并行大规模系统不适用。派瑞(Penry)[9]将微结构模拟器liberty[10]中每个部件执行分为三个阶段,每个阶段执行之后进行全局同步。通过对CACHE使用策略的优化,并行版本的Liberty模拟器在多线程情况下达到超线性加速比。玛克赫吉(Mukherjee)[11]等开发的并行系统模拟器WWTII使用基于“基本时段”(quanta)的并行离散事件模拟(Parallel Discrete-event Simulation,PDES) [12]同步算法,将程序执行分割为多个“基本时段”,每个“基本时段”结束后进行全局同步操作。以上两种方法本质上都是将程序执行分为多个阶段,每个阶段执行后做全局同步。由于上述方法中每个阶段的任务量较大,所以对系统的同步需求不高,并且这种全局同步的方法随着宿主机个数的增加,扩展性将进一步下降。

3hypersim模拟器设计

2 Symmetric Multi-Processing,对称式多处理器架构

3 Chip multiprocessors单芯片多处理器

3.1模拟器框架

hypersim模拟器主要模拟曙光5000超级计算机,它采用新型的超并行体系结构,该结构主要由多级互联的交换机和大量的节点组成。其中交换机用来互联系统中所有节点,不同节点间通过消息传递的方

式进行通信。每个节点主

要包括一个系统控制器

(北桥,NorthBridge)和

多个多核结构的CPU,节

点内多个CPU之间通过共

享地址空间的方式进行通

信。图1给出了hypersim

模拟器的结构。其中

hypersim中的模块分别和

曙光5000系统中的部件相

图1hypersim模拟器结构

对应。为了研究超并行结

构上的操作系统以及应用程序的性能,hypersim模拟器不能采用用户态模拟4的方法,而是需要在模拟器上运行操作系统。

为了实现并行,hypersim将目标机分解成小的基本块进行模拟。基本块包括处理器核、处理器接口、系统控制器接口、交换机中的交叉开关等。传统模拟器中基本模拟单元之间通过函数调用的方式交互,使得不同模块间耦合度很强,不利于并行。hypersim中基本块之间通过消息传递的方式进行交互,这样不同的基本块就可以分配到不同节点上的不同处理器上运行,从而达到并行模拟的目的。根据模拟的目标系统部件间关联的紧密程度,hypersim从两个层次对模拟单元进行划分。第一个层次是逻辑单元(Logical Element,简称为LE),对应于目标系统中的处理器或系统控制器模块。每个逻辑单元内部包含多个子部件,这些子部件间连接紧密,交互频繁。但不同逻辑单元之间的关系则比较松散,在维护相同接口的情况下,一个逻辑单元内部结构的改变不会影响到其他逻辑单元的内部结构。这样不仅使得不同的逻辑单元可以在不同的宿主节点上运行,还为以后增加或替换模块带来了方便;第二个层次是对逻辑单元进行进一步划分,划分结果对应于硬件实体内部的一个或多个子实体,比如一个处理器内部的多个处理器核或一个系统控制器上的多个端口。这个层次的划分结果称为部件(component),一个逻辑单元内部的各个部件之间关系比较紧密。第一个层次的划分是为了满足负载分配的需要,逻辑单元是模拟器负载分配的最小单元,一个或多个逻辑单元被分配到一个线程或进程;第二个层次的划分是为了满足细粒度调度的需要,否则一个逻辑单元内部的不同部件只能顺序执行,并且调度的频率相同,这样就无法模拟出不同子部件间的并发性和频率的互异性。hypersim中逻辑单元和部件之间的关系如图2所示,每个部件属于一个逻辑单元,每个逻辑单元包含一个或多个部件。

由于模拟器是同步密集型应用,所以如果某个逻辑单元长时间得不到执行,整个系统就会由于“水桶短板效应”5而导致模拟性能急剧下降。目前linux中多线程之间调度周期过长,无法满足细粒度模拟器的同步需要。hypersim中实验表明,如果两个以上模拟器线程争用一个CPU,则每个线程运行时只有不足1%的时间真正运行程序,其余时间全用来等待其他线程的同步。因此,在hypersim设计中,严格根据宿主机处理器个数产生线程,使得每个处理器只运行一个线程,这样就不会发生多个线程争用同一个处理器的情况;更进一步,为了防4即由模拟器为用户程序提供系统调用,这样用户程序可以不需要操作系统而直接运行在模拟器上

5指系统总体性能由其最薄弱环节决定

止线程在不同的处理器上切换而导致缓存(CACHE)和旁路转换缓冲器(TLB)被频繁刷新,hypersim中每个模拟线程运行时需要被绑定到固定的处理器上,而较高版本的linux(内核2.6以上)提供了这个功能。这种情况下程序运行时结构如图3所示,其中每个宿主机节点上运行一个进程,这个进程根据宿主机处理器个数启动相应的线程,使得参与模拟的每个处理器上有且仅有一个模拟线程。

图2逻辑单元和部件的关系图3程序运行时结构

3.2hypersim的同步框架simk

操作系统是计算机系统资源和计算机使用者之间的桥梁,它管理多个用户的进程,主要提供进程的调度、通信等功能,使得程序编写者不需要考虑如何与系统中其他进程协作来共用系统软硬件资源,从而降低了程序员的负担。微内核操作系统提供最基本的应用程序接口(Application Programming Interfaces,API),保留操作系统基本功能的同时将操作系统的影响降到了最低。hypersim的设计由此得到启发,采用了类似微内核操作系统的方法,把模拟器中逻辑单元的管理工作交给一个并行框架来实现,该框架主要提供部件调度、部件间的通信、同步等功能,使得编写基本模拟模块时不需要考虑系统的负载分配、模块间如何通信以及同步,只需调用框架提供的应用程序接口来对模块进行初始化,然后将模块注册到框架中以参与调度执行。在hypersim中将这个框架称之为simk(simulation kernel),使用同步框架simk还可以提高模拟模块的可重用性,并增加模拟器易维护性。

图4调度器结构图5通信

3.2.1调度

模拟器运行时,每个线程上都会被分配一个或多个逻辑单元。simk中每个线程有一个调度器来调度本线程中逻辑单元内的部件运行。对应于之前的目标系统划分,调度器也采用两级调度的方式,如图4所示,分别为逻辑单元级调度和部件级调度。为了提供高灵活性,

这两级调度策略互相独立。

由于不同的逻辑单元或部件可能被分配到不同的线程上,而逻辑上关联的部件之间需要严格时钟同步,但不同线程之间的运行速度可能存在差异,所以在一轮调度中,本线程中的部件可能由于需要等待其他线程中的部件而闲置,这些闲置的部件参与调度将会带来模拟器效率的下降。因此调度器为每个调度单元设置阻塞(block)标识,对于阻塞标识为真的部件本轮不参与执行。

3.2.2通信

simk中的通信由通信库hcommu来实现。为了达到高效的目的,hcommu设计为异步无缓冲零拷贝的通信库。异步指发送者不需要和接收者进行同步便可以直接发送消息。无缓冲指对于在同一个进程内部的部件,消息发送时直接由simk将消息放入接收者的核心队列6中,对于不同进程间的部件,消息暂时放入特殊的系统部件—SR的核心队列中,如图5所示。这样所有的消息都有唯一的接收者,hcommu不对数据进行缓存。零拷贝是针对同一进程内不同部件来说,消息传递过程中没有消息的复制拷贝,接收者直接使用发送者申请的缓冲区,使用后由使用者释放。

Simk中使用MPICH库实现多进程间交互。由于hypersim是多线程程序,而消息传递接口是非线程安全的,在simk中通过软件部件SR来解决这个问题。部件之间通信的时候,hcommu判断目标部件是否位于本进程内。如果在,则直接将缓冲区指针发送过去;如果不在,则把缓冲区指针放入SR部件中。SR部件像普通部件一样参与调度执行,执行时将本进程中所有要发送的消息都发送出去,并集中地把所有发往本进程的消息都接收回来。这样,一方面解决了MPICH库的非线程安全问题,另一方面,对于每条消息,在本进程中都存在接收者(本进程中的目标部件或SR部件),实现了消息收发的统一。

3.2.3同步

模拟器的同步可以分为内同步和外同步。内同步指逻辑单元内部部件之间的同步,由逻辑单元模块自行处理;外同步是指逻辑单元之间的同步,由simk来实现,对用户不可见。

图6同步

simk中的外同步机制使用的是PDES7[12]保守同步机制,与保守同步机制相对应的是乐观同步机制。保守机制与乐观机制的区别在于保守机制要求所有的消息按序收发,而乐观机制则允许乱序,一旦收到滞后消息,则将整个系统状态进行回滚,以保证整个系统的时序正确。由于第一,模拟器中状态信息较多,所以回滚开销非常大;第二,回滚需要保存状态,而保存状态要么需要用户来完成,要么需要simk解析用户消息以分析状态信息,但都无法实现一

6 Simk中为所有本地部件开辟一个核心队列,用来缓存其它部件发给该部件的消息

7 Parallel Discrete Event Simulation

个灵活通用的模拟核心,所以simk中采用保守同步的方法。

为了对逻辑单元屏蔽外同步细节,simk中为每个部件增加了一个核心同步部件(sync component),如图6(a)所示,它和SR类似,是一个软件部件,主要有以下作用: 接收其他部件发给相应部件的信息,将其缓存在队列中,等待相应的部件接收使用;

对相应的部件进行阻塞唤醒操作。

内同步指逻辑单元内部各部件之间必须保持同步关系。实现中逻辑单元记录所有内部部件的本地时钟,如图6(b)所示。每次逻辑单元运行时,从本逻辑单元中所有部件的本地时钟中挑选一个时钟指示最小的作为逻辑单元的时钟,并调度这个部件执行,从而推动本逻辑单元的时钟。

3.3部件模拟

多核处理器模拟器是基于SandUPSim[13]开发的,如图7(a)所示。每个处理器核主要包括处理器模拟器单元、协处理器模拟器单元、中断控制器和内存管理单元等,多个处理器核之间通过总线互联。在超并行体系结构中,一个处理器上多核之间共享片外内存,因此在hypersim的处理器模块中模拟一个片外内存时,多个处理器核通过总线(bus)共享该内存单元。对于不在本地的内存访问,通过对外接口(sysad)将请求转发给系统控制器。

系统控制器模块设计参照超并行结构系统控制器特点实现同一节点上地址空间共享,如图7(b)所示,其核心是一个交叉开关(crossbar)模块。其他部件包括和处理器端互联的端口部件(sysad)、只读存储模块(ROM)、地址映射模块(addr_map)和处理器间中断模块(processor_intr)等。系统控制器通过端口部件接收来自处理器的请求,然后对请求的地址信息进行解析,根据地址映射模块查到该请求的目的端口,然后通过交叉开关将请求挂到目的端口的接收队列中。

图7Hypersim部件模拟

3.4操作系统hyperOS

与传统的体系结构不同,超并行结构面向超大规模计算机,系统中有几万到几十万个处理器核,这些核之间有多级互联方式(系统级、板级和片级),并且同一处理器的不同核之间共享地址空间。现有操作系统直接运行在这种新的体系结构下存在明显的不足。首先是现有操作系统无法支持这么大规模的系统,其次是现有操作系统无法充分利用超并行结构的多级互联以及共享地址空间的特点。因此本文中针对超并行体系结构在hypersim上开发了曙光5000操作系统原型hyperOS。hyperOS目标在于研究在多核处理器平台下操作系统设计的新思想、新技术,探索与验证在超并行结构资源环境下操作系统设计新理念,主要研究非对称分布式内核技术、应用/内核并发执行技术等。

对应于超并行体系结构,hyperOS设计成一个主从式多核操作系统。主操作系统与传统的操作系统类似,系统启动时负责整个系统的内存初始化、设备初始化、任务加载、任务分配等工作;系统运行时负责设备管理、内存管理和处理来自从操作系统的系统调用请求。从

操作系统则是一个非常轻的核心,由于超并行系统运行时从核心上只运行单一作业,所以从操作系统不需要支持多进程,单进程的结构可以精简内核代码并提高从操作系统效率。由于内存管理和设备管理由主操作系统完成,所以系统运行过程中从操作系统的请求都转给主操作系统处理,主操作系统处理后将结果返回,在从操作系统上的应用继续运行。

4hypersim使用

4.1hypersim配置

hypersim提供了灵活的配置,配置文件采用可扩展标识语言(XML)指定,这样hypersim 使用者可以方便地对模拟器进行配置。配置文件主要分为对模拟的目标系统的配置和对运行模拟器本身的配置两个部分。

4.1.1目标系统配置

配置方式以硬件的拓朴结构为基础,呈现树形结构,简化的文件结构如下:

其中select选择要模拟的目标系统的类型,而sw_param nb_param cpu_param配置选项则具体指明了目标系统的参数特征。这种配置方式除了描述清晰,配置简单的特点外,还可以方便地支持异构系统。比如将系统控制器中的多个处理器选择不

同的参数类型,则模拟出处理器异构的节点系统,同理可以支持全系统异构的配置。

为了对不同类型的处理器进行验证,hypersim提供了丰富的处理器配置参数,主要包括每个处理器中处理器核的数目、每个处理器核的时钟频率、每个处理器上内存大小、内存管理单元中旁路转换器表项个数等。通过对各种配置的模拟支持,hypersim使用者可以研究不同配置参数对目标系统上应用的影响。

4.1.2hypersim运行配置

主要配置模拟运行时可以使用的宿主机处理器个数,以及是否进行线程绑定等。hypersim运行时,根据提供的宿主机处理器个数来启动相同个数的线程,将负载按静态负载平衡的方式分配到各个线程上。线程绑定则指定了这些线程在运行过程中是否允许在不同的处理器上切换。

5实验

5.1功能性实验

为了验证hypersim和hyperOS的正确性,在hyperOS上移植了libc库和MPICH库,使得hyperOS上可以直接运行串行或并行的应用程序。串行程序主要对SPEC CPU2000进行测试,

并行程序主要对NPB82.4和HPCC1.0进行测试。

5.1.1正确性测试

应用程序gzip vpr gcc mcf crafty parser eon gap vortex bzip2 twolf

时间(秒) 4 1214 1072 101236323063977296073 4780 155

表一(a) SPEC CPU 2000整数程序运行结果

应用程序wupwise swim mgrid applu mesa art equake ammp sixtrack apsi wupwise

时间(秒)5602 274 18114 23716651022671 26299316 3455 5602

表一(b) SPEC CPU 2000浮点程序运行结果

应用程序BT CG EP FT IS LU MG SP 大小24x24x247000 67108864128x128x32104857632x32x3264x64x64 36x36x36

时间(秒)5174513010 466057097299013430013801 104046

表一(c) NPB(W测试集)运行结果

hypersim的正确性测试主要使用串行程序SPEC CPU 2000和并行程序NPB,表一给出

了程序的运行结果。对于SPEC CPU 2000程序,表一中给出了test测试集的程序运行时间。

对于NPB程序,表一给出了W测试集情况下的测试集大小和相应的运行时间。如表一(a)、(b)所示,整数程序中除了perlbmk(hyperOS不提供fork系统调用),浮点程序中除了4个Fortran-90程序无相应的交叉编译器外,hypersim上运行通过了其他所有SPEC CPU 2000测

试程序。除了以上并行程序,还运行了并行Linpack、HPCC等标准测试程序,运行结果在

此不赘述。

5.1.2模拟器速度

表二模拟器速度(MIPS )

表二给出了模拟器的运行速度。所有测试中每个线程上只有一个CPU,也就是每个线

程只管理一个部件。这种配置下每个线程的负载较轻,因此调度和同步的开销就比较大。从

表二可以看出,模拟器在这种配置下仍取得了很好的模拟速度。单线程情况下相比宿主机的

减速比约为1000,这对于常见的单线程解释型模拟器是一个合理的值。

8 NAS(NASA Advanced Supercomputing Division) Parallel Benchmarks, 美国国家航空航天局高级超级计算

部并行计算测试标准,由一组设计用于评估并行超级计算机性能的程序组成,主要是从流体力学计算中抽

取出来,有五个核心程序和三个模拟应用程序组成。

5.2扩展性实验

Hypersim的主要特色在于模拟器自身并行,因此扩展性是hypersim的重要指标。扩展性测试程序包括ROM9程序和hyperOS上的应用程序两类。ROM程序包括quick sort和local_remote_access,其中quick sort运行时每个目标处理器都在本地内存进行排序,但运行过程中系统需要维持不同部件之间的同步;而local_remote_access是一个连续访存程序,它可以对超并行结构下全局地址空间的任何位置进行访问,其中访问非本地内存的比例可调。试验中采用该比例为50%和100%这两种情况,hyperOS上运行的程序选取并行linpack。由于hyperOS对大规模应用支持有一定限制,因此linpack测试中目标系统配置为8节点,每

节点4个CPU,每个

CPU有4个处理器

核;而ROM程序没

有这个限制,测试中

目标系统配置为8节

点,每个节点8个

CPU,每个CPU有8

个处理器核。

图8运行速度扩展性实验

图9内存扩展性实验

所有测试在2路4核的至强(Xeon )处理器进行。图8给出了模拟器的扩展性测试结果。从图8(a)可以看出,在4线程配置下,ROM程序测试的加速比约为4,linpack加速比约为3.5;而在8线程配置下,ROM程序加速比均大于6.5,其中quick sort

加速比约为8,接近加速比上限。而linpack加速比接近6,其加速比不如ROM程序的原因在于linpack测试中目标系统规模较小,因此每个线程每次调度时可以执行的任务就比较少,同步开销所占比例就相应较大。图8(b)给出了模拟器随着负载的增加内存使用情况,可以看出当模拟器分别配置为2、4、6、8、10个北桥的情况下,模拟器内存使用的增加量均匀增加。分析发现内存主要来自增加的模拟模块的开销。对于每种配置,随着线程个数的增加,模拟器的内存使用量有很小的增加,这部分内存开销主要来自simk。由此可以看出,在内存使用方面,hypersim具有很好的扩展性。

6总结及展望

hypersim模拟器结构可以方便地实现并行模拟,这样模拟器可以充分利用宿主机多核多节点的能力来模拟超大规模计算机。simk提供了丰富的应用程序接口,使得基本模块的编写者不需要考虑系统的并行同步细节,减少了模块开发者的负担。hypersim还提供了方便的配置方式,可以灵活地配置出不同的目标系统。

实验结果表明,hypersim很好地支持了超并行结构下操作系统原型hyperOS的研究。SPEC CPU2000、NPB、HPCC等测试程序的运行结果证实了hypersim的正确性。hypersim

9不需要操作系统和库函数支持,直接运行在裸机上的程序

运行在多线程模式时,模拟器性能和内存使用随着处理器个数增加逐步增加,表现出较好的扩展性。

Hypersim的目标是在一个大规模对称多处理器集群系统上能够有效地并行模拟大规模计算机系统结构和并行应用。目前,Hypersim多进程版已经取得了初步成果,现在的工作是将其性能进一步提高。

参考文献:

[1] Todd Austin, E.L., Dan Ernst, SimpleScalar: An Infrastructure for Computer System Modeling. Computer

IEEE, 2002. vol. 35, no. 2: p. 59-67.

[2]Magnusson, P.S.C., M.; Eskilson, J.; Forsgren, D.; Hallberg, G.; Hogberg, J.; Larsson, F.; Moestedt, A.;

Werner, B., Simics: A full system simulation platform. Computer IEEE, 2002. vol.35, no.2: p. 50-58.

[3]Christopher J. Hughes, V.S.P., Parthasarathy Ranganathan, Sarita V. Adve, RSIM: Simulating Shared-Memory

Multiprocessors with ILP Processors. Computer IEEE, 2002. vol. 35, no. 2: p. 40-49.

[4]Sharma, A., et al., Augmint: a multiprocessor simulation environment for intel x86 architectures. Technical

report, University of Illinois at Urbana-Champaign, 1996.

[5]Milo, M.K.M., et al., Multifacet's general execution-driven multiprocessor simulator (GEMS) toolset.

SIGARCH Comput. Archit. News, 2005. 33(4): p. 92-99.

[6]Ceze, L., et al., Full Circle: Simulating Linux Clusters on Linux Clusters. Proceedings of the Fourth LCI

International Conference on Linux Clusters:The HPC Revolution 2003, 2003.

[7]Prakash, S. and R. Bagrodia, MPI-SIM: Using Parallel Simulation to Evaluate MPI Programs. Winter

Simulation Conference, 1998: p. 467-474.

[8]Matthew, C. and G. Alan, Parallel simulation of chip-multiprocessor architectures. 2002, ACM. p. 176-200.

[9]Penry, D.A., et al., Exploiting Parallelism and Structure to Accelerate the Simulation of Chip

Multi-processors the Twelfth International Symposium on High-Performance Computer Architecture (HPCA), 2006.

[10]Vachharajani, M., et al., Microarchitectural Exploration with Liberty. Proceedings of the 35th International

Symposium on Microarchitecture, 2002.

[11]Mukherjee, S., Wisconsin Wind Tunnel II: A Fast and Portable Parallel Architecture Simulator. Workshop on

Performance Analysis and Its Impact on Design, 1997.

[12]Misra, J., Distributed discrete-event simulation. 1986, ACM. p. 39-65.

[13]沈林峰, et al., 兼容Linux应用环境的多粒度全系统模拟平台-SandUPSim.计算机工程与应用, 2005.

p.22.

作者简介:

许建卫: 中国科学院计算技术研究所博士研究生

陈明宇: 中国科学院计算技术研究所研究员、硕士生导师

郑 规: 中国科学院计算技术研究所硕士研究生

刘 涛: 中国科学院计算技术研究所工程师

杨 伟: 中国科学院计算技术研究所硕士研究生

潘晓雷: 中国科学院计算技术研究所硕士研究生

赵健博: 中国科学院计算技术研究所硕士研究生

包云岗: 中国科学院计算技术研究所博士研究生

袁清波: 中国科学院计算技术研究所博士研究生

相关主题
文本预览
相关文档 最新文档