CN108009008B - 数据处理方法和***、电子设备 - Google Patents
数据处理方法和***、电子设备 Download PDFInfo
- Publication number
- CN108009008B CN108009008B CN201610972718.6A CN201610972718A CN108009008B CN 108009008 B CN108009008 B CN 108009008B CN 201610972718 A CN201610972718 A CN 201610972718A CN 108009008 B CN108009008 B CN 108009008B
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- memory
- hard disk
- cache data
- 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.)
- Active
Links
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据处理方法和***、电子设备,其中所述方法包括:接收由至少一处理器进程向数据缓存***发起的缓存数据读取请求,所述数据缓存***包括多种缓存元件,且所述多种缓存元件的传输速率和/或存储空间不同、并根据各自的传输速率和/或存储空间被预先设置有不同的查找优先级;响应接收到的缓存数据读取请求,从发起所述缓存数据读取请求的进程对应的处理器的缓存元件开始按照所述查找优先级从高到低的顺序依次向所述多种缓存元件查找相应缓存数据;响应查找到缓存有所述相应缓存数据的缓存元件,从查找到的缓存元件处向相应处理器进程返回所述相应缓存数据。本发明能够大幅度减少计算节点获取训练数据的时间,缩短训练算法的时间。
Description
技术领域
本申请涉及深度学习领域,尤其涉及数据处理方法和***、电子设备。
背景技术
分析大规模数据的深度学习算法正被越来越广泛地应用在大数据分析中,例如图像识别、语音识别和自然语言处理等。这类大规模深度学习算法通常需要TB级或以上的训练数据和海量的神经网络模型参数。由于单台计算机的存储和计算能力都无法适应这种任务需求,所以分布式深度学习***被提出,例如Google的DistBelief分布式训练***、UCBerkeley AMP实验室的适用于深度学习的Spark分布式计算***。这类***一方面利用分布式机群的并行计算能力缩短了模型的训练时间,另一方面利用机群分布式存储海量的训练数据和模型参数。
典型的分布式深度学习***由成百上千台计算节点和几十台存储节点构成。计算节点和存储节点不共享硬件资源。训练数据被分布式存储在存储节点上,通过一个分布式文件***管理和访问。模型训练算法被分布式并行地运行在计算节点上。一个模型训练算法通常需要经过几十万次迭代。常用的训练算法,例如并行随机梯度下降算法(StochasticGradient Descent,简称SGD),在每个迭代周期通常需要以下4个步骤:
1、计算节点获取最新的模型参数;
2、计算节点从分布式文件***获取一组训练数据;
3、计算节点计算新的参数梯度(用于更新参数矩阵的差值);
4、计算节点用新的参数梯度更新模型参数。
因此,训练算法的运行时间包括计算节点获取训练数据的时间,获取和更新模型参数的时间,计算参数梯度的时间。显然,低速的数据传输会增加节点获取训练数据的时间,从而增加训练算法的运行时间。然而,已有的深度学习***中,计算节点获取训练数据通常需要消耗较长的时间,因为计算节点获取存储节点上的数据需要经过网络传输。此外,很多深度学习***将大量计算分配到图形处理器(GPU)上运算,而GPU需要从内存里读取数据,这就导致获取训练数据的速率也受到从内存到GPU显存的数据传输速度的限制。因此,如何减少计算节点获取训练数据的时间,以缩短训练算法的运行时间,是大规模分布式深度学习***亟需解决的问题。
发明内容
本发明实施例提供一种数据处理方案。
第一方面,本申请提供一种数据处理方法,该方法包括:
接收由至少一处理器进程向数据缓存***发起的缓存数据读取请求,所述数据缓存***包括多种缓存元件,且所述多种缓存元件的传输速率和/或存储空间不同、并根据各自的传输速率和/或存储空间被预先设置有不同的查找优先级;
响应接收到的缓存数据读取请求,从发起所述缓存数据读取请求的进程对应的处理器的缓存元件开始按照所述查找优先级从高到低的顺序依次向所述多种缓存元件查找相应缓存数据;
响应查找到缓存有所述相应缓存数据的缓存元件,从查找到的缓存元件处向相应处理器进程返回所述相应缓存数据。
可选地,根据本申请第一方面的方法还包括:响应未查找到缓存有所述相应缓存数据的缓存元件,向与所述数据缓存***通信连接的分布式文件***查找所述相应缓存数据、并将所述相应缓存数据向相应处理器进程返回。
可选地,所述多种缓存元件包括以下至少二种:GPU显存、内存和硬盘;所述GPU显存的查找优先级高于所述内存的查找优先级,所述内存的查找优先级高于所述硬盘的查找优先级。
可选地,所述硬盘包括固态硬盘和机械硬盘,所述固态硬盘的查找优先级高于所述机械硬盘的查找优先级。
可选地,所述至少一处理器进程包括:至少一GPU进程,和/或,至少一CPU进程。
可选地,响应所述缓存数据读取请求,从发起所述缓存数据读取请求的进程对应的处理器的缓存元件开始按照所述查找优先级从高到低的顺序依次向所述多种缓存元件查找相应缓存数据,包括:响应接收到的由GPU进程发起的缓存数据读取请求,按照所述查找优先级从高到低的顺序依次向GPU显存、内存和硬盘查找相应缓存数据。
可选地,响应所述缓存数据读取请求,从发起所述缓存数据读取请求的进程对应的处理器的缓存元件开始按照所述查找优先级从高到低的顺序依次向所述多种缓存元件查找相应缓存数据,包括:响应接收到的由CPU进程发起的缓存数据读取请求,按照所述查找优先级从高到低的顺序依次向内存和硬盘查找相应缓存数据。
可选地,根据本申请第一方面的方法还包括:如果查找到缓存有所述相应缓存数据的缓存元件为硬盘,则将所述相应缓存数据缓存到GPU显存和/或内存中。
可选地,根据本申请第一方面的方法还包括:如果未查找到缓存有所述相应缓存数据的缓存元件,则将所述相应缓存数据新增缓存到所述内存。
可选地,根据本申请第一方面的方法还包括:响应新增缓存到所述内存的所述相应缓存数据的数据构成预定大小的文件块,创建新的线程将所述文件块写入所述硬盘的缓存地址空间。
可选地,所述硬盘包括固态硬盘;所述响应新增缓存到所述内存的所述相应缓存数据的数据构成预定大小的文件块,创建新的线程将所述文件块写入所述硬盘,包括:响应新增缓存到所述内存的所述相应缓存数据的数据构成预定大小的文件块,创建新的第一线程将所述文件块写入所述固态硬盘的缓存空间。
可选地,所述硬盘包括固态硬盘和机械硬盘;所述响应新增缓存到所述内存的所述相应缓存数据的数据构成预定大小的文件块,创建新的线程将所述文件块写入所述硬盘的缓存空间,包括:响应新增缓存到所述内存的所述相应缓存数据的数据构成预定大小的文件块,创建新的第一线程将所述文件块写入所述固态硬盘的缓存空间,并创建第二线程将写入到所述固态硬盘的所述文件块写入所述机械硬盘的缓存空间。
可选地,根据本申请第一方面的方法还包括:在任一缓存元件的缓存空间被写满时,根据预定缓存空间释放策略删除或替换所述缓存元件的缓存空间原有的缓存数据。
第二方面,本申请提供一种数据处理***,该***包括:
接收模块,用于接收由至少一处理器进程向数据缓存***发起的缓存数据读取请求,所述数据缓存***包括多种缓存元件,且所述多种缓存元件的传输速率和/或存储空间不同、并根据各自的传输速率和/或存储空间被预先设置有不同的查找优先级;
第一查找模块,用于响应接收到的缓存数据读取请求,从发起所述缓存数据读取请求的进程对应的处理器的缓存元件开始按照所述查找优先级从高到低的顺序依次向所述多种缓存元件查找相应缓存数据;
第一返回模块,用于响应查找到缓存有所述相应缓存数据的缓存元件,从查找到的缓存元件处向相应处理器进程返回所述相应缓存数据。
可选地,根据本申请第二方面的***还包括:第二查找和返回模块,用于响应未查找到缓存有所述相应缓存数据的缓存元件,向与所述数据缓存***通信连接的分布式文件***查找所述相应缓存数据、并将所述相应缓存数据向相应处理器进程返回。
可选地,所述多种缓存元件包括以下至少二种:GPU显存、内存和硬盘;所述GPU显存的查找优先级高于所述内存的查找优先级,所述内存的查找优先级高于所述硬盘的查找优先级。
可选地,所述硬盘包括固态硬盘和机械硬盘,所述固态硬盘的查找优先级高于所述机械硬盘的查找优先级。
可选地,所述至少一处理器进程包括:至少一GPU进程,和/或,至少一CPU进程。
可选地,第一查找模块包括:第一查找子模块,用于响应接收到的由GPU进程发起的缓存数据读取请求,按照所述查找优先级从高到低的顺序依次向GPU显存、内存和硬盘查找相应缓存数据。
可选地,第一查找模块包括:第二查找子模块,用于响应接收到的由CPU进程发起的缓存数据读取请求,按照所述查找优先级从高到低的顺序依次向内存和硬盘查找相应缓存数据。
可选地,根据本申请第二方面的***还包括:第一缓存模块,用于如果查找到缓存有所述相应缓存数据的缓存元件为硬盘,则将所述相应缓存数据缓存到GPU显存和/或内存中。
可选地,根据本申请第二方面的***还包括:第二缓存模块,如果未查找到缓存有所述相应缓存数据的缓存元件,则将所述相应缓存数据新增缓存到所述内存。
可选地,根据本申请第二方面的***还包括:写入模块,用于响应新增缓存到所述内存的所述相应缓存数据的数据构成预定大小的文件块,创建新的线程将所述文件块写入所述硬盘的缓存地址空间。
可选地,所述硬盘包括固态硬盘;所述写入模块包括第一写入子模块,用于响应新增缓存到所述内存的所述相应缓存数据的数据构成预定大小的文件块,创建新的第一线程将所述文件块写入所述固态硬盘的缓存空间。
可选地,所述硬盘包括固态硬盘和机械硬盘;所述写入模块包括:第二写入子模块,用于响应新增缓存到所述内存的所述相应缓存数据的数据构成预定大小的文件块,创建新的第一线程将所述文件块写入所述固态硬盘的缓存空间,并创建第二线程将写入到所述固态硬盘的所述文件块写入所述机械硬盘的缓存空间。
可选地,根据本申请第二方面的***还包括:释放模块,用于在任一缓存元件的缓存空间被写满时,根据预定缓存空间释放策略删除或替换所述缓存元件的缓存空间原有的缓存数据。
第三方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有:接收由至少一处理器进程向数据缓存***发起的缓存数据读取请求的指令,所述数据缓存***包括多种缓存元件,且所述多种缓存元件的传输速率和/或存储空间不同、并根据各自的传输速率和/或存储空间被预先设置有不同的查找优先级;响应接收到的缓存数据读取请求,从发起所述缓存数据读取请求的进程对应的处理器的缓存元件开始按照所述查找优先级从高到低的顺序依次向所述多种缓存元件查找相应缓存数据的指令;响应查找到缓存有所述相应缓存数据的缓存元件,从查找到的缓存元件处向相应处理器进程返回所述相应缓存数据的指令。
第四方面,本发明还提供一种电子设备,包括:一个或多个处理器、存储器、多种缓存元件、通信部件和通信总线,所述处理器、所述存储器、所述多种缓存单元和所述通信部件通过所述通信总线完成相互间的通信,所述多种缓存元件的传输速率和/或存储空间不同、并根据各自的传输速率和/或存储空间被预先设置有不同的查找优先级;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行本发明数据处理方法对应的操作。
本发明的实施能够大幅度地减少计算节点获取训练数据的时间,进而缩短训练算法的运行时间。
附图说明
本发明将在下面参考附图并结合优选实施例进行更完全地说明。
图1为根据本发明方法的一实施例的流程图。
图2为根据本发明方法的数据缓存***的工作模式示意图。
图3为根据本发明方法的一实施例的响应GPU进程请求的流程图。
图4为根据本发明方法的一实施例的响应CPU进程请求的流程图。
图5为根据本发明方法的一实施例的响应文件缓存请求的流程图。
图6为根据本发明***的一实施例的结构示意图。
图7为根据本发明实施例提供的电子设备的结构示意图。
为清晰起见,这些附图均为示意性及简化的图,它们只给出了对于理解本发明所必要的细节,而省略其他细节。
具体实施方式
通过下面给出的详细描述,本发明的适用范围将显而易见。然而,应当理解,在详细描述和具体例子表明本发明优选实施例的同时,它们仅为说明目的给出。
图1示出了根据本发明一实施例的数据处理方法的流程图。现结合图2对该实施例方法的各个步骤进行详细说明。
在步骤S110中,接收由至少一处理器进程向数据缓存***发起的缓存数据读取请求,所述数据缓存***包括多种缓存元件,且所述多种缓存元件的传输速率和/或存储空间不同、并根据各自的传输速率和/或存储空间被预先设置有不同的查找优先级。数据缓存***MoG包括计算节点上的多种缓存元件,例如包括GPU显存、内存RAM、固态硬盘SSD和机械硬盘HDD中的至少两个。这些缓存元件拥有不同的数据传输效率,例如,在商用计算机上,RAM通常可支持大约1600MB/s的传输速率,SSD通常可支持大约100MB/s~600MB/s的传输速率,HDD通常可支持大约100MB/s~200MB/s的传输速率。同时,这几种存储资源拥有大小各异的存储空间,例如,GPU显存通常为12GB,RAM通常为64GB~256GB,SSD通常为128GB~512GB,HDD通常为1TB~4TB。为有效地提升数据传输效率和充分利用存储资源,对这些缓存元件根据各自的传输速率和/或存储空间预先设置不同的查找优先级。例如,在包含GPU显存、内存RAM、固态硬盘SSD和机械硬盘HDD的情形下,GPU显存的查找优先级高于内存的查找优先级,内存的查找优先级高于固态硬盘的查找优先级,固态硬盘的查找优先级高于机械硬盘的查找优先级。
在步骤S120中,响应接收到的缓存数据读取请求,从发起所述缓存数据读取请求的进程对应的处理器的缓存元件开始按照所述查找优先级从高到低的顺序依次向所述多种缓存元件查找相应缓存数据。例如,响应接收到的由GPU进程发起的文件读取请求,依次从GPU显存、内存、固态硬盘、机械硬盘查找所要读取的文件;或者,响应由CPU进程发起的文件读取请求,依次从内存、固态硬盘、硬盘查找所要读取的文件。
在步骤S130中,响应查找到缓存有所述相应缓存数据的缓存元件,从查找到的缓存元件处向相应处理器进程返回所述相应缓存数据。例如,对于GPU进程,当在内存RAM中查找到相应缓存数据时,将该缓存数据从内存RAM返回给GPU进程。
按照本发明,数据缓存***MoG的层级管理给予不同的存储资源不同的查找优先级,由高到低依次为GPU显存、RAM、SSD、HDD。这主要是因为这四种设备所支持的数据传输速率依次递减,设备的数据传输速率越高,客户端获取数据的速度越快,更有利于提升学习***的速度。当MoG***收到GPU进程的文件读取请求时,它按照查找优先级依次逐层查找这四种存储资源,一旦找到,即返回文件给发起请求的进程,如图3所示。这种存储资源层级管理方法充分利用了各种缓存资源在数据传输效率和存储空间两方面的性能,最优化缓存性能(即最大化缓存命中率从而最小化缓存未命中导致的流向分布式文件***的请求负载),并且最优化缓存***的数据传输性能(即最大化数据读取的吞吐量),从而降低计算节点获取数据的时间,进而加快深度学习算法的运行速度。
根据本发明所述方法的一种实施方式,所述进程与数据缓存***MoG按客户端/服务器工作模式工作,数据缓存***作为服务器,可以同时响应多个进程(GPU进程或CPU进程)的缓存查找请求,使得多个进程可以共享缓存内容,从而提高了缓存效率。客户端/服务器的工作模式使得MoG***能够同时响应多个进程的文件请求,使得多个进程可以共享缓存内容,从而提高了缓存效率。而现有的LevelDB和LMDB不能直接支持客户端/服务器的工作模式。它们的工作原理是让每个进程拥有分离的缓存地址空间,进程之间没有共享缓存内容,所以导致缓存效率低。MoG逻辑上位于客户端和分布式文件***之间,如图2所示。MoG为客户端提供了和文件***类似的文件读取接口。客户端通过该接口读取文件,见图2中的1.get。如果该文件已经被缓存在MoG里,即缓存命中,则MoG直接返回该文件,见图2中的2.response。否则,缓存未命中,即该文件还没有被缓存在MoG内,则MoG从分布式文件***读取文件(见图2中的3.get),并缓存该文件(见图2中的4.cache),同时向客户端返回该文件(见图2中的5.response)。这种设计结构具有对客户端透明的特性,也就是,客户端除了使用MoG所提供的文件读取接口以外,其他操作和不使用MoG***时一样。
根据本发明所述方法的一种实施方式,所述方法还包括响应未查找到缓存有所述相应缓存数据的缓存元件,向与所述数据缓存***通信连接的分布式文件***查找所述相应缓存数据、并将所述相应缓存数据向相应处理器进程返回。
在特定实施例中,至少一处理器进程包括:至少一GPU进程,和/或,至少一CPU进程。
图3示出了根据本发明方法的一实施例的响应GPU进程请求的流程图。响应由GPU进程发起的文件读取请求,在步骤S310,确定所要读取的文件是否在GPU显存里,如果是,则处理进行到步骤S312,返回所要读取的文件;如果否,则处理进行到步骤S314。在步骤S314,确定所要读取的文件是否在RAM里,如果是,则处理进行到步骤S312;如果否,则处理进行到步骤S316。在步骤S316,确定所要读取的文件是否在固态硬盘SSD里,如果是,则处理进行到步骤S318;如果否,则处理进行到步骤S320。在步骤S320,确定所要读取的文件是否在硬盘HDD里,如果是,则处理进行到步骤S318;如果否,则处理进行到步骤S322。在步骤S318,从硬盘SSD或HDD读取所要读取的文件,将其缓存到RAM和GUP显存里,然后返回所要读取的文件。将文件缓存在GPU显存和RAM里利用了存储资源各自的优势来提高缓存效率。对比GPU显存和RAM,GPU显存访问速度快,但能提供的缓存空间小;而RAM能提供的缓存空间大,但访问速度稍慢。如果只缓存到GPU显存里,因为缓存空间小,很快会被写满。一旦写满,当需要缓存新的文件时,旧文件会被删除来给新文件腾出空间,这样,如果被删除的这份文件在将来被再次访问,那就只能去SSD和HDD里面查找。另外一方面,如果只缓存到RAM里,访问速度没有GPU显存快。所以,我们采用缓存两次的策略。在步骤S322,从分布式文件***读取文件。之后,处理进行到步骤S324,将文件缓存在RAM、SDD和/或HDD里,然后返回文件。本实施例提供的技术方案不仅利用了内存和硬盘,还利用了GPU显存缓存数据,能够对深度学习中的大量GPU算法实现缓存读取加速。本实施例使用动态缓存机制,能够支持大规模深度学习***要求的海量数据规模。
本发明利用多种存储资源形成异构资源数据缓存***,主要是因为GPU显存和RAM资源很小,这两种设备构成的缓存空间远远不能满足大规模深度学习***所要求的数据规模。因此,我们利用更大的存储资源,SSD和HDD,来共同构建缓存***。这一缓存***可以有效地提升数据传输效率。因为,原来文件需要从远端硬盘(分布式文件***)中获取,将其缓存到本地可以省去网络传输的时间;将其缓存到内存可以得到比硬盘更快的传输速率;对于GPU进程需要的文件,将其缓存到GPU显存里,还可以省去从内存到GPU显存的传输时间。本发明的这种设计方案,一方面能利用GPU显存和RAM传输速率快的优势,另一方面能利用SSD和HDD存储空间大的优势,从而提高缓存***的效率(访问速度),并且满足数据规模大的需求。
图4示出了根据本发明方法的一实施例的响应CPU进程请求的流程图。响应由CPU进程发起的文件读取请求,在步骤S410,确定所要读取的文件是否在RAM里,如果是,则处理进行到步骤S412,返回所要读取的文件;如果否,则处理进行到步骤S414。在步骤S414,确定所要读取的文件是否在固态硬盘SSD里,如果是,则处理进行到步骤S416;如果否,则处理进行到步骤S418。在步骤S418,确定所要读取的文件是否在硬盘HDD里,如果是,则处理进行到步骤S416;如果否,则处理进行到步骤S420。在步骤S416,从硬盘读取所要读取的文件,将其缓存到RAM和GUP显存里,然后返回所要读取的文件。在步骤S420,从分布式文件***读取文件。之后,处理进行到步骤S422,将文件缓存在RAM、SDD和/或HDD里,然后返回文件。本实施例同样使用动态缓存机制,能够支持大规模深度学习***要求的海量数据规模。
图5示出了根据本发明方法的一实施例的响应文件缓存请求的流程图,即图3中所示的步骤S324和图4中所示的步骤S422的详细流程图。当缓存未命中即在所述数据缓存***中未查找到所要读取的文件时,在步骤S510,将所要读取的文件从分布式文件***缓存到内存的缓冲器;在步骤S520,当所述缓冲器中的数据累计构成一个块文件时,创建新的子线程将所述块文件写入固态硬盘SSD的缓存地址空间。
在其它实施例中,在固态硬盘SSD和硬盘HDD同时存在时,还包括步骤S530,创建单独的子线程将固态硬盘SSD的缓存数据写入硬盘HDD的缓存地址空间。
因为MoG***的缓存写入涉及多种存储资源,为了使MoG***具有高速的写入速度,本发明专门针对多数深度学习***中训练数据由小文件(几KB到几MB不等)组成的特点,提出了图5所示的多线程异步的缓存写入方法。多线程是指由不同的线程实现不同类型缓存空间的写入,异步是指多个线程的写入操作相互不同步。
缓存小文件遇到的一个问题是写入SSD和HDD的速度慢,因为,这两种设备的随机访问(写小文件)速度通常远没有顺序访问(写大文件)速度快。为了解决这一问题,我们的方法是利用内存缓存地址空间的一部分作为一个内存缓冲器(buffer)。要缓存的文件先被存入内存缓冲器。一旦缓冲器中的数据累计构成了一个块文件(块文件的大小根据硬件***调整),该块文件则由一个新创建的子线程写入SSD缓存地址空间。也就是,一个主线程负责响应文件缓存请求,并在需要的时候创建SSD写入线程,如图5所示。值得注意的是,我们并不把缓冲器里的块文件直接写入HDD缓存地址空间。这是因为,如果采用这种方式,HDD的写入速度将决定内存缓冲器被清空的时间。因为这个速度比SSD的写入速度慢,这将使得内存缓冲器被清空的时间变长,进而减慢缓存写入的速度。我们使用的方法是由一个单独的线程专门负责将SSD的缓存数据写入HDD缓存地址空间,如图5所示。用这种方法,缓存***的写入速度主要由内存的写入速度和SSD的写入速度决定,而不受到HDD的写入速度影响。
如上所述,MoG***一旦查找不到被请求的文件,它会从分布式文件***读取文件,并将该文件***缓存***(RAM、SSD和HDD的缓存空间里)。如果缓存空间已满,则根据缓存替换策略(例如Least Frequently Used,Least Frequently Used等)删除一个文件为新的文件留出空间。MoG***支持任何缓存替换策略,具体根据应用需求来选择。这种动态缓存(即支持***和删除的缓存)不同于LevelDB和LMDB的静态缓存机制。静态缓存***要在算法运行之前把所有需要运算的数据全部加载到缓存里,而在算法运行过程中,不***文件到缓存***里或从***里删除文件。这两种机制无法在大规模分布式深度学习***中使用,原因是:1)这两种机制只能被用在单机深度学习(即深度学习算法只运行在一台机器上);2)这两种机制只能支持内存容量级的训练数据规模。值得注意的是,我们将文件缓存在多个缓存空间(RAM,SSD和HDD)。原因是要利用多种存储设备各自的优势来提高缓存效率,这与之前描述的将文件缓存在两个缓存空间里(GPU显存和RAM)的原因是一样的。
图6为根据本发明一实施例的数据处理***的结构示意图,该***包括接收模块10、第一查找模块20、第一返回模块30、第一缓存模块40、第二查找和返回模块50、第二缓存模块60、写入模块70和释放模块80。
接收模块10,用于接收由至少一处理器进程如至少一GPU进程和/或至少一CPU进程向数据缓存***发起的缓存数据读取请求,所述数据缓存***包括多种缓存元件,且所述多种缓存元件的传输速率和/或存储空间不同、并根据各自的传输速率和/或存储空间被预先设置有不同的查找优先级;所述多种缓存元件包括以下至少二种:GPU显存、内存和硬盘,所述GPU显存的查找优先级高于所述内存的查找优先级,所述内存的查找优先级高于所述硬盘的查找优先级;所述硬盘包括固态硬盘和机械硬盘,所述固态硬盘的查找优先级高于所述机械硬盘的查找优先级。
第一查找模块20,用于响应接收到的缓存数据读取请求,从发起所述缓存数据读取请求的进程对应的处理器的缓存元件开始按照所述查找优先级从高到低的顺序依次向所述多种缓存元件查找相应缓存数据;第一查找模块包括:第一查找子模块22,用于响应接收到的由GPU进程发起的缓存数据读取请求,按照所述查找优先级从高到低的顺序依次向GPU显存、内存和硬盘查找相应缓存数据;第二查找子模块24,用于响应接收到的由CPU进程发起的缓存数据读取请求,按照所述查找优先级从高到低的顺序依次向内存和硬盘查找相应缓存数据。
第一返回模块30,用于响应查找到缓存有所述相应缓存数据的缓存元件,从查找到的缓存元件处向相应处理器进程返回所述相应缓存数据。
第一缓存模块40,用于如果查找到缓存有所述相应缓存数据的缓存元件为硬盘,则将所述相应缓存数据缓存到GPU显存和/或内存中。
第二查找和返回模块50,用于响应未查找到缓存有所述相应缓存数据的缓存元件,向与所述数据缓存***通信连接的分布式文件***查找所述相应缓存数据、并将所述相应缓存数据向相应处理器进程返回。
第二缓存模块60,如果未查找到缓存有所述相应缓存数据的缓存元件,则将所述相应缓存数据新增缓存到所述内存。
写入模块70,用于响应新增缓存到所述内存的所述相应缓存数据的数据构成预定大小的文件块,创建新的线程将所述文件块写入所述硬盘的缓存地址空间。所述写入模块包括:第一写入子模块72,用于在所述硬盘为固态硬盘时响应新增缓存到所述内存的所述相应缓存数据的数据构成预定大小的文件块,创建新的第一线程将所述文件块写入所述固态硬盘的缓存空间;第二写入子模块74,用于在所述硬盘包括固态硬盘和机械硬盘时响应新增缓存到所述内存的所述相应缓存数据的数据构成预定大小的文件块,创建新的第一线程将所述文件块写入所述固态硬盘的缓存空间,并创建第二线程将写入到所述固态硬盘的所述文件块写入所述机械硬盘的缓存空间。
释放模块80,用于在任一缓存元件的缓存空间被写满时,根据预定缓存空间释放策略删除或替换所述缓存元件的缓存空间原有的缓存数据。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,上面描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
图7示出了根据本发明实施例提供的电子设备的结构示意图,该***包括:处理器702、通信部件704、存储器706、GPU显存708、内存710以及通信总线712。存储器706可包括机械硬盘和/或固态硬盘。通信部件可包括但不限于I/O接口、网卡等。
处理器702、通信部件704、存储器706、GPU显存708以及内存710通过通信总线712完成相互间的通信。
通信部件704,用于与其它设备比如客户端或数据采集设备等的网元通信。
处理器702,用于执行程序720,具体可以执行上述方法实施例中的相关步骤。
具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。
上述处理器702可以一个或多个,处理器的设备形态可以是中央处理器CPU,或者是图像处理器(GPU),或者是特定集成电路ASIC(Application Specific IntegratedCircuit),或者是被配置成实施本发明实施例的一个或多个集成电路等。
存储器706,用于存放程序720。存储器706可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序720包括至少一条可执行指令,具体可以用于使得处理器702执行以下操作:接收由至少一处理器进程向数据缓存***发起的缓存数据读取请求,所述数据缓存***包括多种缓存元件,且所述多种缓存元件的传输速率和/或存储空间不同、并根据各自的传输速率和/或存储空间被预先设置有不同的查找优先级;响应接收到的缓存数据读取请求,从发起所述缓存数据读取请求的进程对应的处理器的缓存元件开始按照所述查找优先级从高到低的顺序依次向所述多种缓存元件查找相应缓存数据;响应查找到缓存有所述相应缓存数据的缓存元件,从查找到的缓存元件处向相应处理器进程返回所述相应缓存数据。。
程序720中各步骤的具体实现可以参见上述实施例中的相应步骤和单元中对应的描述,在此不赘述。
除非明确指出,在此所用的单数形式“一”、“该”均包括复数含义(即具有“至少一”的意思)。应当进一步理解,说明书中使用的术语“具有”、“包括”和/或“包含”表明存在所述的特征、步骤、操作、元件和/或部件,但不排除存在或增加一个或多个其他特征、步骤、操作、元件、部件和/或其组合。如在此所用的术语“和/或”包括一个或多个列举的相关项目的任何及所有组合。除非明确指出,在此公开的任何方法的步骤不必精确按照所公开的顺序执行。
一些优选实施例已经在前面进行了说明,但是应当强调的是,本发明不局限于这些实施例,而是可以本发明主题范围内的其它方式实现。
需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。
上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现为通过网络下载的、原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的处理方法。此外,当通用计算机访问用于实现在此示出的处理的代码时,代码的执行将通用计算机转换为用于执行在此示出的处理的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。
Claims (27)
1.一种数据处理方法,其特征在于,包括:
接收由至少一处理器进程向数据缓存***发起的缓存数据读取请求,所述数据缓存***包括多种缓存元件,所述多种缓存元件包括GPU显存、内存和硬盘,且所述多种缓存元件的传输速率和/或存储空间不同、并根据各自的传输速率和/或存储空间被预先设置有不同的查找优先级;
响应接收到的缓存数据读取请求,从发起所述缓存数据读取请求的进程对应的处理器的缓存元件开始按照所述查找优先级从高到低的顺序依次向所述多种缓存元件查找相应缓存数据;
响应查找到缓存有所述相应缓存数据的缓存元件,从查找到的缓存元件处向相应处理器进程返回所述相应缓存数据。
2.根据权利要求1所述的方法,其特征在于,还包括:
响应未查找到缓存有所述相应缓存数据的缓存元件,向与所述数据缓存***通信连接的分布式文件***查找所述相应缓存数据、并将所述相应缓存数据向相应处理器进程返回。
3.根据权利要求1所述的方法,其特征在于,
所述GPU显存的查找优先级高于所述内存的查找优先级,所述内存的查找优先级高于所述硬盘的查找优先级。
4.根据权利要求3所述的方法,其特征在于,所述硬盘包括固态硬盘和机械硬盘,所述固态硬盘的查找优先级高于所述机械硬盘的查找优先级。
5.根据权利要求1-4任一所述的方法,其特征在于,所述至少一处理器进程包括:至少一GPU进程,和/或,至少一CPU进程。
6.根据权利要求5所述的方法,其特征在于,响应所述缓存数据读取请求,从发起所述缓存数据读取请求的进程对应的处理器的缓存元件开始按照所述查找优先级从高到低的顺序依次向所述多种缓存元件查找相应缓存数据,包括:
响应接收到的由GPU进程发起的缓存数据读取请求,按照所述查找优先级从高到低的顺序依次向GPU显存、内存和硬盘查找相应缓存数据。
7.根据权利要求5所述的方法,其特征在于,响应所述缓存数据读取请求,从发起所述缓存数据读取请求的进程对应的处理器的缓存元件开始按照所述查找优先级从高到低的顺序依次向所述多种缓存元件查找相应缓存数据,包括:
响应接收到的由CPU进程发起的缓存数据读取请求,按照所述查找优先级从高到低的顺序依次向内存和硬盘查找相应缓存数据。
8.根据权利要求3所述的方法,其特征在于,还包括:
如果查找到缓存有所述相应缓存数据的缓存元件为硬盘,则将所述相应缓存数据缓存到GPU显存和/或内存中。
9.根据权利要求3所述的方法,其特征在于,还包括:
如果未查找到缓存有所述相应缓存数据的缓存元件,则将所述相应缓存数据新增缓存到所述内存。
10.根据权利要求9所述的方法,其特征在于,还包括:
响应新增缓存到所述内存的所述相应缓存数据的数据构成预定大小的文件块,创建新的线程将所述文件块写入所述硬盘的缓存地址空间。
11.根据权利要求10所述的方法,其特征在于,所述硬盘包括固态硬盘;所述响应新增缓存到所述内存的所述相应缓存数据的数据构成预定大小的文件块,创建新的线程将所述文件块写入所述硬盘,包括:响应新增缓存到所述内存的所述相应缓存数据的数据构成预定大小的文件块,创建新的第一线程将所述文件块写入所述固态硬盘的缓存空间。
12.根据权利要求10所述的方法,其特征在于,所述硬盘包括固态硬盘和机械硬盘;所述响应新增缓存到所述内存的所述相应缓存数据的数据构成预定大小的文件块,创建新的线程将所述文件块写入所述硬盘的缓存空间,包括:
响应新增缓存到所述内存的所述相应缓存数据的数据构成预定大小的文件块,创建新的第一线程将所述文件块写入所述固态硬盘的缓存空间,并创建第二线程将写入到所述固态硬盘的所述文件块写入所述机械硬盘的缓存空间。
13.根据权利要求1所述的方法,其特征在于,还包括:
在任一缓存元件的缓存空间被写满时,根据预定缓存空间释放策略删除或替换所述缓存元件的缓存空间原有的缓存数据。
14.一种数据处理***,其特征在于,包括:
接收模块,用于接收由至少一处理器进程向数据缓存***发起的缓存数据读取请求,所述数据缓存***包括多种缓存元件,所述多种缓存元件包括GPU显存、内存和硬盘,且所述多种缓存元件的传输速率和/或存储空间不同、并根据各自的传输速率和/或存储空间被预先设置有不同的查找优先级;
第一查找模块,用于响应接收到的缓存数据读取请求,从发起所述缓存数据读取请求的进程对应的处理器的缓存元件开始按照所述查找优先级从高到低的顺序依次向所述多种缓存元件查找相应缓存数据;
第一返回模块,用于响应查找到缓存有所述相应缓存数据的缓存元件,从查找到的缓存元件处向相应处理器进程返回所述相应缓存数据。
15.根据权利要求14所述的***,其特征在于,还包括:
第二查找和返回模块,用于响应未查找到缓存有所述相应缓存数据的缓存元件,向与所述数据缓存***通信连接的分布式文件***查找所述相应缓存数据、并将所述相应缓存数据向相应处理器进程返回。
16.根据权利要求14所述的***,其特征在于,
所述GPU显存的查找优先级高于所述内存的查找优先级,所述内存的查找优先级高于所述硬盘的查找优先级。
17.根据权利要求16所述的***,其特征在于,所述硬盘包括固态硬盘和机械硬盘,所述固态硬盘的查找优先级高于所述机械硬盘的查找优先级。
18.根据权利要求14-17任一所述的***,其特征在于,所述至少一处理器进程包括:至少一GPU进程,和/或,至少一CPU进程。
19.根据权利要求18所述的***,其特征在于,第一查找模块包括:
第一查找子模块,用于响应接收到的由GPU进程发起的缓存数据读取请求,按照所述查找优先级从高到低的顺序依次向GPU显存、内存和硬盘查找相应缓存数据。
20.根据权利要求18所述的***,其特征在于,第一查找模块包括:
第二查找子模块,用于响应接收到的由CPU进程发起的缓存数据读取请求,按照所述查找优先级从高到低的顺序依次向内存和硬盘查找相应缓存数据。
21.根据权利要求16所述的***,其特征在于,还包括:
第一缓存模块,用于如果查找到缓存有所述相应缓存数据的缓存元件为硬盘,则将所述相应缓存数据缓存到GPU显存和/或内存中。
22.根据权利要求16所述的***,其特征在于,还包括:
第二缓存模块,如果未查找到缓存有所述相应缓存数据的缓存元件,则将所述相应缓存数据新增缓存到所述内存。
23.根据权利要求22所述的***,其特征在于,还包括:
写入模块,用于响应新增缓存到所述内存的所述相应缓存数据的数据构成预定大小的文件块,创建新的线程将所述文件块写入所述硬盘的缓存地址空间。
24.根据权利要求23所述的***,其特征在于,所述硬盘包括固态硬盘;所述写入模块包括第一写入子模块,用于响应新增缓存到所述内存的所述相应缓存数据的数据构成预定大小的文件块,创建新的第一线程将所述文件块写入所述固态硬盘的缓存空间。
25.根据权利要求23所述的***,其特征在于,所述硬盘包括固态硬盘和机械硬盘;所述写入模块包括:
第二写入子模块,用于响应新增缓存到所述内存的所述相应缓存数据的数据构成预定大小的文件块,创建新的第一线程将所述文件块写入所述固态硬盘的缓存空间,并创建第二线程将写入到所述固态硬盘的所述文件块写入所述机械硬盘的缓存空间。
26.根据权利要求14所述的***,其特征在于,还包括:
释放模块,用于在任一缓存元件的缓存空间被写满时,根据预定缓存空间释放策略删除或替换所述缓存元件的缓存空间原有的缓存数据。
27.一种电子设备,其特征在于,包括:一个或多个处理器、存储器、多种缓存元件、通信部件和通信总线,所述处理器、所述存储器、所述多种缓存元件和所述通信部件通过所述通信总线完成相互间的通信,所述多种缓存元件的传输速率和/或存储空间不同、并根据各自的传输速率和/或存储空间被预先设置有不同的查找优先级;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1至13任一项所述的数据处理方法对应的操作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610972718.6A CN108009008B (zh) | 2016-10-28 | 2016-10-28 | 数据处理方法和***、电子设备 |
PCT/CN2017/108449 WO2018077292A1 (zh) | 2016-10-28 | 2017-10-30 | 数据处理方法和***、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610972718.6A CN108009008B (zh) | 2016-10-28 | 2016-10-28 | 数据处理方法和***、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108009008A CN108009008A (zh) | 2018-05-08 |
CN108009008B true CN108009008B (zh) | 2022-08-09 |
Family
ID=62023105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610972718.6A Active CN108009008B (zh) | 2016-10-28 | 2016-10-28 | 数据处理方法和***、电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108009008B (zh) |
WO (1) | WO2018077292A1 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795395B (zh) * | 2018-07-31 | 2023-04-18 | 阿里巴巴集团控股有限公司 | 文件部署***和文件部署方法 |
CN109597689B (zh) * | 2018-12-10 | 2022-06-10 | 浪潮(北京)电子信息产业有限公司 | 一种分布式文件***内存优化方法、装置、设备及介质 |
CN111831691B (zh) * | 2019-05-29 | 2024-05-03 | 北京嘀嘀无限科技发展有限公司 | 一种数据读写方法及装置、电子设备、存储介质 |
CN110489058B (zh) * | 2019-07-02 | 2023-03-31 | 深圳市金泰克半导体有限公司 | 固态硬盘速度调整方法、装置、固态硬盘和存储介质 |
CN110322979B (zh) * | 2019-07-25 | 2024-01-30 | 美核电气(济南)股份有限公司 | 基于fpga的核电站数字控制计算机***核心处理单元 |
CN110716900A (zh) * | 2019-10-10 | 2020-01-21 | 支付宝(杭州)信息技术有限公司 | 一种数据查询方法和*** |
CN110851209B (zh) * | 2019-11-08 | 2023-07-21 | 北京字节跳动网络技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN113094529B (zh) * | 2019-12-23 | 2024-01-05 | 深圳云天励飞技术有限公司 | 一种图像数据的处理方法、装置、电子设备及存储介质 |
CN111240845B (zh) * | 2020-01-13 | 2023-10-03 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置和存储介质 |
CN111538681B (zh) * | 2020-03-25 | 2022-11-01 | 武汉理工大学 | Spark平台下基于最大化缓存增益的缓存替换方法 |
CN111488626A (zh) * | 2020-04-09 | 2020-08-04 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及介质 |
CN111563054B (zh) * | 2020-04-17 | 2023-05-30 | 深圳震有科技股份有限公司 | 一种提高芯片读写速度的方法、智能终端及存储介质 |
CN111552442A (zh) * | 2020-05-13 | 2020-08-18 | 重庆紫光华山智安科技有限公司 | 一种基于ssd的缓存管理***及方法 |
CN111708288B (zh) * | 2020-05-18 | 2021-11-26 | 慧灵科技(深圳)有限公司 | 数据处理的方法、装置、电子设备及存储介质 |
CN111966283A (zh) * | 2020-07-06 | 2020-11-20 | 云知声智能科技股份有限公司 | 一种基于企业级超算场景的客户端多级缓存方法及*** |
CN111949661A (zh) * | 2020-08-12 | 2020-11-17 | 国网信息通信产业集团有限公司 | 一种配用电数据的存取方法及装置 |
CN114390098A (zh) * | 2020-10-21 | 2022-04-22 | 北京金山云网络技术有限公司 | 一种数据传输方法、装置、电子设备及存储介质 |
CN112329919B (zh) * | 2020-11-05 | 2022-07-29 | 北京百度网讯科技有限公司 | 模型训练方法及装置 |
CN112486678B (zh) * | 2020-11-25 | 2024-07-19 | 广州经传多赢投资咨询有限公司 | 一种股票行情数据处理方法、***、装置及存储介质 |
CN112650450B (zh) * | 2020-12-25 | 2024-02-27 | 深圳大普微电子科技有限公司 | 固态硬盘缓存管理方法、固态硬盘缓存控制器及固态硬盘 |
CN112685431B (zh) * | 2020-12-29 | 2024-05-17 | 京东科技控股股份有限公司 | 异步缓存方法、装置、***、电子设备和存储介质 |
CN113779082A (zh) * | 2021-01-05 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 一种更新数据的方法和装置 |
CN112988619A (zh) * | 2021-02-08 | 2021-06-18 | 北京金山云网络技术有限公司 | 数据读取方法、装置和电子设备 |
CN113190580B (zh) * | 2021-04-16 | 2024-06-04 | 国能大渡河检修安装有限公司 | 一种水力发电站数据缓存操作方法和*** |
CN113204502A (zh) * | 2021-04-20 | 2021-08-03 | 深圳致星科技有限公司 | 异构加速计算优化方法、装置、设备及可读存储介质 |
CN113342265B (zh) * | 2021-05-11 | 2023-11-24 | 中天恒星(上海)科技有限公司 | 缓存管理方法、装置、处理器及计算机装置 |
CN113870093A (zh) * | 2021-09-28 | 2021-12-31 | 上海商汤科技开发有限公司 | 一种图像缓存方法、装置、电子设备及存储介质 |
CN113919712A (zh) * | 2021-10-15 | 2022-01-11 | 城云科技(中国)有限公司 | 基于统计模型计算数据指标的方法、装置及其应用 |
CN113918483B (zh) * | 2021-12-14 | 2022-03-01 | 南京芯驰半导体科技有限公司 | 一种多主设备缓存控制方法及*** |
CN114242173B (zh) * | 2021-12-22 | 2023-05-16 | 深圳吉因加医学检验实验室 | 一种mNGS鉴定微生物的数据处理方法、装置及存储介质 |
CN114327280B (zh) * | 2021-12-29 | 2024-02-09 | 以萨技术股份有限公司 | 一种基于冷热分离存储的消息存储方法及*** |
CN114153754B (zh) * | 2022-02-08 | 2022-04-29 | 维塔科技(北京)有限公司 | 用于计算集群的数据传输方法、装置及存储介质 |
CN116886719B (zh) * | 2023-09-05 | 2024-01-23 | 苏州浪潮智能科技有限公司 | 存储***的数据处理方法、装置、存储***、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103927277A (zh) * | 2014-04-14 | 2014-07-16 | 中国人民解放军国防科学技术大学 | Cpu和gpu共享片上高速缓存的方法及装置 |
CN104102542A (zh) * | 2013-04-10 | 2014-10-15 | 华为技术有限公司 | 一种网络数据包处理方法和装置 |
CN105183566A (zh) * | 2015-10-16 | 2015-12-23 | 上海恺英网络科技有限公司 | 3d游戏渲染引擎的资源管理方法 |
US10250451B1 (en) * | 2014-01-13 | 2019-04-02 | Cazena, Inc. | Intelligent analytic cloud provisioning |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8341380B2 (en) * | 2009-09-22 | 2012-12-25 | Nvidia Corporation | Efficient memory translator with variable size cache line coverage |
US8914466B2 (en) * | 2011-07-07 | 2014-12-16 | International Business Machines Corporation | Multi-level adaptive caching within asset-based web systems |
CN102662459A (zh) * | 2012-04-22 | 2012-09-12 | 复旦大学 | 利用固态硬盘与机械硬盘混合存储减少服务器能源消耗的方法 |
US20130346695A1 (en) * | 2012-06-25 | 2013-12-26 | Advanced Micro Devices, Inc. | Integrated circuit with high reliability cache controller and method therefor |
CN102981807B (zh) * | 2012-11-08 | 2015-06-24 | 北京大学 | 一种基于cuda并行环境的gpu程序优化方法 |
CN103200128B (zh) * | 2013-04-01 | 2016-12-28 | 华为技术有限公司 | 一种网络包处理的方法、装置和*** |
CN103268293B (zh) * | 2013-06-14 | 2016-03-16 | 重庆重邮汇测通信技术有限公司 | 多通道多速率数据采集***存储器管理方法 |
CN103955435B (zh) * | 2014-04-09 | 2017-01-11 | 上海理工大学 | 一种融合多级缓存目录建立访问方法 |
CN104077368A (zh) * | 2014-06-18 | 2014-10-01 | 国电南瑞科技股份有限公司 | 一种调度监控***历史数据两级缓存多阶段提交方法 |
CN104239231B (zh) * | 2014-09-01 | 2018-01-30 | 上海爱数信息技术股份有限公司 | 一种加速二级缓存预热的方法及装置 |
WO2016082205A1 (zh) * | 2014-11-28 | 2016-06-02 | 华为技术有限公司 | 一种多级缓存的功耗控制方法、装置及设备 |
CN105988874B (zh) * | 2015-02-10 | 2020-08-28 | 阿里巴巴集团控股有限公司 | 资源处理方法及装置 |
CN105589664B (zh) * | 2015-12-29 | 2018-07-31 | 四川中电启明星信息技术有限公司 | 虚拟存储高速传输方法 |
CN105847365A (zh) * | 2016-03-28 | 2016-08-10 | 乐视控股(北京)有限公司 | 内容缓存方法及*** |
-
2016
- 2016-10-28 CN CN201610972718.6A patent/CN108009008B/zh active Active
-
2017
- 2017-10-30 WO PCT/CN2017/108449 patent/WO2018077292A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102542A (zh) * | 2013-04-10 | 2014-10-15 | 华为技术有限公司 | 一种网络数据包处理方法和装置 |
US10250451B1 (en) * | 2014-01-13 | 2019-04-02 | Cazena, Inc. | Intelligent analytic cloud provisioning |
CN103927277A (zh) * | 2014-04-14 | 2014-07-16 | 中国人民解放军国防科学技术大学 | Cpu和gpu共享片上高速缓存的方法及装置 |
CN105183566A (zh) * | 2015-10-16 | 2015-12-23 | 上海恺英网络科技有限公司 | 3d游戏渲染引擎的资源管理方法 |
Non-Patent Citations (3)
Title |
---|
OSCAR: Orchestrating STT-RAM cache traffic for heterogeneous CPU-GPU architectures;J. Zhan等;《2016 49th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO)》;20161215;第1-13页 * |
一种适应GPU的混合OLAP查询处理模型;张宇等;《软件学报》;20160515;第27卷(第05期);第1246-1265页 * |
基于CPU/GPU异构并行计算优化的3D实时渲染;张大勇等;《中国传媒科技》;20160315;第118-121页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2018077292A1 (zh) | 2018-05-03 |
CN108009008A (zh) | 2018-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108009008B (zh) | 数据处理方法和***、电子设备 | |
US10657101B2 (en) | Techniques for implementing hybrid flash/HDD-based virtual disk files | |
US9182927B2 (en) | Techniques for implementing hybrid flash/HDD-based virtual disk files | |
KR101620773B1 (ko) | 복합식 비휘발성 저장 디바이스를 위한 데이터 이송 | |
US9280300B2 (en) | Techniques for dynamically relocating virtual disk file blocks between flash storage and HDD-based storage | |
US9501419B2 (en) | Apparatus, systems, and methods for providing a memory efficient cache | |
US9229869B1 (en) | Multi-lock caches | |
KR20120068454A (ko) | 원격 페이지 폴트 처리 장치 및 그 방법 | |
KR20130060187A (ko) | 캐시 및/또는 소켓 감지 멀티-프로세서 코어 너비 우선 순회 | |
CN117120998A (zh) | 用于读取树数据结构中保存的数据的方法和装置 | |
US9699254B2 (en) | Computer system, cache management method, and computer | |
US20170046096A1 (en) | Structuring page images in a memory | |
US11249914B2 (en) | System and methods of an efficient cache algorithm in a hierarchical storage system | |
CN109492020A (zh) | 一种数据缓存方法、装置、电子设备及存储介质 | |
US11093169B1 (en) | Lockless metadata binary tree access | |
US9454488B2 (en) | Systems and methods to manage cache data storage | |
US9864761B1 (en) | Read optimization operations in a storage system | |
US11714758B2 (en) | Cache management for search optimization | |
US11775433B2 (en) | Cache management for search optimization | |
US11556470B2 (en) | Cache management for search optimization | |
Saad et al. | Memory Management Approaches in Apache Spark: A Review | |
KR20230025322A (ko) | 호스트, 호스트의 동작 방법 및 스토리지 시스템 | |
CN115525668A (zh) | Kvs的数据处理方法、装置和存储介质 | |
CN116795878A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |