一种多线程计算装置制造方法及图纸

技术编号:9718628 阅读:105 留言:0更新日期:2014-02-27 05:18
本发明专利技术适用于办公软件领域,提供了一种多线程计算装置,所述装置包括:管理器、多个执行器和存储器,其中,所述管理器,用于对所述装置的初始化,对所述多个执行器的生命周期管理、对所述多个执行器间的通信调度和对多个执行器分配任务;所述执行器,用于封装线程的实现细节,并依据实现细节执行分配的任务;所述存储器,用于取数阶段结果的存储。本发明专利技术提供的技术方案具有系统性能和稳定性的提升的优点。

【技术实现步骤摘要】
一种多线程计算装置
本专利技术属于办公软件领域,尤其涉及一种多线程计算装置。
技术介绍
自从2006年Intel公司推出全球首款双核处理器以来,服务器的硬件水平不断提升,今天,配备4核以上多个CPU以及大容量内存的服务器已经成为主流,但是我们的直观感觉是ERP系统中核心计算的性能并没有得到太多提升。影响应用性能提升的关键原因是目前的程序大多是按照单一线程的思路编写的,对多核及多线程的支持不足。在大型企业的ERP系统中,随着应用复杂度和数据量的不断增长,核心计算的性能和稳定性问题日益突显。比如成本管理中每个月的结转计算,需要把当期企业中所有产品、物料的数据自下而上进行卷积计算。这类核心计算的显著特点是:第一,计算过程由读取数据和计算两部分构成;第二,读取的数据量巨大,计算过程复杂;第三,无并发执行。按照传统单一线程编程思路,在读取数据阶段,系统资源的消耗主要集中在IO传输和内存读写上,在数据量巨大的情况下,容易发生内存溢出,并且在取数的大段时间内CPU资源使用严重不足;在计算阶段,系统资源的消耗主要集中在CPU的复杂计算上,由于是整体计算,耗时很长,在整个计算过程中,并没有发挥出多核CPU的硬件优势来有效提升计算性能。
技术实现思路
本专利技术实施例的目的在于提供一种多线程计算装置,旨在解决现有技术中单线程计算带来的CPU资源使用不足,计算性能不高的问题。一方面,提供一种多线程计算装置,所述装置包括:管理器、多个执行器和存储器,其中,所述管理器,用于对所述装置的初始化,对所述多个执行器的生命周期管理、对所述多个执行器间的通信调度和对多个执行器分配任务;所述执行器,用于封装线程的实现细节,并依据实现细节执行分配的任务;所述存储器,用于取数阶段结果的存储。可选的,所述管理器,还用于配制线程的最大数量。可选的,所述管理器,具体用于依据取树任务和执行器的数量,随机或按模数将任务分发给所述多个执行器。可选的,所述多个执行器,具体用于按照分发的任务按照执行队列中先进先出的顺序执行取数操作。在本专利技术实施例中,本专利技术提供的技术方案充分利用硬件资源,提高计算性能,将多线程的实现细节封装起来,极大简化了多线程改造的过程,带来系统性能和稳定性的提升的优点。附图简要说明图1是本专利技术【具体实施方式】提供的一种多线程计算装置的结构图;图2是本专利技术【具体实施方式】提供的多线程计算装置的原理图。实施本专利技术的方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术【具体实施方式】提供一种多线程计算装置,该装置如图1所示,包括:管理器101、多个执行器102和存储器103,其中,管理器101:用于所述装置的初始化、线程的生命周期管理和线程间的通信调度。由于服务器硬件水平的不同,对多线程支持的能力也有差别,在装置的初始化阶段,可以通过管理器对线程的最大数量进行设定,避免系统过载。作为整个装置的大脑,管理器控制每个执行器(即线程)创建、运行、阻塞和销毁的完整生命周期,并采用了先进的Map-Reduce机制控制取数线程和计算线程的调度,实现了真正意义上的并行计算。执行器102:真正进行业务操作的实体组件,实际上就是每一个执行线程。执行器封装了线程的实现细节,并依据实现细节执行;包装了业务操作,受管理器的管理和控制。作为业务活动的执行者,执行器拥有独立的执行队列,多个任务在执行器中按照“先进先出”的顺序执行。当执行器被分配取数任务的时候,它执行取数业务操作,并将结果存入存储区;当执行器被分配计算任务的时候,它从存储区获取数据并执行算法计算。存储区103:负责取数阶段结果的存储。存储区分为一系列小的区域,每个区域有唯一的地址,用于区分不同任务的查询结果。管理器控制取数阶段的数据写入和计算阶段的数据读取。可选的,上述管理器101还用于配置线程的最大数量。可选的,上述管理器101具体用于依据取数任务和执行器102的数量,随机或按模数将任务分发给多个执行器102.如图2所示,为本专利技术的原理图。图中将从数据库读取数据的操作简称为“取数”,执行取数任务的执行器称为“取数执行器”;将算法计算的过程简称为“计算”,执行计算任务的执行器称为“计算执行器”。下面按照图中的数字标识详细说明装置的原理和机制。配置。使用本装置进行多线程计算前需要进行配置,主要包括两个方面的内容:一是针对不同的服务器硬件,对线程的最大数量进行设置,避免系统过载,图中配置了最多4个取数线程,2个计算线程;二是设定任务到执行器的分配策略,比如随机分配或按模数分配等。组件初始化。根据配置创建执行器和存储区。输入取数请求。这个过程在装置外进行,取数程序由业务系统提供,按照一定的策略分批从数据库中读取数据。它们以取数任务的形式进入装置。取数任务分配与执行。管理器根据取数任务和执行器的数量,按照用户设定的分配策略分发任务,图中按照模数进行分发,即用任务序号对取数执行器的总数量取模,得到的值即为执行器的序号,比如第I个和第5个任务由执行器I执行,第2个和第6个任务由执行器2执行。分发后的请求进入对应的执行器的执行队列中。各取数执行器按照执行队列中先进先出的顺序执行取数操作。存储取数结果。每个取数操作完成后,取数执行器会在存储区分配新的区域存储查询结果,并通过事件机制通知管理器取数过程已完成,以及查询结果在存储区中的地址。计算任务分配与执行。计算程序由业务系统提供。管理器按照用户设定的分配策略向计算执行器分发计算任务,并给出这次计算需要的数据在存储区的地址。分发后的任务进入对应的执行器的执行队列中。各计算执行器按照执行队列中先进先出的顺序执行计算。计算过程首先会按照管理器给定的地址从存储区中获取数据,然后执行算法,计算完成后,对应的数据会从存储区中删除,以保证内存的稳定性。输出结果。装直返回计算结果。装置采用了先进的Map-Reduce机制进行多线程调度,各个执行器之间不存在相互依赖,每个执行器节点会定期向管理器报告状态和完成的工作,如果一个节点保持沉默的时间超过了预设值,管理器会认为该执行器出现异常,并把该执行器没有执行完的任务分配给其他节点继续执行。因此,从设计的角度,装置具有非常好的并行性和健壮性。实施例在大型企业成本管理的实际应用中,每个月的成本结转操作是整个流程中最关键的核心算法。成本结转是在企业一个会计期间内,对产品树上的产品的所有生产成本和制造费用自下而上的卷积计算,涉及到数据量巨大的业务单据和非常复杂的计算过程,因此传统的单一线程设计容易发生内存溢出和性能问题。下面以一个具体的例子说明本装置在成本结转中的应用成果。A工厂生产大型起重机械,产品树深度为15层,某会计期间内平均每层产品节点的业务单据数据量为10000条,每个产品节点平均数据量为500条。按照单一线程的处理方式,计算每层节点平均要先查询出10000条数据,缓存在内存中,再执行结转计算。这样平均每层的执行时间在I分钟左右,并且在某些数据量远大于平均值的产品层级上非常容易发生内存溢出的情况。设应用服务器包含了 4颗4核心的CPU,使用本专利技术提出的多线程计算装置,设置取数线程最大数量为8,结转计算线本文档来自技高网...

【技术保护点】
一种多线程计算装置,其特征在于,所述装置包括:管理器、多个执行器和存储器,其中,所述管理器,用于对所述装置的初始化,对所述多个执行器的生命周期管理、对所述多个执行器间的通信调度和对多个执行器分配任务;所述执行器,用于封装线程的实现细节,并依据实现细节执行分配的任务;所述存储器,用于取数阶段结果的存储。

【技术特征摘要】
1.一种多线程计算装置,其特征在于,所述装置包括:管理器、多个执行器和存储器,其中, 所述管理器,用于对所述装置的初始化,对所述多个执行器的生命周期管理、对所述多个执行器间的通信调度和对多个执行器分配任务; 所述执行器,用于封装线程的实现细节,并依据实现细节执行分配的任务; 所述存储器,用于取数阶段结果的存储。2.根据权利要...

【专利技术属性】
技术研发人员:丁一鸣
申请(专利权)人:用友软件股份有限公司
类型:发明
国别省市:

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

1