[发明专利]一种并行模拟器及方法有效
申请号: | 200710304653.9 | 申请日: | 2007-12-28 |
公开(公告)号: | CN101196827A | 公开(公告)日: | 2008-06-11 |
发明(设计)人: | 陈明宇;许建卫 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/46;G06F9/54 |
代理公司: | 北京律诚同业知识产权代理有限公司 | 代理人: | 梁挥;陈振 |
地址: | 100080北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 并行 模拟器 方法 | ||
技术领域
本发明涉及计算机领域,特别是一种并行模拟器及方法。
背景技术
模拟器是科研人员在研究计算机体系结构的过程中所需要的重要工具,执行驱动的系统模拟器由于具有模拟精度高、可以开发调试系统软件等特点,在很多方面都得到了广泛的使用。目前,限制系统模拟器使用的主要因素是模拟器的运行速度,功能级模拟器的解释型减速比一般在1000倍左右,而时钟级模拟器则比功能级模拟器还要慢1~2个数量级。由于目前单处理器正逐渐由单核向多核发展,高性能计算机的规模已经到了上万甚至几十万个节点,因此而导致的目标系统的规模增大使得模拟器的速度问题更为明显。
为了加速模拟器的运行,在串行模拟中,常常会采用穿线码技术和二进制翻译技术,如果目标系统中的指令集和宿主机指令集相同,还可以采用直接执行技术。但是,在这些加速手段中,忽略了指令执行的细节,因此这些加速手段只对功能级模拟器有效。由于在目标系统是多处理器的情况下,串行模拟器只能将多个处理器按照一定的次序进行排序,然后进行串行执行,而无法模拟出多处理器中进行并发执行的情况,因此使用串行模拟器来模拟多处理器的目标系统时,其模拟结果会发生失真。
随着技术的进步,为了解决串行模拟器进行模拟时的限制,同时为了充分利用现有多机、多处理器系统的能力,并行模拟器逐渐出现并运用在了科研之中。在并行模拟器中,通常会对目标系统的一个节点使用一个进程来模拟,依靠多个进程之间协作完成目标系统的模拟(L.Ceze,K.Strauss,G.Almasi,P.J.Bohrer,J.R.Brunheroto,C.Cascaval,J.G.Castanos,D.Lieber,X.Martorell,J.E.Moreira,A.Sanomiya,and E.Schenfeld.Full Circle:Simulating Linux Clusters onLinux Clusters.In Proceedings of the Fourth LCI International Conference onLinux Clusters:The HPC Revolution 2003.),但是,在模拟大规模系统的实现方案中仍然缺乏严格的时钟同步管理等机制的支持。
发明内容
本发明的目的在于,提供一种并行模拟器及方法,以解决现有的并行模拟器中生产率、可重用性及同步等方面存在的问题。
为了实现上述目的,本发明提供了一种并行模拟器,包括仿真内核模块以及模拟子模块,所述仿真内核模块用于实现负载部署、内存管理、负载同步、通信、调度以及提供应用编程接口功能,所述模拟子模块用于通过所述仿真内核模块提供的应用编程接口功能,调用所述仿真内核模块提供的功能。
较佳的,在所述并行模拟器中,所述仿真内核模块中,包括负载部署模块、负载同步模块、通信模块、调度模块、内存管理模块以及应用编程接口模块;
所述负载部署模块,用于根据负载情况和宿主机的能力将目标系统中所存在的实体分配到不同的处理器或不同的节点上;
所述负载同步模块,用于实现经过所述负载部署模块分配后的在不同处理器或不同的节点中执行的实体的同步执行;
所述通信模块,用于实现所述实体之间的通信;
所述调度模块,用于实现所述实体之间以及每个所述实体中的部件之间的调度;
所述内存管理模块,用于实现对缓冲区的管理;
所述应用编程接口模块,用于储存和管理应用编程接口函数。
较佳的,在所述并行模拟器中,每个所述宿主机上运行一个进程,每个进程根据宿主机处理器个数启动相应的线程,每个处理器上启动一个线程,所述负载部署模块用于根据所述宿主机处理器的个数,将系统负载中的实体平均的分配到与所述宿主机的处理器相对应的线程中运行。
较佳的,在所述并行模拟器中,所述负载同步模块采用PDES保守同步机制以实现经过所述负载部署模块分配后的在不同处理器或不同的节点中执行的实体的同步执行。
较佳的,在所述并行模拟器中,所述负载同步模块为所述实体中的每个部件隐藏的增加一个同步部件,所述同步部件用于对与其相对应的部件进行阻塞和唤醒操作,以实现同步的目的。
较佳的,在所述并行模拟器中,所述通信模块通过在所述实体之间采用通信层、同步层和用户层三个层次的栈结构以实现所述实体之间的通信;
其中,所述用户层用于传输用户自定义的数据,所述同步层用以辅助实现所述负载同步模块的同步功能,所述通信层用于屏蔽所述并行模拟器中的不同进程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710304653.9/2.html,转载请声明来源钻瓜专利网。