一种基于线程池的模型并行化数据仿真方法技术

技术编号:35783394 阅读:11 留言:0更新日期:2022-12-01 14:29
本发明专利技术提供一种基于线程池的模型并行化数据仿真方法,定义具备“发布

【技术实现步骤摘要】
一种基于线程池的模型并行化数据仿真方法


[0001]本专利技术涉及一种基于线程池的模型并行化数据仿真方法,属于仿真系统


技术介绍

[0002]现有技术中的数据流仿真系统架构都是采用串行化仿真方式,由上游模型(记为第N个模型)产生数据后,交由下游模型(记为第N+1个模型)处理,直到所有模型计算完成后,开始下一轮计算。此过程中,当第N+1个模型计算时,第N个模型处于空闲状态,整个过程CPU一直处于单任务执行,CPU使用率低,仿真效率低下。串行仿真模型工作状态及仿真时序流的描述如图1所示。

技术实现思路

[0003]针对上述技术问题,本专利技术的目的是提供一种基于线程池的模型并行化数据仿真方法,解决串行仿真过程中CPU使用率低,仿真效率低下的问题。
[0004]为了解决以上问题,本专利技术采用的技术方案是:基于线程池的多线程技术,利用面向对象中的“发布

订阅”模型,实现模型的并行工作。具体的技术方案为:一种基于线程池的模型并行化数据仿真方法,包含以下步骤:S1、定义具备“发布

订阅”功能的模型基类,保证模型具备数据的收发功能;S2、根据仿真需求,定义不同功能的仿真模型,要求每个数据处理模型均继承步骤S 1中定义的基类,这样每个模型具备了“发布

订阅”的功能;S3、通过下游仿真模型订阅上游模型的数据实现数据流的拓扑关系搭建;S4、创建线程池,并为每个模型分配一个线程资源,用于仿真运算;S5、启动仿真,即令仿真的第一个模型产生数据即线程1,当数据生成之后,直接将数据发布,由于第二个模型订阅了第一个模型的数据,则第二个仿真模型收到数据后,开始第二个模型的计算即线程2开始工作;同时第一个模型即线程1继续产生下一个仿真周期的数据,第二个模型和第三个模型收到数据后开始计算,即线程2和线程3开始工作;以此类推,则在所有的模型收到数据后,同时并行工作。
[0005]所有的模型启动仿真时全部激活,当没有数据输入时,处于休眠等待状态,当有数据输入时,则计算数据,处于工作计算状态。
[0006]进一步的,仿真过程中如果需要仿真暂停,暂停仿真中的第一个模型产生数据,由此,第二个模型由于没有输入,会暂停工作,以此类推,整个仿真会进入暂停状态;如果需要仿真停止,停止第一个仿真模型产生数据,则后续模型没有数据作为输入,整个仿真都将停止。
[0007]本专利技术的有益效果:通过本专利技术的方法操作,实现了基于线程池的模型并行化数据流仿真,提高了CPU的使用效率和仿真效率。
附图说明
[0008]图1是现有技术的工作状态及数据流向示意图;图2是本专利技术的工作状态及数据流向示意图。
具体实施方式
[0009]以下结合附图实施例对本专利技术的实施方案进一步说明,但本专利技术并不限于下述实施例:一种基于线程池的模型并行化数据仿真方法,包含以下步骤:S1、定义具备“发布

订阅”功能的模型基类,保证模型具备数据的收发功能;S2、根据仿真需求,定义不同功能的仿真模型,要求每个数据处理模型均继承步骤S 1中定义的基类,这样每个模型具备了“发布

订阅”的功能;S3、通过下游仿真模型订阅上游模型的数据实现数据流的拓扑关系搭建;S4、创建线程池,并为每个模型分配一个线程资源,用于仿真运算;S5、启动仿真,即令仿真的第一个模型产生数据即线程1,当数据生成之后,直接将数据发布,由于第二个模型订阅了第一个模型的数据,则第二个仿真模型收到数据后,开始第二个模型的计算即线程2开始工作;同时第一个模型即线程1继续产生下一个仿真周期的数据,第二个模型和第三个模型收到数据后开始计算,即线程2和线程3开始工作;以此类推,则在所有的模型收到数据后,同时并行工作。
[0010]还包括,仿真暂停,仿真过程中如果需要仿真暂停,则只需要暂停仿真中的第一个模型产生数据,由此,第二个模型由于没有输入,同样也会暂停工作,以此类推,整个仿真会进入暂停状态。
[0011]还包括,仿真停止,同仿真暂停类似,只需第一个仿真模型停止产生数据,则后续模型没有数据作为输入,整个仿真都将停止。
[0012]如图2所示,经过N个时刻以后,所有的模型同时处于工作状态,多线程的使用大大提高了CPU的使用效率和仿真效率。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于线程池的模型并行化数据仿真方法,其特征在于,基于线程池的多线程技术,利用面向对象中的“发布

订阅”模型,实现模型的并行工作。2.根据权利要求1所述的一种基于线程池的模型并行化数据仿真方法,其特征在于,具体包括以下步骤:S1、定义具备“发布

订阅”功能的模型基类,保证模型具备数据的收发功能;S2、根据仿真需求,定义不同功能的仿真模型,要求每个数据处理模型均继承步骤S 1中定义的基类,每个模型具备“发布

订阅”的功能;S3、通过下游仿真模型订阅上游模型的数据实现数据流的拓扑关系搭建;S4、创建线程池,并为每个模型分配一个线程资源,用于仿真运算;S5、启动仿真,即令仿真的第一个模型产生数据即线程1,当数据...

【专利技术属性】
技术研发人员:孟逍遥王涛朱剑平
申请(专利权)人:北京中科睿信科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1