CN102289391A - 一种虚拟实验系统中仿真进程迁移方法 - Google Patents

一种虚拟实验系统中仿真进程迁移方法 Download PDF

Info

Publication number
CN102289391A
CN102289391A CN201110181510XA CN201110181510A CN102289391A CN 102289391 A CN102289391 A CN 102289391A CN 201110181510X A CN201110181510X A CN 201110181510XA CN 201110181510 A CN201110181510 A CN 201110181510A CN 102289391 A CN102289391 A CN 102289391A
Authority
CN
China
Prior art keywords
task
simulation process
simulation
management server
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201110181510XA
Other languages
English (en)
Other versions
CN102289391B (zh
Inventor
金海�
蒋文斌
王曙光
马潇
张磊
董浩
刘超
童围
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201110181510.XA priority Critical patent/CN102289391B/zh
Publication of CN102289391A publication Critical patent/CN102289391A/zh
Application granted granted Critical
Publication of CN102289391B publication Critical patent/CN102289391B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明一种虚拟实验系统中仿真进程迁移方法,任务管理服务器负责仿真任务的分发;任务计算服务器根据仿真步长对每个仿真进程进行状态数据缓存,并向任务管理服务器发送相关的状态数据缓存信息;任务管理服务器实时探测多个任务计算服务器是否失效,当某个任务计算服务器失效,任务管理服务器根据仿真任务的状态数据缓存信息,将该任务计算服务器上的仿真进程在其他未失效的任务计算服务器进行重建,接着进行计算;一旦某个实验计算任务操作结束,即可清理该仿真任务相关状态数据缓存信息。本发明适合多领域,多学科虚拟实验的统一建模,可扩展性强,缓存和恢复的代价都很小,而且效率很高,可以很好满足虚拟实验实时交互体验性的要求。

Description

一种虚拟实验系统中仿真进程迁移方法
技术领域
本发明属于计算机应用领域,具体涉及到一种基于Modelica的虚拟实验仿真进程迁移方法,该方法特别适合应用于实时交互性虚拟实验教学环境系统中,当实验仿真进程异常中断后,通过该方法,能够以最快的时间将进程重启,并从中断的时间点往后继续计算。
背景技术
随着多媒体、仿真建模等一系列网络信息技术的发展,基于互联网的虚拟实验教学系统越来越受到关注。虚拟实验系统是一种实时交互性的人机系统,注重用户的实时体验性,关注的是计算结果数据的快速回传并动态显示。良好的用户体验除了实时性之外,还有流畅性和透明性,即用户实验过程中,实验任务不能被中断(网络出现故障等一些不可控的因素除外),即使某个仿真进程由于某些原因而中断退出,也必须要有故障快速恢复机制来重启仿真进程,以继续进行仿真计算,而对于前台用户来说,这些操作都是透明的。
通过进程迁移技术,来达到故障恢复,这是很流行的做法。传统的进程迁移方法,从应用层次上可以分为三种:应用级进程迁移,用户级进程迁移和内核级进程迁移。应用级进程迁移的优势在于可移植性好,不足点是需要了解应用程序的相关语义,可能需要对应用程序进行修改或者进行重新编译;用户级进程迁移的优点是易开发和维护,缺点是内核空间和用户空间存在一些壁垒,打破这种边界壁垒需要巨大的开销;内核级的进程迁移好处是可以充分利用操作系统提供的功能,效率高,透明性好,但是需要对操作系统进行修改,实现复杂。
对于使用Modelica的仿真计算模型的虚拟实验教学系统来说,仿真进程的迁移问题,可以根据Modelica计算任务的特点来分析解决。本发明提出的基于Modelica的仿真进程迁移方法从应用层次上划分,属于应用层的进程迁移,但是与传统的应用层迁移侧重点不同的是,本迁移方法只是针对基于Modelica的计算模型的仿真进程,这种就具体的应用特点提出的迁移策略能很好的解决传统的迁移方法复杂耗时的问题,可以满足特定应用场景的需求。
进程迁移的核心思想都是保存和恢复进程上下文。基本都是对进程的执行状态,包括用户上下文,寄存上下文和系统上下文,进行追踪,并作检查点,一旦计算节点失效后,即进行进程迁移,通过检查点内容,在另外一个计算节点上进行进程的重建。而基于Modelica的仿真进程的执行,其实是一个工作流的形式,可以被分成很多小的任务流阶段,每一阶段的最终结果数据都可以作为后一阶段的初始计算数据,根据这个特点,可以大大减少对于仿真进程的执行过程中相关的执行状态信息的跟踪与记录,从而减少对做检查点的资源开销以及迁移后进程重建的时间延迟。
发明内容
本发明的主要目的在于提供一种虚拟实验系统中仿真进程迁移方法,该方法可以克服传统的进程迁移存在耗时,复杂的缺点,特别适合于虚拟实验教学系统中。
本发明提供的一种虚拟实验系统中仿真进程迁移方法,所述虚拟实验系统包括负责系统所有的仿真任务的分发与管理的任务管理服务器,以及至少二个记录仿真进程的执行状态并做相应的状态缓存的任务计算服务器,其特征在于,该方法包括下述步骤:
(1)任务计算服务器向任务管理服务器注册其服务地址;
(2)任务管理服务器判断是否收到结束服务的消息,若接收到结束命令消息,则转步骤(7),否则,转步骤(3);
(3)任务管理服务器接收来自用户的仿真任务计算请求,并将请求分发到各任务计算服务器,任务计算服务器根据设定的仿真步长,从每一次仿真步骤输出的结果数据中提取最后一个时刻点上的各参数数据值,做状态缓存,并将缓存数据发送到任务管理服务器做临时备份保存;
(4)任务管理服务器保持与各任务计算服务器的联系,采用心跳技术即时探测到任务计算服务器是否失效,如果失效,开始做该任务计算服务器上的进程迁移,则转步骤(5),否则,则认为该任务计算服务器工作正常,则转步骤(6);
(5)任务管理服务器根据保存在其上的仿真进程状态缓存数据,在另外一个未失效的任务计算服务器上恢复该仿真进程,然后转步骤(4);
(6)任务管理服务器删除并清理已经结束的任务的相关状态缓存数据,转入步骤(4);
(7)服务结束。
本发明为了解决在虚拟实验系统中,传统进程迁移耗时低效的缺点,提供了基于Modelica具体任务特点的新的进程迁移方法。该方法主要特点有如下几个方面:
(1)基于Modelica的仿真计算模型,适合多领域,多学科虚拟实验的统一建模,可扩展性强;
(2)对输出结果数据值列表做checkpoint(检查点),比对进程的执行上下文做checkpoint操作要简单很多;在进程重建的时候,该方法可以根据模型文件MO(Modelica的模型文件类型),可以很快在另外一个任务计算服务器上生成仿真进程,对任务进行继续计算;
(3)缓存状态的信息量很小,很方便在集群节点之间快速传输;
(4)满足了虚拟实验实时交互体验性的要求。
附图说明
图1为本发明方法的主流程框图;
图2为基于Modelica虚拟实验仿真进程相邻的执行步骤之间的关系图;
图3为任务缓存信息结构的十字链表图示;
图4为任务计算服务器刷新计算任务的状态缓存的流程图;
图5为任务进程迁移后继续恢复计算的流程。
具体实施方式
在介绍具体方法步骤之前,有必要对基于Modelica的任务结果进行相应的描述:Modelica仿真任务是以仿真步长(两个仿真步骤之间的时间间隔)为时间片被分成一个个的仿真步骤,相邻两个仿真步骤之间的衔接是以前一个仿真步骤中最后一个时间点上各个变量的结果值,作为后一个仿真步骤中的初始输入参数值来进行的。
在本发明过程中,即不以传统进程迁移方法中对进程执行上下文状态做checkpoint(检查点)的方式,提出对计算进程的输出结果变量值列表和仿真模型文件做缓存的方式,这样的优势在于缓存和恢复的代价都很小,而且效率很高。
本发明根据对Modelica仿真进程执行特点的分析,引入了一种高效便捷的仿真进程迁移机制,可以更好的提供虚拟实验系统实时交互性体验。本方法里有两个角色,其中任务管理服务器负责系统所有的仿真任务的分发与管理,任务计算服务器负责对仿真任务的计算,以及记录仿真进程的执行状态并做相应的状态缓存(任务执行的中间状态信息数据保存,并在以后可以根据次缓存数据恢复出计算进程继续计算)。
下面就结合附图和具体实施方式对本发明做进一步详细的说明。
如图1所示,本发明对基于Modelica的虚拟实验系统中仿真进程迁移方法包括以下步骤:
(1)任务计算服务器向任务管理服务器注册其服务地址。
(2)任务管理服务器判断是否收到结束服务的消息,若接收到结束命令消息,则转步骤(7),否则,转步骤(3)。
(3)任务管理服务器接收来自用户的仿真任务计算请求,并将请求分发到多个任务计算服务器(至少二个),任务计算服务器根据设定的仿真步长,从每一次仿真步骤输出的结果数据中提取最后一个时刻点上的各参数数据值,做状态缓存(如图2所示),并将缓存数据发送到任务管理服务器做临时备份保存。
具体的步骤如下:
(3.1)根据Modelica仿真任务计算的结果文件的结构特点,设计如下的数据结构TASK INFO来实现仿真进程的状态缓存,及保存最后一个时刻的模型中各个参数的值:char*expSession为仿真任务编号;char*moFile为仿真任务的模型MO文件(仿真计算的输入源文件);DateTime time为时刻值;Dict dic为一个字典变量,Key-Value对(即变量名-值对),用于保存变量列表的时刻值;
(3.2)一个任务计算服务器上会同时有很多仿真进程在执行,对所有正在运行的任务都要进行状态缓存,则设计如下的数据结构PLT SNAPSHOT,如下介绍:char*expType为实验类型编号;TASK INFO*next则是记录类型为expType实验列表的一个任务信息结构指针。在(3.1)的基础上,由十字链表结构来将多个仿真进程的状态缓存数据进行链接,横向链表根据实验编号表示的是不同的实验,纵向链表表示的是同一类型实验的多个仿真进程实例(如图3所示);
(3.3)根据设定的仿真步长,对步骤(3.2)中的十字链表进行遍历刷新,得到最新的缓存数据,并将缓存数据发送到任务管理服务器做临时备份保存(如图4所示)。
仿真步长通常可设定为1至5秒,默认设置为1秒。遍历刷新是指从十字链表的头部开始,依照链接顺序依次遍历搜索链表节点,对链表中的节点数据进行覆盖更新,即将获取的最新时刻的数据,覆盖掉之前时刻的数据。
(4)任务管理服务器保持与任务计算服务器的联系,采用心跳技术即时探测到任务计算服务器是否失效,具体的做法:周期性的向任务计算服务器发送心跳探测信息,在连续3次探测,都没有收到任务计算服务器的反馈信息,即可认为该任务计算服务器已失效,开始做该服务器上的任务迁移,则转步骤(5),否则,则认为该任务计算服务器工作正常,则转步骤(6)。
(5)任务管理服务器根据保存在其上的仿真进程状态缓存数据,在另外的任务计算服务器上恢复该仿真进程。具体步骤如下:首先根据缓存数据中的MO模型文件重建计算进程,接着将缓存数据中的各个模型参数的值作为计算进程的输入,计算进程就可以继续对仿真任务进行计算(如图5所示),转步骤(4)。
(6)任务管理服务器删除并清理已经结束的任务的相关状态缓存数据,转入步骤(4)。
(7)服务结束。
本领域技术人员应该理解,以上所述仅为本发明的一个基本流程,凡在本发明的原则之内做的任何修改、改进、等同替换等,均在本发明的保护之内。

Claims (3)

1.一种虚拟实验系统中仿真进程迁移方法,所述虚拟实验系统包括负责系统所有的仿真进程的分发与管理的任务管理服务器,以及至少二个记录仿真进程的执行状态并做相应的状态缓存的任务计算服务器,其特征在于,该方法包括下述步骤:
(1)任务计算服务器向任务管理服务器注册其服务地址;
(2)任务管理服务器判断是否收到结束服务的消息,若接收到结束命令消息,则转步骤(7),否则,转步骤(3);
(3)任务管理服务器接收来自用户的仿真进程计算请求,并将请求分发到各任务计算服务器,任务计算服务器根据设定的仿真步长,从每一次仿真步骤输出的结果数据中提取最后一个时刻点上的各参数数据值,做状态缓存,并将缓存数据发送到任务管理服务器做临时备份保存;
(4)任务管理服务器保持与各任务计算服务器的联系,采用心跳技术即时探测到任务计算服务器是否失效,如果失效,开始做该任务计算服务器上的任务迁移,则转步骤(5),否则,则认为该任务计算服务器工作正常,则转步骤(6);
(5)任务管理服务器根据保存在其上的仿真进程状态缓存数据,在另外一个未失效的任务计算服务器上恢复该仿真进程,然后转步骤(4);
(6)任务管理服务器删除并清理已经结束的任务的相关状态缓存数据,转入步骤(4);
(7)服务结束。
2.根据权利要求1所述的一种虚拟实验系统中仿真进程迁移方法,其特征在于,步骤(3)具体包括下述过程:
(3.1)设计如下的数据结构用于仿真进程的状态缓存,保存最后一个时刻的结果数据文件中各个参数的值,数据结构为:char*expSession为仿真进程编号;char*moFile为仿真进程的模型MO文件;DateTime time为时刻值;Dict dic为一个字典变量,Key-Value对,用于保存变量列表的时刻值;
(3.2)每个任务计算服务器上同时有很多仿真进程在执行,对所有正在运行的任务都进行状态缓存;
在步骤(3.1)的基础上,利用十字链表结构将多个仿真进程的状态缓存数据链接,横向链表根据实验编号表示的是不同的实验,纵向链表表示的是同一类型实验的多个仿真进程实例;
(3.3)根据仿真步长,对十字链表进行遍历刷新,得到最新的缓存数据,并将缓存数据发送到任务管理服务器做临时备份保存。
3.根据权利要求1所述的一种虚拟实验系统中仿真进程迁移方法,其特征在于,步骤(5)中,恢复仿真进程步骤如下:首先根据缓存数据中的MO模型文件重建计算进程,接着将缓存数据中的各个模型参数的值作为计算进程的输入,计算进程就能够继续对仿真任务进行计算。
CN201110181510.XA 2011-06-30 2011-06-30 一种虚拟实验系统中仿真进程迁移方法 Expired - Fee Related CN102289391B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110181510.XA CN102289391B (zh) 2011-06-30 2011-06-30 一种虚拟实验系统中仿真进程迁移方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110181510.XA CN102289391B (zh) 2011-06-30 2011-06-30 一种虚拟实验系统中仿真进程迁移方法

Publications (2)

Publication Number Publication Date
CN102289391A true CN102289391A (zh) 2011-12-21
CN102289391B CN102289391B (zh) 2014-03-26

Family

ID=45335839

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110181510.XA Expired - Fee Related CN102289391B (zh) 2011-06-30 2011-06-30 一种虚拟实验系统中仿真进程迁移方法

Country Status (1)

Country Link
CN (1) CN102289391B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103383689A (zh) * 2012-05-03 2013-11-06 阿里巴巴集团控股有限公司 一种服务进程故障检测方法、装置及服务节点
CN110393555A (zh) * 2018-04-25 2019-11-01 上海宇度医学科技股份有限公司 多通道全能宫腔镜

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117139B2 (en) * 2001-08-28 2006-10-03 Qiyong Bian Co-simulation verilog/PLI and system C modules using remote procedure call
CN101930463A (zh) * 2010-08-25 2010-12-29 中国运载火箭技术研究院 一种基于内存数据库的仿真网格节点快速迁移方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117139B2 (en) * 2001-08-28 2006-10-03 Qiyong Bian Co-simulation verilog/PLI and system C modules using remote procedure call
CN101930463A (zh) * 2010-08-25 2010-12-29 中国运载火箭技术研究院 一种基于内存数据库的仿真网格节点快速迁移方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
孔梦荣 等: "一种基于网格的分布式并行仿真实现方案", 《中原工学院学报》, vol. 16, no. 6, 31 December 2005 (2005-12-31) *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103383689A (zh) * 2012-05-03 2013-11-06 阿里巴巴集团控股有限公司 一种服务进程故障检测方法、装置及服务节点
CN110393555A (zh) * 2018-04-25 2019-11-01 上海宇度医学科技股份有限公司 多通道全能宫腔镜
CN110393555B (zh) * 2018-04-25 2024-02-09 上海宇度医学科技股份有限公司 多通道全能宫腔镜

Also Published As

Publication number Publication date
CN102289391B (zh) 2014-03-26

Similar Documents

Publication Publication Date Title
Dai et al. Bigdl: A distributed deep learning framework for big data
To et al. A survey of state management in big data processing systems
Zaharia et al. Discretized streams: Fault-tolerant streaming computation at scale
Zhao et al. Understanding data storage and ingestion for large-scale deep recommendation model training: Industrial product
Ananthanarayanan et al. Photon: Fault-tolerant and scalable joining of continuous data streams
Tang et al. Energy efficient job scheduling with workload prediction on cloud data center
Condie et al. Online aggregation and continuous query support in mapreduce
Seo et al. HPMR: Prefetching and pre-shuffling in shared MapReduce computation environment
Bakshi Considerations for big data: Architecture and approach
Xue et al. Seraph: an efficient, low-cost system for concurrent graph processing
Lee et al. Large-scale incremental processing with MapReduce
Logothetis et al. Ad-hoc data processing in the cloud
CN106462484A (zh) 云中的分布式流处理
Besta et al. Practice of streaming processing of dynamic graphs: Concepts, models, and systems
CN103235811B (zh) 一种数据存储方法及装置
US11818012B2 (en) Online restore to different topologies with custom data distribution
Savitha et al. Mining of web server logs in a distributed cluster using big data technologies
Nicolae Towards scalable checkpoint restart: A collective inline memory contents deduplication proposal
Miller et al. Open source big data analytics frameworks written in scala
Sakr Big data processing stacks
CN102289391B (zh) 一种虚拟实验系统中仿真进程迁移方法
Krevat et al. Applying performance models to understand data-intensive computing efficiency
Dhole Poonam et al. Survey paper on traditional hadoop and pipelined map reduce
Deelman et al. Breadth-first rollback in spatially explicit simulations
Lee et al. ARLS: A MapReduce-based output analysis tool for large-scale simulations

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140326

Termination date: 20200630