CN109471734A - 一种新型缓存优化多线程确定性方法 - Google Patents
一种新型缓存优化多线程确定性方法 Download PDFInfo
- Publication number
- CN109471734A CN109471734A CN201811262122.2A CN201811262122A CN109471734A CN 109471734 A CN109471734 A CN 109471734A CN 201811262122 A CN201811262122 A CN 201811262122A CN 109471734 A CN109471734 A CN 109471734A
- Authority
- CN
- China
- Prior art keywords
- thread
- certainty
- multithreading
- parallel
- memory
- 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
- 238000005457 optimization Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 title claims abstract description 16
- 230000001360 synchronised effect Effects 0.000 claims abstract description 19
- 238000002955 isolation Methods 0.000 claims abstract description 8
- 238000010276 construction Methods 0.000 claims abstract description 5
- 238000004891 communication Methods 0.000 claims abstract description 4
- 230000006399 behavior Effects 0.000 claims description 3
- 230000007717 exclusion Effects 0.000 claims description 2
- 238000006467 substitution reaction Methods 0.000 claims description 2
- 230000007547 defect Effects 0.000 claims 1
- 230000002452 interceptive effect Effects 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提出了基于缓存优化的多线程确定性方法,其中包括线程确定性结构模块,多线程通信隔离模块,原子事务阶段划分模块,线程同步策略研究模块以及LIRS缓存优化。本发明可以用于多线程系统中保障任务的线程确定性执行,并且优化确定性方法带来的额外系统开销,防止因为线程不确定性运行带来的同步竞争和数据竞争。以事务为单位划分线程运行阶段,并行阶段线程并行执行,隔离线程通信,设置栅栏进行全局同步。串行阶段线程通过确定性顺序获取令牌,依次向内存中执行提交,实行确定性调度。因为线程之间通讯隔离,缓存成为最末级共享存储,因此采用更加适合多线程的LIRS缓存替换算法优化系统性能,以此保证多线程运行确定性的同时减少系统开销。
Description
技术领域
本发明应用于多线程环境下的保证线程运行确定性。
背景技术
随着微电子技术的发展,片上多核处理器已经成为当今主流的计算平台和研究热点。同先前的单核处理器相比,多核处理器在硬件性能上取得了爆炸式提升,传统的串行程序已不能发挥它的性能,并行编程才是充分发挥其多核性能的关键、是能让主流应用从多核CPU性能中获益的唯一编程方式。
尽管有标准库支持,但是相比传统串行程序,并行程序在给计算性能带来提升的同时,也给程序的开发和维护带来了挑战。并行程序通常由多个并行执行个体协同完成一个任务,因此执行个体之间就存在着竞争、干扰的关系,导致了并行程序的不确定性,即程序在相同的输入下多次运行可能会产生不同的结果。这种不确定性在许多方面给并行程序带来了新的挑战。目前,确定性技术被认为是应对这个挑战的关键技术。并行主要有两种形式,一种是多线程并行,即各个并行个体之间共享内存;另一种是多进程并行,各个个体之间不共享内存,而是通过其他方式进行通信。确定性技术的目的是消除由并行引起的不确定性,降低并行程序的开发和维护成本,提高并行程序的可靠性。
发明内容
基于背景技术存在的技术问题,本发明提出了一种缓存优化多线程确定性方法。
本发明提出的一种缓存优化多线程确定性方法,所述系统包括线程确定性结构模块,多线程通信隔离模块,原子事务阶段划分模块,线程同步策略研究模块以及LIRS缓存替换算法优化
优选地,线程确定性结构模块用于设置线程运行规则,保证线程运行确定性。
优选地,多线程通信隔离模块用于隔离线程在并行阶段的通信交互,防止出现数据竞争。
优选地,原子事务阶段划分模块用于划分线程运行阶段。
优选地,线程同步策略研究模块,用于确保线程在运行阶段转换时,按照确定性顺序获取令牌,避免出现同步竞争。
优选地,LIRS缓存替换算法优化用于优化确定性系统的性能开销。
本发明中,线程同步策略模块为线程在串行阶段和并行阶段运行之间建立联系,本发明线程运行设置事务概念,在一轮事务中线程运行分为串行阶段和并行阶段两部分。所有线程在结束并行阶段到达同步点之后,按照获取令牌的顺序进入串行阶段,线程串行阶段执行结束后,在同步点阻塞当所有线程结束串行阶段后开启新一轮事务执行。通过将线程的运行与提交数据分离,保证线程通过同步点的顺序的确定性来保证多线程运行的确定性。并且通过使用更适合多线程环境的缓存替换算法提升系统性能。
附图说明
图1为本发明的线程运行阶段示意图。
图2为本发明的确定性顺序提交示意图。
图3为本发明的整体运行流程示意图。
具体实施方式
下面结合具体实施例对本发明作进一步解说。
实施例
参考图1,在并行阶段中为线程运行设置栅栏,每一个并行阶段只能允许线程执行一定数量的指令,在执行结束后线程被栅栏阻塞,等待其他线程进入同步操作。
在串行阶段,线程在同步点按照令牌传递算法获取令牌,申请对内存加锁,然后提交执行结果。获取令牌和申请加锁都是互斥行为,每个线程在每一轮中只能执行一次。线程在执行完提交操作后被栅栏阻塞,等待后面的线程进入串行阶段,当全部线程都结束串行阶段后,线程将各自的私有页面提交到共享页面中,与共享页面进行比对,获得本轮执行后最新的共享数据,为下一轮并行阶段开始做准备。令牌传递使用环形队列,所有线程按照ID顺序进入队列,依次获取令牌并获得读写共享数据权限的锁资源,开始与内存的读写操作。
参考图2,因为阻断了线程之间的交流,因此使用建立共享拷贝的方式保证线程在每个事务阶段开始时,私有页面中拥有相同的数据,保证数据一致性。在并行阶段时,各个线程根据上一轮拷贝的共享数据开始执行,各个线程之间并行执行,没有数据交换。当全部线程被栅栏阻挡在同步点之后,线程按照获取令牌的顺序依次向共享页面进行提交,由于弱确定性保证线程同步顺序,因此共享页面的内容是具有确定性的,当串行阶段结束,全部线程都执行完提交操作后,各个线程将私有页面提交到共享页面中进行逐字节的比较获得修改信息。每个线程的私有页面实际上就相当于共享页面的本地副本,线程的操作先提交到本地副本,当到达同步点时再按照确定性同步顺序提交到共享页面中,保证共享页面中的数据具有确定性。
参考图3,在每一轮事务中,多线程程序先经过并行阶段后经过串行阶段保证程序运行的确定性,在串行阶段向内存进行读写请求时,使用LIRS缓存优化消除多线程程序反复读写造成的缓存失效率高的情况,提升系统性能,因此相比一般确定性方法具有更小的系统开销。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (6)
1.一种缓存优化多线程确定性系统,其特征在于:能够保证多线程环境下,线程按照确定性顺序运行,避免由于线程访存冲突而产生的数据竞争和竞争通过同步点顺序产生的同步竞争,同时采用更加适合多线程环境的LIRS缓存替换算法优化系统性能,减少确定性带来的开销。所述系统包括线程确定性结构模块,多线程通信隔离模块,原子事务阶段划分模块,线程同步策略研究模块以及LIRS缓存优化。
线程确定性结构模块,用于在多线程确定性中,设置线程运行规则,在串行阶段和并行阶段之间设置栅栏,强制线程进行同步;
多线程通信隔离模块,用于在线程运行的并行阶段阻止线程之间的数据通信和线程与内存之间的通信行为,防止线程在并行阶段以非确定性的方式访问内存,从而产生数据竞争。
原子事务阶段划分模块,用于划分线程运行阶段,通过将线程运行阶段划分为并行阶段和串行阶段,提升系统运行的并行度。其中并行阶段线程并行执行,并在栅栏处阻塞等待同步,然后按照确定性顺序获取令牌依次开始串行阶段,执行与内存的交互任务。
线程同步策略研究模块,用于保证同步处的线程按照同步策略中的令牌传递顺序,依次获取令牌开始串行阶段执行,避免由于线程竞争通过同步点而出现的同步竞争。
LIRS缓存替换算法优化,用于优化系统性能,减少多线程频繁读写造成的缓存失效,改善系统由于保证确定性所产生的额外开销。
2.根据1所述的应用于缓存优化多线程确定性系统。其特征在于,所述线程确定性结构模块;
由于系统中Posix thread多线程环境中,线程结构可以分为线程控制、锁结构和线程中的程序,并没有控制线程运行状态的结构,因此线程在运行阶段转换之间需要设置栅栏强制线程进行同步,同时确保线程的创建,杀死都在获得令牌的前提下完成,所述方法包括如下步骤:
步骤1:设置线程运行阶段转换点的栅栏;
步骤2:保证线程获取令牌和获取锁资源的一致性;
步骤3:线程在获取令牌之后进行创建子线程和关闭操作;
步骤4:线程在并行阶段结束后,按照获取令牌的顺序开始串行阶段;
步骤5:线程在串行阶段结束后,所有线程均到达同步点,开始下一轮事务执行。
3.根据1所述的缓存优化多线程确定性系统系统。其特征在于隔离线程在并行阶段的交互通信。
多线程产生数据竞争的主要原因在于线程竞争访问相同内存地址时的顺序,因此如果能控制线程访问内存的顺序就可以避免出现数据竞争。本方法通过隔离线程在并行阶段的交互通信,避免了线程之间和线程与内存间的数据交换,本阶段线程执行的数据来自与上轮事务串行阶段结束后各个线程的内存拷贝,这种方法将线程与内存的数据交换推迟到串行阶段执行,在串行阶段线程按照获取令牌的确定性顺序访问内存,避免出现数据竞争保证了线程运行的确定性。
4.根据1所述的应用于缓存优化多线程确定性系统系统系统。其特征在于划分线程运行阶段,将线程的运行阶段分为串行与并行两部分,在并行阶段中为线程运行设置栅栏,每一个并行阶段只能允许线程执行一定数量的指令,在执行结束后线程被栅栏阻塞,等待其他线程进入同步操作。
在串行阶段,线程在同步点按照令牌传递算法获取令牌,申请对内存加锁,然后提交执行结果。获取令牌和申请加锁都是互斥行为,每个线程在每一轮中只能执行一次。线程在执行完提交操作后被栅栏阻塞,等待后面的线程进入串行阶段,当全部线程都结束串行阶段后,线程将各自的私有页面提交到共享页面中,与共享页面进行比对,获得本轮执行后最新的共享数据,为下一轮并行阶段开始做准备。
5.根据1所述的应用于缓存优化多线程确定性系统系统系统。其特征在于通过令牌传递机制保证线程按照确定性顺序进入串行阶段。
为了防止出现数据竞争,在并行阶段不允许线程向内存进行读写操作,因此线程进入串行阶段的顺序就决定了线程读写内存的顺序,该顺序具有确定性就保证了多线程不会出现数据竞争。线程在同步点按照线程ID顺序获取令牌,保证了线程在同步点不会因为竞争通过栅栏的顺序而出现同步竞争和死锁的情况,避免了出现同步竞争,保证多线程运行的确定性。
6.根据1所述的应用于缓存优化多线程确定性系统系统系统。其特征在于使用了LIRS缓存替换算法替代原本的LRU算法。由于LRU 算法在结构上的缺陷,使得该算法不能很好的适应反复读写的需求,因此在多线程环境下表现较差。本方法使用更加适合多线程环境的LIRS算法替换LRU算法,提高因为多线程程序反复读写造成的缓存命中率低下问题,改善由于设置确定性规则所产生的系统开销,使得本系统具有更好的性能指标和更广泛的应用环境。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811262122.2A CN109471734A (zh) | 2018-10-27 | 2018-10-27 | 一种新型缓存优化多线程确定性方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811262122.2A CN109471734A (zh) | 2018-10-27 | 2018-10-27 | 一种新型缓存优化多线程确定性方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109471734A true CN109471734A (zh) | 2019-03-15 |
Family
ID=65666107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811262122.2A Pending CN109471734A (zh) | 2018-10-27 | 2018-10-27 | 一种新型缓存优化多线程确定性方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109471734A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582474A (zh) * | 2018-11-02 | 2019-04-05 | 哈尔滨工业大学 | 一种新型缓存优化多线程确定性方法 |
CN110083445A (zh) * | 2019-04-21 | 2019-08-02 | 哈尔滨工业大学 | 一种基于弱内存一致性的多线程确定性执行方法 |
CN110162399A (zh) * | 2019-05-08 | 2019-08-23 | 哈尔滨工业大学 | 一种面向多核实时系统的时间确定性方法 |
CN111984421A (zh) * | 2020-09-03 | 2020-11-24 | 深圳壹账通智能科技有限公司 | 数据处理方法、装置及存储介质 |
CN112528583A (zh) * | 2020-12-18 | 2021-03-19 | 广东高云半导体科技股份有限公司 | 多线程综合方法及用于fpga开发的综合系统 |
CN117785484A (zh) * | 2024-02-26 | 2024-03-29 | 北京卡普拉科技有限公司 | 共享Cache资源分配方法、系统、计算机设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101133396A (zh) * | 2005-01-24 | 2008-02-27 | 国际商业机器公司 | 用于在多处理器环境中管理对共享资源的存取的方法 |
CN101286139A (zh) * | 2008-06-03 | 2008-10-15 | 浙江大学 | 基于功能划分的多线程共享多核处理器二级缓存的方法 |
CN101964004A (zh) * | 2009-07-24 | 2011-02-02 | 复旦大学 | 用于集成电路设计的多核并行最小代价流方法及装置 |
US20120311604A1 (en) * | 2011-05-31 | 2012-12-06 | International Business Machines Corporation | Deterministic parallelization through atomic task computation |
CN107515781A (zh) * | 2017-07-20 | 2017-12-26 | 哈尔滨工业大学(威海) | 一种多处理器系统确定性调度和负载均衡方法 |
CN107704324A (zh) * | 2017-07-20 | 2018-02-16 | 哈尔滨工业大学(威海) | 一种面向多核确定性的基于硬件的内存隔离方法 |
-
2018
- 2018-10-27 CN CN201811262122.2A patent/CN109471734A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101133396A (zh) * | 2005-01-24 | 2008-02-27 | 国际商业机器公司 | 用于在多处理器环境中管理对共享资源的存取的方法 |
CN101286139A (zh) * | 2008-06-03 | 2008-10-15 | 浙江大学 | 基于功能划分的多线程共享多核处理器二级缓存的方法 |
CN101964004A (zh) * | 2009-07-24 | 2011-02-02 | 复旦大学 | 用于集成电路设计的多核并行最小代价流方法及装置 |
US20120311604A1 (en) * | 2011-05-31 | 2012-12-06 | International Business Machines Corporation | Deterministic parallelization through atomic task computation |
CN107515781A (zh) * | 2017-07-20 | 2017-12-26 | 哈尔滨工业大学(威海) | 一种多处理器系统确定性调度和负载均衡方法 |
CN107704324A (zh) * | 2017-07-20 | 2018-02-16 | 哈尔滨工业大学(威海) | 一种面向多核确定性的基于硬件的内存隔离方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582474A (zh) * | 2018-11-02 | 2019-04-05 | 哈尔滨工业大学 | 一种新型缓存优化多线程确定性方法 |
CN110083445A (zh) * | 2019-04-21 | 2019-08-02 | 哈尔滨工业大学 | 一种基于弱内存一致性的多线程确定性执行方法 |
CN110083445B (zh) * | 2019-04-21 | 2023-04-25 | 哈尔滨工业大学 | 一种基于弱内存一致性的多线程确定性执行方法 |
CN110162399A (zh) * | 2019-05-08 | 2019-08-23 | 哈尔滨工业大学 | 一种面向多核实时系统的时间确定性方法 |
CN110162399B (zh) * | 2019-05-08 | 2023-05-09 | 哈尔滨工业大学 | 一种面向多核实时系统的时间确定性方法 |
CN111984421A (zh) * | 2020-09-03 | 2020-11-24 | 深圳壹账通智能科技有限公司 | 数据处理方法、装置及存储介质 |
CN111984421B (zh) * | 2020-09-03 | 2022-09-16 | 深圳壹账通智能科技有限公司 | 数据处理方法、装置及存储介质 |
CN112528583A (zh) * | 2020-12-18 | 2021-03-19 | 广东高云半导体科技股份有限公司 | 多线程综合方法及用于fpga开发的综合系统 |
CN117785484A (zh) * | 2024-02-26 | 2024-03-29 | 北京卡普拉科技有限公司 | 共享Cache资源分配方法、系统、计算机设备及介质 |
CN117785484B (zh) * | 2024-02-26 | 2024-05-17 | 北京卡普拉科技有限公司 | 共享Cache资源分配方法、系统、计算机设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109471734A (zh) | 一种新型缓存优化多线程确定性方法 | |
Reed | Implementing atomic actions on decentralized data | |
Lin et al. | Towards a non-2pc transaction management in distributed database systems | |
CN109582474A (zh) | 一种新型缓存优化多线程确定性方法 | |
EP3193256A1 (en) | A fault-tolerant data processing computer system and method for implementing a distributed two-tier state machine | |
Hay et al. | Experiments with hardware-based transactional memory in parallel simulation | |
Singh et al. | A non-database operations aware priority ceiling protocol for hard real-time database systems | |
Taubenfeld | Contention-sensitive data structures and algorithms | |
Danek et al. | Local-spin group mutual exclusion algorithms | |
Shrivastava et al. | Supporting transaction predictability in replicated DRTDBS | |
Shen et al. | Rolis: a software approach to efficiently replicating multi-core transactions | |
CN116909741A (zh) | 一种基于新一代申威众核处理器提高从核并行写共享主存临界资源速度的方法及系统 | |
Shanker et al. | Some performance issues in distributed real time database systems | |
Nykiel et al. | Sharing across multiple MapReduce jobs | |
US6366946B1 (en) | Critical code processing management | |
Yi et al. | A Universal Construction to implement Concurrent Data Structure for NUMA-muticore | |
CN109408239A (zh) | 一种基于队列的异步io处理方法 | |
Qi et al. | Smart contract parallel execution with fine-grained state accesses | |
Bhalla | The performance of an efficient distributed synchronization and recovery algorithm | |
Zhang et al. | Scalable adaptive NUMA-aware lock: Combining local locking and remote locking for efficient concurrency | |
Qian et al. | BulkCommit: scalable and fast commit of atomic blocks in a lazy multiprocessor environment | |
Huang et al. | A novel multi-CPU/GPU collaborative computing framework for SGD-based matrix factorization | |
Pang et al. | On using similarity for resolving conflicts at commit in mixed distributed real-time databases | |
Peng et al. | Fast wait-free construction for pool-like objects with weakened internal order: Stacks as an example | |
Solaiman et al. | Later validation/earlier write: Concurrency control for resource-constrained systems with real-time properties |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190315 |