CN115408157A - 一种基于线程池的模型并行化数据仿真方法 - Google Patents
一种基于线程池的模型并行化数据仿真方法 Download PDFInfo
- 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
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 title claims abstract description 18
- 238000004364 calculation method Methods 0.000 claims abstract description 6
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 5
- 239000000725 suspension Substances 0.000 claims 3
- 238000010276 construction Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling 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所述的一种基于线程池的模型并行化数据仿真方法,其特征在于,如果需要仿真停止,停止第一个仿真模型产生数据,则后续模型没有数据作为输入,整个仿真都将停止。
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)
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 | 之江实验室 | 一种面向神经网络模型计算的图执行流水并行方法和装置 |
-
2022
- 2022-08-31 CN CN202211051441.5A patent/CN115408157A/zh active Pending
Patent Citations (5)
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)
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 |