CN104572106A - 一种基于小内存处理大规模数据的并行程序开发方法 - Google Patents
一种基于小内存处理大规模数据的并行程序开发方法 Download PDFInfo
- Publication number
- CN104572106A CN104572106A CN201510013613.3A CN201510013613A CN104572106A CN 104572106 A CN104572106 A CN 104572106A CN 201510013613 A CN201510013613 A CN 201510013613A CN 104572106 A CN104572106 A CN 104572106A
- Authority
- CN
- China
- Prior art keywords
- buf
- data
- queue
- thread
- data block
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于小内存处理大规模数据的并行程序开发方法,包括以下步骤:在内存和外存开辟数据空间,并划分成若干数据块,将任务数据读入到划分的外存数据块中;设置读线程、计算线程、写线程;将外存作为内存的缓存来存储暂时不用计算的数据。将整个计算数据划分为合适的小数据块,存放到外存中。只有当需要计算到该数据块时才将其调度到内存中,实现了数据的动态调度,满足了小内存处理大数据的要求。该一种基于小内存处理大规模数据的并行程序开发方法与现有技术相比,充分利用外存的大容量的特点,动态调度计算数据给计算核心,达到计算的负载均衡,同时通信与计算异步执行,提高系统整体的性能,满足小内存处理大数据的要求。
Description
技术领域
本发明涉及高性能计算领域,具体地说是一种实用性强、基于小内存处理大规模数据的并行程序开发方法。
背景技术
当前社会人类的数据大爆炸,信息数据越来越多,人们对信息数据的处理能力的要求也越来越高,不仅石油勘探、气象预报、航天国防、科学研究等需求高性能计算,金融、政府信息化、教育、企业、网络游戏等更广泛的领域对高性能计算的需求迅猛增长。
计算速度对于高性能计算尤为重要,高性能计算朝多核、众核发展。但是由于一些应用运算数据规模一直比较大,受限于网络带宽,系统内存等原因,系统无法处理数据量远远超过系统内存的承受,导致计算核心无法充分的利用。对于内存不足的系统,将数据量一次性全部导入内存再处理的方式已经无法满足当前的需求,需要进一步设计一种根据现有有限的硬件设备下能够在单机中处理大规模数据,并且不会降低计算效率、能够充分利用计算核心的方法。
基于此,本发明提供一种基于小内存处理大数据开发方法,对一些无法在小内存的设备条件下运行的程序或不能充分利用计算核心的系统修改,能够处理较大规模的数据,并使系统的计算设备达到计算的负载均衡且满负载的运行,从而最大限度的利用现有设备的性能,提高系统的整体运行的效率,大大缩短程序的运行时间。
发明内容
本发明的技术任务是针对以上不足之处,提供一种实用性强、基于小内存处理大规模数据的并行程序开发方法。
一种基于小内存处理大规模数据的并行程序开发方法,其具体实现过程为:
在内存和外存开辟数据空间,并划分成若干数据块,将任务数据读入到划分的外存数据块中,计算与I/O线程操作不同的内存数据块与外存数据块交互,使得计算该数据块所需时间与I/O的时间相等;
设置读线程、计算线程、写线程,主线程根据CPU的计算核心数量启动计算线程和I/O线程,主线程初始化队列和各个缓存区,然后启动上述各个线程;
当需要计算划分到外存中的数据块时,读线程从内存中获取空的数据块缓冲区,然后将外存数据块中的数据读入到内存中;
计算线程从内存中获取已经读入的数据块,再从内存中获取一个空的数据块缓存区,计算结果存入到空的数据块缓冲区中,将源数据的数据块缓存区清空;
写线程获取计算线程计算完成后目的数据块缓存区中数据,将此数据写到外存中的缓冲区中,输出完毕后将目的数据块缓存区清空。
所述读线程、计算线程、写线程异步并行,需要源缓冲SR_BUF和目标缓冲DR_BUF,DR-BUF、SR_BUF均为由主线程开辟的内存缓冲空间;BUF是一个连续的存储空间,被分割成多份,每份称为一个缓冲块BUF_BLOCK,缓冲块对应一个基本数据块的作业单位;读线程与计算线程共同操作SR_BUF缓冲,计算线程与写线程共同操作DR_BUF缓冲。
每个缓冲或队列可容纳至少两个缓冲对象。
还包括环形队列,该环形队列存储缓冲区的ID,各线程从队列中获取要操作的缓冲区对应的ID,上述环形队列包括下述四个队列:
SR_BUF_FULL_QUEUE:新的计算任务队列,存放新读入的等待计算的源数据块的ID号SR_BUF_ID、数据块的大小信息,由读线程写入,计算线程弹出,当读线程向SR_BUF_ID对应的缓存区中读入新的数据时,将SR_BUF_ID入队,计算线程弹出SR_BUF_ID时,计算SR_BUF_ID对应的源数据;
SR_BUF_FREE_QUEUE:空闲源缓冲队列,存放当前空闲SR_BUF_ID号,由计算线程写入,读线程弹出,当SR_BUF_ID对应的源数据计算完毕时,释放SR_BUF_ID,告知读线程可对其更新数据;
DR_BUF_FREE_QUEUE:空闲目标缓冲队列,存放当前空闲数据块的ID号DR_BUF_ID,记录DR_BUF_ID号,由写线程写入,计算线程弹出;当写线程对DR_BUF_ID对应的缓存区数据输出完毕时,将DR_BUF_ID入队,告知计算线程,该DR_BUF_ID输出完毕可重新用于计算,计算线程弹出DR_BUF_ID时,启动计算,并将结果写入DR_BUF_ID对应的目标缓冲区中;
DR_BUF_FULL_QUEUE:新的写任务队列,存放计算完毕等待写回的目标数据块的ID号DR_BUF_ID,由计算线程写入,写线程弹出;当计算线程向DR_BUF_ID所对应的缓冲区中读入新数据时,将DR_BUF_ID入队,写线程弹出DR_BUF_ID时,对DR_BUF_ID对应的目标数据进行输出。
基于上述队列,该并行程序开发的具体过程为:
主线程根据CPU的计算核心数启动nThreads个计算线程和同等数量的I/O线程,将计算数据划分为合适的基本数据块,并在外存开辟同样数量大小的内存,将数据库中的数据读入到外存中;
在内存中开辟内存块,其内存块的数量是线程数量的倍数;
创建四个队列SR_BUF_FULL_QUEUE、SR_BUF_FREE_QUEUE、DR_BUF_FREE_QUEUE、DR_BUF_FREE_QUEUE,并初始化队列,即将内存块的ID存入FREE队列中,最后主线启动所有线程;
读线程从SR_BUF_FREE_QUEUE队列中获取一个空的数据块ID,将一个外存数据块读入到此ID对应的数据块中,然后将此数据块的ID入队到队列SR_BUF_FULL_QUEUE中;
计算线程分别从SR_BUF_FULL_QUEUE和DR_BUF_FREE_QUEUE获取数据块的ID,计算源数据并将结果存入到目的数据块中,计算完成将源数据块清空并将其ID入队到SR_BUF_FREE_QUEUE对列中,将目的数据块的ID入队到DR_BUF_FULL_QUEUE对列中;
写线程中DR_BUF_FULL_QUEUE中获取待写的数据块的ID,将ID对应的数据块写入到外存中,写完成后将数据块中数据清空并将其ID入队到DR_BUF_FREE_QUEUE队列中;
计算线程与读写线程异步并行执行,直到系统结束。
本发明的一种基于小内存处理大规模数据的并行程序开发方法,具有以下优点:
该发明的一种基于小内存处理大规模数据的并行程序开发方法根据任务量在现有的硬件设备条件,动态调度计算数据的方法具有针对系统平台自适应,可实现系统的可靠、高效;可以自适应于小内存来处理大数据的系统,此系统可以由纯CPU系统组成;实现动态调度,系统中各计算核心实现满负载运行,系统设备利用率高,计算核心彼此相互不等待,系统中计算设备不出现空闲状态,系统将实现高效运转;在现有硬件的条件如内存容量、网络带宽不足的情况下,采取数据分块传输与计算异步处理的方式,能够有效处理大规模的数据;运行此系统将实现高性能,此系统将根据设备的计算能力和系统内设备资源的容量动态划分计算任务,实现计算任务的分块处理,提升系统的高效性,满足设备无法运行大量数据的要求,有很高的实用价值,实用性强,易于推广。
附图说明
附图1为本发明的数据划分示意图。
附图2为本发明的多缓存结构设计图。
附图3为本发明的环形队列示意图。
附图4为计算系统运行时序图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
为充分利用带小内存的硬件设备的性能,以实现整个系统效率大幅提升,并解决在当前计算设备网络带宽不足、内存容量小等情况,而无法对较大规模数据进行处理的问题。本发明提出一种基于小内存处理大规模数据的并行程序开发方法,该发明中系统充分利用外存的大容量的特点,动态调度计算数据给计算核心,达到计算的负载均衡,同时通信与计算异步执行,提高系统整体的性能,满足小内存处理大数据的要求。
为了实现计算与I/O的更好的异步执行,本发明中设计四个环形的队列,队列中根据数据块存放数据的情况存放不同数据块的ID。计算与I/O作为队列的生产者或消费者共同操作队列。当计算完成一个数据块从队列中再获取另外的数据块,实现了计算的负载均衡。
本发明充分利用外存容量大的特点,将外存作为内存的缓存来存储暂时不用计算的数据。将整个计算数据划分为合适的小数据块,存放到外存中。只有当需要计算到该数据块时才将其调度到内存中,实现了数据的动态调度,满足了小内存处理大数据的要求。
该方法的实现基于各种线程进行,其中各种线程包括:
读线程,该线程将外存中数据块读入到空的内存数据块中;
计算线程,该线程获取一个已经被读线程读入的数据块,计算该数据块并将计算结果写入到空的数据块内存中。
写线程,该线程获取存有计算结果的数据块,将该数据块中的数据写回到外存中的数据块缓存区中。
环形队列,存储缓冲区的ID,线程从队列中获取要操作的缓冲区对应的ID。
本发明通过读线程、计算线程以及写线程的异步并行执行方法,使得计算与I/O最大限度的实现相互隐藏,充分利用外存的大容量来弥补内存的容量的不足,且避免计算效率的降低。此系统上I/O与并行计算的异步执行,提高了系统的整体的运行效率和设备的利用率,满足了高性能应用的要求。
本系统具有一定的适用性,理论上此方法的设计可以适用于任何由于内存过小而无法运行的系统中,同时由于异步的方式也不会降低系统的计算效率,保证系统全负荷高效率的正常工作。
其具体实现过程为:
如图1所示,在内存和外存开辟数据空间,并划分合适数量的数据块,将任务数据读入到划分的外存数据块中,计算与I/O 线程操作不同的内存数据块与外存数据块交互,使得计算该数据块所需时间与I/O的时间尽可能的相等,如此计算与I/O的完全相互掩盖,提高系统的效率。
读、计算、写线程异步并行,需要SR_BUF和DR_BUF,SR_BUF称为源缓冲,DR_BUF称为目标缓冲。DR-BUF,SR_BUF均是由主线程开辟的内存缓冲空间;BUF是一个连续的存储空间,被分割成多份,每份称为一个缓冲块BUF_BLOCK,缓冲块对应一个基本数据块的作业单位。读线程与计算线程共同操作SR_BUF缓冲,计算线程与写线程共同操作DR_BUF缓冲。
多线程与缓冲关系示意图2,每个缓冲或队列可容纳两个或多个缓冲对象,形成典型的“生产者——消费者”类型。
为了实现上述任务分发策略,设计如图3所示的四个队列:
SR_BUF_FULL_QUEUE:新的计算任务队列,存放新读入的等待计算的源数据块的ID 号SR_BUF_ID,及数据块的大小等必要的数据信息,由读线程写入(生产),计算线程弹出(消费),当读线程向SR_BUF_ID对应的缓存区中读入新的数据时,将SR_BUF_ID入队,计算线程弹出SR_BUF_ID时,计算SR_BUF_ID对应的源数据。
SR_BUF_FREE_QUEUE:空闲源缓冲队列,存放当前空闲SR_BUF_ID号,与SR_BUF_FULL_QUEUE功能相反,由计算线程写入(生产),读线程弹出(消费),当SR_BUF_ID对应的源数据计算完毕时,释放SR_BUF_ID,告知读线程可对其更新数据。
DR_BUF_FREE_QUEUE:空闲目标缓冲队列,存放当前空闲数据块的ID号DR_BUF_ID,记录DR_BUF_ID号,由写线程写入(生产),计算线程弹出(消费)。
当写线程对DR_BUF_ID对应的缓存区数据输出完毕时,将DR_BUF_ID入队,告知计算线程,该DR_BUF_ID输出完毕可重新用于计算,计算线程弹出DR_BUF_ID时,启动计算,并将结果写入DR_BUF_ID对应的目标缓冲区中。
DR_BUF_FULL_QUEUE:新的写任务队列,存放计算完毕等待写回的目标数据块的ID号DR_BUF_ID,由计算线程写入(生产),写线程弹出(消费)。
当计算线程向DR_BUF_ID所对应的缓冲区中读入新数据时,将DR_BUF_ID入队,写线程弹出DR_BUF_ID时,对DR_BUF_ID对应的目标数据进行输出。
由于需要处理大量的数据,受限于内存、网络带宽等设备资源,计算效率与设备的通信速率不匹配成为了瓶颈,因此采用将大的数据分块的方式,动态的分发到各个计算核心。在计算与通信异步的方式(如图4)下,系统需要根据I/O的通信能力,计算核心的计算能力将数据划分为合适的块,使得计算与传输的相互掩盖,以其达到最优的性能。
线程工作时序如图4所示,计算与传输异步的方式下,主线程根据CPU的计算核心数量启动计算线程和I/O线程,主线程初始化队列和各个缓存区,然后启动各个线程。读线程从内存中获取空的数据块缓冲区,然后将外存数据块中的数据读入到内存中,计算线程从内存中获取已经读入的数据块,再从内存中获取一个空的数据块缓存区,计算结果存入到空的数据块缓冲区中,将源数据的数据块缓存区清空。写线程获取计算线程计算完成后目的数据块缓存区中数据,将此数据写到外存中的缓冲区中,输出完毕后将目的数据块缓存区清空。
该系统在读入下一个数据块的同时,计算当前的数据块,同时输出上一个已经计算完成的数据块。传输与计算的异步方式不仅缩短了计算的时间,同时由于分块计算,对系统的小内存或低带宽的硬件设备也可以应用与大规模数据的计算。
系统工作流程:
主线程根据CPU的计算核心数启动nThreads个计算线程和同等数量的I/O线程,将计算数据划分为合适的基本数据块。并在外存开辟同样数量大小的内存,将数据库中的数据读入到外存中。在内存中开辟内存块,其内存块的数量是线程数量的倍数。创建前文讲到的四个队列(SR_BUF_FULL_QUEUE、SR_BUF_FREE_QUEUE、DR_BUF_FREE_QUEUE、DR_BUF_FREE_QUEUE),并初始化队列,即将内存块的ID存入FREE队列中,最后主线启动所有线程。读线程从SR_BUF_FREE_QUEUE队列中获取一个空的数据块ID,将一个外存数据块读入到此ID对应的数据块中,然后将此数据块的ID入队到队列SR_BUF_FULL_QUEUE中。计算线程分别从SR_BUF_FULL_QUEUE和DR_BUF_FREE_QUEUE获取数据块的ID,计算源数据并将结果存入到目的数据块中,计算完成将源数据块清空并将其ID入队到SR_BUF_FREE_QUEUE对列中,将目的数据块的ID入队到DR_BUF_FULL_QUEUE对列中。写线程中DR_BUF_FULL_QUEUE中获取待写的数据块的ID,将ID对应的数据块写入到外存中,写完成后将数据块中数据清空并将其ID入队到DR_BUF_FREE_QUEUE队列中。计算线程与读写线程异步并行执行,直到系统结束。
此系统中,计算与通信采用全异步的方式,保证了计算与传输的隐藏缩短了整个系统的计算时间,同时采用计算数据分块的处理方式,可以使得系统很好的应用到网络带宽低和存储空间不足但却可以处理大数据的情况。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种基于小内存处理大规模数据的并行程序开发方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
Claims (5)
1.一种基于小内存处理大规模数据的并行程序开发方法,其特征在于,其具体实现过程为:
在内存和外存开辟数据空间,并划分成若干数据块,将任务数据读入到划分的外存数据块中,计算与I/O线程操作不同的内存数据块与外存数据块交互,使得计算该数据块所需时间与I/O的时间相等;
设置读线程、计算线程、写线程,主线程根据CPU的计算核心数量启动计算线程和I/O线程,主线程初始化队列和各个缓存区,然后启动上述各个线程;
当需要计算划分到外存中的数据块时,读线程从内存中获取空的数据块缓冲区,然后将外存数据块中的数据读入到内存中;
计算线程从内存中获取已经读入的数据块,再从内存中获取一个空的数据块缓存区,计算结果存入到空的数据块缓冲区中,将源数据的数据块缓存区清空;
写线程获取计算线程计算完成后目的数据块缓存区中数据,将此数据写到外存中的缓冲区中,输出完毕后将目的数据块缓存区清空。
2.根据权利要求1所述的一种基于小内存处理大规模数据的并行程序开发方法,其特征在于,所述读线程、计算线程、写线程异步并行,需要源缓冲SR_BUF和目标缓冲DR_BUF,DR-BUF、SR_BUF均为由主线程开辟的内存缓冲空间;BUF是一个连续的存储空间,被分割成多份,每份称为一个缓冲块BUF_BLOCK,缓冲块对应一个基本数据块的作业单位;读线程与计算线程共同操作SR_BUF缓冲,计算线程与写线程共同操作DR_BUF缓冲。
3.根据权利要求2所述的一种基于小内存处理大规模数据的并行程序开发方法,其特征在于,每个缓冲或队列可容纳至少两个缓冲对象。
4.根据权利要求2所述的一种基于小内存处理大规模数据的并行程序开发方法,其特征在于,还包括环形队列,该环形队列存储缓冲区的ID,各线程从队列中获取要操作的缓冲区对应的ID,上述环形队列包括下述四个队列:
SR_BUF_FULL_QUEUE:新的计算任务队列,存放新读入的等待计算的源数据块的ID号SR_BUF_ID、数据块的大小信息,由读线程写入,计算线程弹出,当读线程向SR_BUF_ID对应的缓存区中读入新的数据时,将SR_BUF_ID入队,计算线程弹出SR_BUF_ID时,计算SR_BUF_ID对应的源数据;
SR_BUF_FREE_QUEUE:空闲源缓冲队列,存放当前空闲SR_BUF_ID号,由计算线程写入,读线程弹出,当SR_BUF_ID对应的源数据计算完毕时,释放SR_BUF_ID,告知读线程可对其更新数据;
DR_BUF_FREE_QUEUE:空闲目标缓冲队列,存放当前空闲数据块的ID号DR_BUF_ID,记录DR_BUF_ID号,由写线程写入,计算线程弹出;当写线程对DR_BUF_ID对应的缓存区数据输出完毕时,将DR_BUF_ID入队,告知计算线程,该DR_BUF_ID输出完毕可重新用于计算,计算线程弹出DR_BUF_ID时,启动计算,并将结果写入DR_BUF_ID对应的目标缓冲区中;
DR_BUF_FULL_QUEUE:新的写任务队列,存放计算完毕等待写回的目标数据块的ID号DR_BUF_ID,由计算线程写入,写线程弹出;当计算线程向DR_BUF_ID所对应的缓冲区中读入新数据时,将DR_BUF_ID入队,写线程弹出DR_BUF_ID时,对DR_BUF_ID对应的目标数据进行输出。
5.根据权利要求4所述的一种基于小内存处理大规模数据的并行程序开发方法,其特征在于,基于上述队列,该并行程序开发的具体过程为:
主线程根据CPU的计算核心数启动nThreads个计算线程和同等数量的I/O线程,将计算数据划分为合适的基本数据块,并在外存开辟同样数量大小的内存,将数据库中的数据读入到外存中;
在内存中开辟内存块,其内存块的数量是线程数量的倍数;
创建四个队列SR_BUF_FULL_QUEUE、SR_BUF_FREE_QUEUE、DR_BUF_FREE_QUEUE、DR_BUF_FREE_QUEUE,并初始化队列,即将内存块的ID存入FREE队列中,最后主线启动所有线程;
读线程从SR_BUF_FREE_QUEUE队列中获取一个空的数据块ID,将一个外存数据块读入到此ID对应的数据块中,然后将此数据块的ID入队到队列SR_BUF_FULL_QUEUE中;
计算线程分别从SR_BUF_FULL_QUEUE和DR_BUF_FREE_QUEUE获取数据块的ID,计算源数据并将结果存入到目的数据块中,计算完成将源数据块清空并将其ID入队到SR_BUF_FREE_QUEUE对列中,将目的数据块的ID入队到DR_BUF_FULL_QUEUE对列中;
写线程中DR_BUF_FULL_QUEUE中获取待写的数据块的ID,将ID对应的数据块写入到外存中,写完成后将数据块中数据清空并将其ID入队到DR_BUF_FREE_QUEUE队列中;
计算线程与读写线程异步并行执行,直到系统结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510013613.3A CN104572106A (zh) | 2015-01-12 | 2015-01-12 | 一种基于小内存处理大规模数据的并行程序开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510013613.3A CN104572106A (zh) | 2015-01-12 | 2015-01-12 | 一种基于小内存处理大规模数据的并行程序开发方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104572106A true CN104572106A (zh) | 2015-04-29 |
Family
ID=53088272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510013613.3A Pending CN104572106A (zh) | 2015-01-12 | 2015-01-12 | 一种基于小内存处理大规模数据的并行程序开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572106A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105045632A (zh) * | 2015-08-10 | 2015-11-11 | 京信通信技术(广州)有限公司 | 一种多核环境下实现免锁队列的方法和设备 |
CN105824780A (zh) * | 2016-04-01 | 2016-08-03 | 浪潮电子信息产业股份有限公司 | 一种基于单机多fpga的并行开发方法 |
CN107480071A (zh) * | 2017-08-25 | 2017-12-15 | 深圳大学 | 缓存数据迁移方法及装置 |
CN107526943A (zh) * | 2016-06-22 | 2017-12-29 | 宁波数方信息技术有限公司 | 一种基于内外存耦合分布式并发计算的基因比对方法 |
CN107918145A (zh) * | 2016-10-10 | 2018-04-17 | 中国石油化工股份有限公司 | 地震炮能量的并行化处理方法及系统 |
CN108717395A (zh) * | 2018-05-18 | 2018-10-30 | 记忆科技(深圳)有限公司 | 一种降低动态块映射信息占用内存的方法及装置 |
CN109189577A (zh) * | 2018-08-31 | 2019-01-11 | 武汉达梦数据库有限公司 | 一种数据同步时防止内存溢出的方法和装置 |
CN109981380A (zh) * | 2017-12-27 | 2019-07-05 | 恒为科技(上海)股份有限公司 | 一种数据包回放方法及装置 |
CN110674116A (zh) * | 2019-09-25 | 2020-01-10 | 四川长虹电器股份有限公司 | 一种基于swoole的校验插入数据库数据重复的系统及方法 |
CN110767265A (zh) * | 2019-10-23 | 2020-02-07 | 中国科学院计算技术研究所 | 一种针对大数据基因组比对文件排序的并行加速方法 |
CN111443947A (zh) * | 2020-03-24 | 2020-07-24 | 山东大学 | 基于众核平台上面向二代测序数据的序列比对方法及系统 |
CN112529720A (zh) * | 2020-12-28 | 2021-03-19 | 深轻(上海)科技有限公司 | 一种寿险精算模型计算结果的汇总方法 |
CN112734583A (zh) * | 2021-01-15 | 2021-04-30 | 深轻(上海)科技有限公司 | 一种寿险精算模型多线程并行计算方法 |
CN113992609A (zh) * | 2021-09-23 | 2022-01-28 | 北京连山科技股份有限公司 | 一种处理多链路业务数据乱序的方法及系统 |
CN114638689A (zh) * | 2022-03-21 | 2022-06-17 | 北京自如信息科技有限公司 | 一种信用信息生成方法、装置、系统和电子设备 |
CN117310538A (zh) * | 2023-11-27 | 2023-12-29 | 深圳市普裕时代新能源科技有限公司 | 一种电量剩余转化效率自检测的储能电池电量监控系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147755A (zh) * | 2011-04-14 | 2011-08-10 | 中国人民解放军国防科学技术大学 | 一种基于内存缓存技术的多核系统容错方法 |
CN102902512A (zh) * | 2012-08-31 | 2013-01-30 | 浪潮电子信息产业股份有限公司 | 一种基于多线程编程及消息队列的多线程并行处理方法 |
CN102968496A (zh) * | 2012-12-04 | 2013-03-13 | 天津神舟通用数据技术有限公司 | 基于任务驱动和双缓冲机制的并行排序方法 |
-
2015
- 2015-01-12 CN CN201510013613.3A patent/CN104572106A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147755A (zh) * | 2011-04-14 | 2011-08-10 | 中国人民解放军国防科学技术大学 | 一种基于内存缓存技术的多核系统容错方法 |
CN102902512A (zh) * | 2012-08-31 | 2013-01-30 | 浪潮电子信息产业股份有限公司 | 一种基于多线程编程及消息队列的多线程并行处理方法 |
CN102968496A (zh) * | 2012-12-04 | 2013-03-13 | 天津神舟通用数据技术有限公司 | 基于任务驱动和双缓冲机制的并行排序方法 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105045632A (zh) * | 2015-08-10 | 2015-11-11 | 京信通信技术(广州)有限公司 | 一种多核环境下实现免锁队列的方法和设备 |
CN105824780A (zh) * | 2016-04-01 | 2016-08-03 | 浪潮电子信息产业股份有限公司 | 一种基于单机多fpga的并行开发方法 |
CN107526943A (zh) * | 2016-06-22 | 2017-12-29 | 宁波数方信息技术有限公司 | 一种基于内外存耦合分布式并发计算的基因比对方法 |
CN107918145A (zh) * | 2016-10-10 | 2018-04-17 | 中国石油化工股份有限公司 | 地震炮能量的并行化处理方法及系统 |
CN107480071A (zh) * | 2017-08-25 | 2017-12-15 | 深圳大学 | 缓存数据迁移方法及装置 |
CN109981380B (zh) * | 2017-12-27 | 2022-07-05 | 恒为科技(上海)股份有限公司 | 一种数据包回放方法及装置 |
CN109981380A (zh) * | 2017-12-27 | 2019-07-05 | 恒为科技(上海)股份有限公司 | 一种数据包回放方法及装置 |
CN108717395A (zh) * | 2018-05-18 | 2018-10-30 | 记忆科技(深圳)有限公司 | 一种降低动态块映射信息占用内存的方法及装置 |
CN109189577A (zh) * | 2018-08-31 | 2019-01-11 | 武汉达梦数据库有限公司 | 一种数据同步时防止内存溢出的方法和装置 |
CN110674116A (zh) * | 2019-09-25 | 2020-01-10 | 四川长虹电器股份有限公司 | 一种基于swoole的校验插入数据库数据重复的系统及方法 |
CN110674116B (zh) * | 2019-09-25 | 2022-05-03 | 四川长虹电器股份有限公司 | 一种基于swoole的校验插入数据库数据重复的系统及方法 |
CN110767265A (zh) * | 2019-10-23 | 2020-02-07 | 中国科学院计算技术研究所 | 一种针对大数据基因组比对文件排序的并行加速方法 |
CN111443947A (zh) * | 2020-03-24 | 2020-07-24 | 山东大学 | 基于众核平台上面向二代测序数据的序列比对方法及系统 |
CN112529720A (zh) * | 2020-12-28 | 2021-03-19 | 深轻(上海)科技有限公司 | 一种寿险精算模型计算结果的汇总方法 |
CN112734583A (zh) * | 2021-01-15 | 2021-04-30 | 深轻(上海)科技有限公司 | 一种寿险精算模型多线程并行计算方法 |
CN113992609A (zh) * | 2021-09-23 | 2022-01-28 | 北京连山科技股份有限公司 | 一种处理多链路业务数据乱序的方法及系统 |
CN113992609B (zh) * | 2021-09-23 | 2022-06-14 | 北京连山科技股份有限公司 | 一种处理多链路业务数据乱序的方法及系统 |
CN114638689A (zh) * | 2022-03-21 | 2022-06-17 | 北京自如信息科技有限公司 | 一种信用信息生成方法、装置、系统和电子设备 |
CN117310538A (zh) * | 2023-11-27 | 2023-12-29 | 深圳市普裕时代新能源科技有限公司 | 一种电量剩余转化效率自检测的储能电池电量监控系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572106A (zh) | 一种基于小内存处理大规模数据的并行程序开发方法 | |
CN110704360B (zh) | 一种基于异构fpga数据流的图计算优化方法 | |
CN105468439B (zh) | 在cpu-gpu异构框架下遍历固定半径内邻居的自适应并行方法 | |
US20100125847A1 (en) | Job managing device, job managing method and job managing program | |
CN104781786B (zh) | 使用延迟重构程序顺序的选择逻辑 | |
CN103605576A (zh) | 一种基于多线程的MapReduce执行系统 | |
CN101446910A (zh) | 基于smp的aedf任务调度方法 | |
CN104133661A (zh) | 基于列存储的多核并行哈希分区优化方法 | |
CN105159610A (zh) | 大规模数据处理系统及方法 | |
US20110161965A1 (en) | Job allocation method and apparatus for a multi-core processor | |
CN102968496A (zh) | 基于任务驱动和双缓冲机制的并行排序方法 | |
CN104331331A (zh) | 任务数目和性能感知的可重构多核处理器的资源分配方法 | |
CN102937918A (zh) | 一种hdfs运行时数据块平衡方法 | |
CN104580503A (zh) | 一种高效动态负载均衡的处理大规模数据的系统及方法 | |
CN104778077A (zh) | 基于随机和连续磁盘访问的高速核外图处理方法及系统 | |
CN106681823A (zh) | 一种处理MapReduce数据倾斜的负载均衡方法 | |
CN110874271A (zh) | 一种海量建筑图斑特征快速计算方法及系统 | |
CN108170861B (zh) | 一种基于动态规划的分布式数据库系统协同优化方法 | |
Awatramani et al. | Increasing gpu throughput using kernel interleaved thread block scheduling | |
CN109144749A (zh) | 一种使用处理器实现多处理器间通信的方法 | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
CN104239520B (zh) | 一种基于历史信息的hdfs数据块放置策略 | |
CN201804331U (zh) | 一种基于协处理器的重复数据删除系统 | |
CN103324577A (zh) | 基于最小化io访问冲突和文件分条的大规模分条文件分配系统 | |
CN106909343B (zh) | 一种基于数据流的指令调度方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into 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: 20150429 |