CN115408157A - 一种基于线程池的模型并行化数据仿真方法 - Google Patents

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

Info

Publication number
CN115408157A
CN115408157A CN202211051441.5A CN202211051441A CN115408157A CN 115408157 A CN115408157 A CN 115408157A CN 202211051441 A CN202211051441 A CN 202211051441A CN 115408157 A CN115408157 A CN 115408157A
Authority
CN
China
Prior art keywords
model
data
simulation
thread
thread pool
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.)
Pending
Application number
CN202211051441.5A
Other languages
English (en)
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.)
Beijing Zhongke Ruixin Technology Co ltd
Original Assignee
Beijing Zhongke Ruixin Technology Co ltd
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 Beijing Zhongke Ruixin Technology Co ltd filed Critical Beijing Zhongke Ruixin Technology Co ltd
Priority to CN202211051441.5A priority Critical patent/CN115408157A/zh
Publication of CN115408157A publication Critical patent/CN115408157A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供一种基于线程池的模型并行化数据仿真方法,定义具备“发布‑订阅”功能的模型基类,定义不同功能的仿真模型,要求每个数据处理模型均继承定义的基类;通过下游仿真模型订阅上游模型的数据实现数据流的拓扑关系搭建;创建线程池,并为每个模型分配一个线程资源;令仿真的第一个模型产生数据,第二个仿真模型收到数据后,开始第二个模型的计算;同时第一个模型继续产生下一个仿真周期的数据,第二个模型和第三个模型收到数据后开始计算;以此类推,则在所有的模型收到数据后,同时并行工作。本发明实现了基于线程池的模型并行化数据流仿真,提高了CPU的使用效率和仿真效率。

Description

一种基于线程池的模型并行化数据仿真方法
技术领域
本发明涉及一种基于线程池的模型并行化数据仿真方法,属于仿真系统技术领域。
背景技术
现有技术中的数据流仿真系统架构都是采用串行化仿真方式,由上游模型(记为第N个模型)产生数据后,交由下游模型(记为第N+1个模型)处理,直到所有模型计算完成后,开始下一轮计算。此过程中,当第N+1个模型计算时,第N个模型处于空闲状态,整个过程CPU一直处于单任务执行,CPU使用率低,仿真效率低下。串行仿真模型工作状态及仿真时序流的描述如图1所示。
发明内容
针对上述技术问题,本发明的目的是提供一种基于线程池的模型并行化数据仿真方法,解决串行仿真过程中CPU使用率低,仿真效率低下的问题。
为了解决以上问题,本发明采用的技术方案是:基于线程池的多线程技术,利用面向对象中的“发布-订阅”模型,实现模型的并行工作。具体的技术方案为:
一种基于线程池的模型并行化数据仿真方法,包含以下步骤:
S1、定义具备“发布-订阅”功能的模型基类,保证模型具备数据的收发功能;
S2、根据仿真需求,定义不同功能的仿真模型,要求每个数据处理模型均继承步骤S 1中定义的基类,这样每个模型具备了“发布-订阅”的功能;
S3、通过下游仿真模型订阅上游模型的数据实现数据流的拓扑关系搭建;
S4、创建线程池,并为每个模型分配一个线程资源,用于仿真运算;
S5、启动仿真,即令仿真的第一个模型产生数据即线程1,当数据生成之后,直接将数据发布,由于第二个模型订阅了第一个模型的数据,则第二个仿真模型收到数据后,开始第二个模型的计算即线程2开始工作;同时第一个模型即线程1继续产生下一个仿真周期的数据,第二个模型和第三个模型收到数据后开始计算,即线程2和线程3开始工作;以此类推,则在所有的模型收到数据后,同时并行工作。
所有的模型启动仿真时全部激活,当没有数据输入时,处于休眠等待状态,当有数据输入时,则计算数据,处于工作计算状态。
进一步的,仿真过程中如果需要仿真暂停,暂停仿真中的第一个模型产生数据,由此,第二个模型由于没有输入,会暂停工作,以此类推,整个仿真会进入暂停状态;
如果需要仿真停止,停止第一个仿真模型产生数据,则后续模型没有数据作为输入,整个仿真都将停止。
本发明的有益效果:
通过本发明的方法操作,实现了基于线程池的模型并行化数据流仿真,提高了CPU的使用效率和仿真效率。
附图说明
图1是现有技术的工作状态及数据流向示意图;
图2是本发明的工作状态及数据流向示意图。
具体实施方式
以下结合附图实施例对本发明的实施方案进一步说明,但本发明并不限于下述实施例:
一种基于线程池的模型并行化数据仿真方法,包含以下步骤:
S1、定义具备“发布-订阅”功能的模型基类,保证模型具备数据的收发功能;
S2、根据仿真需求,定义不同功能的仿真模型,要求每个数据处理模型均继承步骤S 1中定义的基类,这样每个模型具备了“发布-订阅”的功能;
S3、通过下游仿真模型订阅上游模型的数据实现数据流的拓扑关系搭建;
S4、创建线程池,并为每个模型分配一个线程资源,用于仿真运算;
S5、启动仿真,即令仿真的第一个模型产生数据即线程1,当数据生成之后,直接将数据发布,由于第二个模型订阅了第一个模型的数据,则第二个仿真模型收到数据后,开始第二个模型的计算即线程2开始工作;同时第一个模型即线程1继续产生下一个仿真周期的数据,第二个模型和第三个模型收到数据后开始计算,即线程2和线程3开始工作;以此类推,则在所有的模型收到数据后,同时并行工作。
还包括,仿真暂停,仿真过程中如果需要仿真暂停,则只需要暂停仿真中的第一个模型产生数据,由此,第二个模型由于没有输入,同样也会暂停工作,以此类推,整个仿真会进入暂停状态。
还包括,仿真停止,同仿真暂停类似,只需第一个仿真模型停止产生数据,则后续模型没有数据作为输入,整个仿真都将停止。
如图2所示,经过N个时刻以后,所有的模型同时处于工作状态,多线程的使用大大提高了CPU的使用效率和仿真效率。

Claims (4)

1.一种基于线程池的模型并行化数据仿真方法,其特征在于,基于线程池的多线程技术,利用面向对象中的“发布-订阅”模型,实现模型的并行工作。
2.根据权利要求1所述的一种基于线程池的模型并行化数据仿真方法,其特征在于,具体包括以下步骤:
S1、定义具备“发布-订阅”功能的模型基类,保证模型具备数据的收发功能;
S2、根据仿真需求,定义不同功能的仿真模型,要求每个数据处理模型均继承步骤S 1中定义的基类,每个模型具备“发布-订阅”的功能;
S3、通过下游仿真模型订阅上游模型的数据实现数据流的拓扑关系搭建;
S4、创建线程池,并为每个模型分配一个线程资源,用于仿真运算;
S5、启动仿真,即令仿真的第一个模型产生数据即线程1,当数据生成之后,直接将数据发布,由于第二个模型订阅了第一个模型的数据,则第二个仿真模型收到数据后,开始第二个模型的计算即线程2开始工作;同时第一个模型即线程1继续产生下一个仿真周期的数据,第二个模型和第三个模型收到数据后开始计算,即线程2和线程3开始工作;以此类推,则在所有的模型收到数据后,同时并行工作。
3.根据权利要求1或2所述的一种基于线程池的模型并行化数据仿真方法,其特征在于,仿真过程中如果需要仿真暂停,暂停仿真中的第一个模型产生数据,由此,第二个模型由于没有输入,会暂停工作,以此类推,整个仿真会进入暂停状态。
4.根据权利要求1或2所述的一种基于线程池的模型并行化数据仿真方法,其特征在于,如果需要仿真停止,停止第一个仿真模型产生数据,则后续模型没有数据作为输入,整个仿真都将停止。
CN202211051441.5A 2022-08-31 2022-08-31 一种基于线程池的模型并行化数据仿真方法 Pending CN115408157A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211051441.5A CN115408157A (zh) 2022-08-31 2022-08-31 一种基于线程池的模型并行化数据仿真方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211051441.5A CN115408157A (zh) 2022-08-31 2022-08-31 一种基于线程池的模型并行化数据仿真方法

Publications (1)

Publication Number Publication Date
CN115408157A true CN115408157A (zh) 2022-11-29

Family

ID=84164605

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211051441.5A Pending CN115408157A (zh) 2022-08-31 2022-08-31 一种基于线程池的模型并行化数据仿真方法

Country Status (1)

Country Link
CN (1) CN115408157A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105630588A (zh) * 2014-11-06 2016-06-01 卓望数码技术(深圳)有限公司 一种分布式作业调度方法和系统
CN109032534A (zh) * 2018-08-30 2018-12-18 百度在线网络技术(北京)有限公司 一种消息传输方法、装置、设备和介质
US10310896B1 (en) * 2018-03-15 2019-06-04 Sas Institute Inc. Techniques for job flow processing
CN112445486A (zh) * 2019-08-28 2021-03-05 无锡江南计算技术研究所 基于编译指导的有读写依赖循环的多线程并行方法
CN114548383A (zh) * 2022-04-27 2022-05-27 之江实验室 一种面向神经网络模型计算的图执行流水并行方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105630588A (zh) * 2014-11-06 2016-06-01 卓望数码技术(深圳)有限公司 一种分布式作业调度方法和系统
US10310896B1 (en) * 2018-03-15 2019-06-04 Sas Institute Inc. Techniques for job flow processing
CN109032534A (zh) * 2018-08-30 2018-12-18 百度在线网络技术(北京)有限公司 一种消息传输方法、装置、设备和介质
CN112445486A (zh) * 2019-08-28 2021-03-05 无锡江南计算技术研究所 基于编译指导的有读写依赖循环的多线程并行方法
CN114548383A (zh) * 2022-04-27 2022-05-27 之江实验室 一种面向神经网络模型计算的图执行流水并行方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张澧枫;殷铭;袁平;: "一种改进的多维度并行匹配发布与订阅算法", 现代计算机, no. 04 *

Similar Documents

Publication Publication Date Title
CN102520925B (zh) Aadl2tasm模型转换方法
CN107633125B (zh) 一种基于带权有向图的仿真系统并行性识别方法
CN103488775A (zh) 一种用于大数据处理的计算系统及计算方法
CN103995742B (zh) 一种基于mcu的嵌入式实时调度控制装置及方法
CN104536835B (zh) 一种热备份实时控制系统中自适应任务调度方法
CN102364447A (zh) 一种优化多任务间通信能耗的作业调度方法
CN110516789A (zh) 卷积网络加速器中指令集的处理方法、装置及相关设备
CN106445659B (zh) 一种空间飞行器周期性混成随机任务调度方法
CN111158875B (zh) 基于多模块的多任务处理方法、装置及系统
CN110502337B (zh) 针对Hadoop MapReduce中混洗阶段的优化系统
CN104597820B (zh) 一种扩展单片机硬件定时器的方法
CN113535356B (zh) 一种能量感知的分层任务调度方法和装置
CN115408157A (zh) 一种基于线程池的模型并行化数据仿真方法
Zhang et al. Sensitivity analysis for edf scheduled arbitrary deadline real-time systems
US20100325635A1 (en) Method for correct-by-construction development of real-time-systems
CN104166593A (zh) 一种计算多应用功能异步并发调度方法
Lai et al. A dominant predecessor duplication scheduling algorithm for heterogeneous systems
Yu et al. Task preemption based on petri nets
CN109375991B (zh) 一种将单进程改造为多进程的方法及系统
CN110716987B (zh) 一种同步任务异步执行的方法和调度系统
CN104182180A (zh) 面向混合主存嵌入式系统的低能耗edf实时任务调度方法
Jiang A novel simulation time and wall clock time synchronization algorithm for HLA
Dobhal Improved real-time energy aware parallel task scheduling in a cluster
WO2022178731A1 (zh) 一种加速器的运行方法及装置
CN102541648A (zh) 一种用于动态调度批处理任务的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20221129

RJ01 Rejection of invention patent application after publication