CN109471734A - 一种新型缓存优化多线程确定性方法 - Google Patents

一种新型缓存优化多线程确定性方法 Download PDF

Info

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
Application number
CN201811262122.2A
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.)
Harbin Institute of Technology Weihai
Original Assignee
Harbin Institute of Technology Weihai
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 Harbin Institute of Technology Weihai filed Critical Harbin Institute of Technology Weihai
Priority to CN201811262122.2A priority Critical patent/CN109471734A/zh
Publication of CN109471734A publication Critical patent/CN109471734A/zh
Pending legal-status Critical Current

Links

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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • 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/54Interprogram communication
    • G06F9/544Buffers; 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算法,提高因为多线程程序反复读写造成的缓存命中率低下问题,改善由于设置确定性规则所产生的系统开销,使得本系统具有更好的性能指标和更广泛的应用环境。
CN201811262122.2A 2018-10-27 2018-10-27 一种新型缓存优化多线程确定性方法 Pending CN109471734A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 哈尔滨工业大学(威海) 一种面向多核确定性的基于硬件的内存隔离方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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