CN110188050A - 一种基于N-gram算法的多通道按需预取设计方法 - Google Patents
一种基于N-gram算法的多通道按需预取设计方法 Download PDFInfo
- Publication number
- CN110188050A CN110188050A CN201910454527.4A CN201910454527A CN110188050A CN 110188050 A CN110188050 A CN 110188050A CN 201910454527 A CN201910454527 A CN 201910454527A CN 110188050 A CN110188050 A CN 110188050A
- Authority
- CN
- China
- Prior art keywords
- prefetches
- ext
- prefetch
- prefetched
- multichannel
- 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
Classifications
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明旨在解决面向网络计算的新一代操作系统中软件的按需动态部署模式中的预取算法必须拥有极高的命中率的关键性问题,涉及计算机科学领域自然语言处理中的N‑gram算法,尤其涉及一种基于N‑gram算法的多通道按需预取机制。其主要技术方案为首先统计操作序列并写入到频度统计表中;然后主要根据N‑gram算法、一个软件被划分成的所有软件模块和预取轮次来决定预取机制;最后在实际预取过程中,设定应遵循的原则,并按照预取序列依次预取。
Description
技术领域
本发明旨在解决软件的按需动态部署模式中的预取算法必须拥有极高的命中率的关键性问题,涉及计算机科学领域自然语言处理中的N-gram算法,尤其涉及一种基于N-gram算法的多通道按需预取机制。
背景技术
现代处理器和存储器速度发展的不协调导致处理器要耗费很多时间等待存储器数据的返回,这就是存储墙问题。为了解决这些问题,已提出多种技术方案,其中最主要的有缓存和预取技术两种。众所周知,缓存是访问重用数据的技术,它能有效节省访问使用率高的资源所耗费的时间。随着应用规模的不断扩大和上述技术的不断成熟,容量失效和强制性失效在总的缓存失效次数当中所占的比例越来越大,成为影响缓存性能的主要因素。而随着缓存技术的广泛应用,预取技术也在存储控制器、操作系统、数据库、网络、文件系统等应用中起到了重要作用。同时,预取不像缓存那样应用广泛。最具挑战性的预取方面之一是预测——预测出将会在不久使用的目标。预测的低准确率不但不能改善用户延迟还可能使延迟更严重。
面向网络计算的新一代操作系统需要为用户提供高效、安全服务。而在用户需求易变、高动态的网络环境中,现有计算机难以提前预见和考虑到各种业务需求。为了应对人们生活中随时变化的服务请求,需要提供一种能够实时应对用户需求变化的服务。尤其是对于软件的使用,新一代操作系统中要求达到一种“召之即来挥之即去”的效果。这就需要极大提升预取算法的命中率,为用户提供高效、干净、快捷的使用体验。一些实验表明软件不需要执行整个软件镜像只需下载一些模块就能执行。其余的可根据需要流式传输到执行环境。综合考虑软件下载和安装时间,流式启动方式将优于传统的软件启动方法。为了有效改善软件模块化加载中的性能问题,本发明提出了一种基于N-gram算法的多通道预取机制,力求极大地提高用户体验性能。
发明内容
预取技术是根据局部性扩展的原理——即时间向空间拓展,在服务器处理客户端请求时,利用预取算法估测用户下一步的操作,并利用网络空闲时间段将估测的内容预先加载到缓存中。因此它弥补了缓存技术的不足,能有效降低网络的访问延迟,提高响应速度。自然语言处理中的N-Gram模型基于某个词的出现与且只与前面N个词相关的假设,整句的概率就是每个词的概率相乘的结果。应用到软件预取中,我们可以假设某个软件模块的出现只与前面N 个软件模块相关,而与其它任何模块都不相关。
本发明旨在提出一种基于N-gram算法的多通道预取机制,其主要内容包括:
1.创建频度统计表:统计操作序列并写入到频度统计表中;
2.决定预取机制:主要根据一个软件被划分成的所有软件模块数量和预取轮次来决定;
3.设定预取原则:按照预取序列依次预取。在实际预取过程中,设定应遵循的原则。
具体实施方式
本发明基于自然语言处理中的N-gram模型,并将该模型运用到虚拟化软件模块的预取中。首先给出本发明中所涉及的前提定义的解释。
定义1.软件模块.整个软件按最小可操作的功能细分为若干块,其中的任意一块被称为一个“软件模块”。
定义2.软件预取.软件在执行的过程中,客户端根据各种已知条件预估使用者的下一步操作而事先将一个或多个软件模块从远端服务器加载下来的过程被称为软件预取。
定义3.命中.在软件预取后,某个事先加载的软件模块成功在客户端的最新操作中被使用到的过程被称为命中。其中,命中率的高低是用来判断一个预取算法是否达优的重要指标。
定义4.关键值.用数值ext来表示第一条预取通道中N-Gram模型中的N值,我们称之为关键值。它将在初始化阶段就被确定,这能保障预取的计算空间得到有效控制。
定义5.预取轮次.软件预取过程中,每使用单通道或多通道的机制预取一个或多个软件模块的过程被称为一次预取,我们使用数值k来表示当前客户端对软件的预取次数,即预取轮次。
定义6.通道数.设数值C代表预取一个软件过程中建立的最大通道数量。应根据实时带宽在预取的合理计算空间内按需设置。在k轮次中,我们以N-gram算法中N值的大小进行递增排序,对通道依次命名为{1,2,3,…,W(k),…M(k)}。用W(k)来表示k轮次中某一通道的 id值。当预取轮次中通道数不足C时,用数值M(k)来表示k轮次中通道总数。易知在通道M(k) 中,其N-gram模型中对应的N值为ext+M(k)-1。
定义7.全集.我们使用U={x1,x2,x3,…,xi,…,xt}来表示一个软件被划分成的所有软件模块。
定义8.预取序列.我们使用A={y1(1),y1(2),…y1(ext),y1(ext+1),y2(ext+1),…yM(ext+1),y1(ext+2),y2(ext+2),…yM(ext+2),…y1(k),y2(k),…yC(k)}来表示一个软件在客户端的一次预取序列。由于在多通道中,存在并行预取的情况,这里的y1(k),y2(k),…yC(k)表示在第k 轮预取中C条通道的预取目标。
定义9.预取概率.设软件模块xi(k)的预取概率用Pp(xi(k))来表示,在单通道预取机制中, Pp(xi(k))可由公式Pp(xi(k))=P(xi(k)|y1(k-1)y1(k-2)…y1(1))计算得出。而在多通道预取机制中,Pp(xi(k)) 可由公式Pp(xi(k))=P(xi(k)|yM(k-1)yM(k-2)…yM(k-ext))计算得出。
定义10.命中率.设Mh代表中在预取过程中被命中的软件模块数量,而Mp代表在整个预取过程中被预取的软件模块数量,所以命中率为Ph=Mh/Mp。
其次给出本发明实施的具体步骤:
步骤一:统计操作序列并写入到频度统计表中。
1)初始化ext值以及通道数C值,通过由增量挖掘算法已经得到的数据集的频繁模式来统计软件中所有长度为1到ext+C的不同操作序列出现的次数;
2)按长度排列保存到操作序列频度统计表F中。每隔时间D更新一次频度统计表F。
步骤二:根据宏观U={x1,x2,x3,…,xi,…,xt}和k值大小来决定预取机制。
1)当k=1时,直接选取max(xi)加入到预取序列中,即y1(1)=max(xi);
2)当k大于1且不大于ext+1时,采用单通道预取机制,即采用如下公式来计算每个软件模块的预取概率:
Pp(xi(k))=P(xi(k)|yk-1(1)yk-2(1)…y1(1))=P(xi(k)y1(k-1)y1(k-2)…y1(1))/P(y1(k-1)y1(k-2)…y1(1))
此时y1(k)=max(Pp(xi(k)));
3)当k等于ext+2时,开始采用多通道预取机制,即通道数增加1,易知此时M(k)为2,直到M(k)等于C之前,k与M(k)一直保持着此条等式的关系:M(k)=k-ext,直到M(k)等于C之时,通道数不再改变;
4)任意一条通道W(k)中使用下述公式来预处理每个软件模块的预取概率:
Pp(xi(k))=P(xi(k)|yM(k-1)yM(k-2)…yM(k-ext-W(k)+1))
=P(xi(k)yM(k-1)yM(k-2)…yM(k-ext-W(k)+1))/P(yM(k-1)yM(k-2)…yM(k-ext-W(k)+1))
依次记录每条通道的预取序列到A中:yW(k)=max(Pp(xi(k))),直到预取序列全部记录完毕。
步骤三:按照预取序列依次预取。在实际预取过程中,应遵循如下原则:
1)如果拥有最高预取概率的软件模块已存在于客户端中,则不作处理,否则其将会被设为预取目标并被预取;
2)存在有多条通道进行软件模块预取时,如果各通道的预取目标一致,则按单通道的方式处理,即撤销多通道唯一预取;
3)多通道预取时,考虑是否有两条及以上的通道预取目标一致的情况出现,若存在,合并目标相同的通道,继续按多通道的方式处理;
4)按预取目标的所占空间大小的比例合理分配每条通道的带宽,保障多条通道上的预取目标能在相同的时间内到达客户端;
5)直到所有的软件模块被预取至客户端,预取结束。
本发明提出了多通道预取机制。多通道的预取方式相对于普通的单通道预取方式虽然耗费了更多空间,并且对于网络带宽有一定要求。但其极大提高了预取容错率,使得预取命中率有较为显著的提高。按功能模块划分的方式与等量划分软件块的方式比较可发现,它能保障软件功能模块的完整性以及用户使用过程中的连贯性,在预取算法中起到了关键性的作用。
附图说明
图1为本发明的流程图。
Claims (4)
1.一种基于N-gram算法的多通道按需预取设计方法,包含如下步骤:
步骤一,创建频度统计表:
初始化ext和C,统计操作序列并写入到频度统计表中;
步骤二,决定预取机制:
主要根据宏观U={x1,x2,x3,…,xi,…,xt}和k值大小来决定;
步骤三,设定预取原则:
按照预取序列依次预取。在实际预取过程中,设定应遵循的原则。
2.根据权利要求1所述的一种基于N-gram算法的多通道按需预取设计方法,其特征在于,步骤一中创建频度统计表的具体步骤为:
1)初始化ext值以及通道数C值,通过由增量挖掘算法已经得到的数据集的频繁模式来统计软件中所有长度为1到ext+C的不同操作序列出现的次数;
2)按长度排列保存到操作序列频度统计表F中。每隔时间D更新一次频度统计表F。
3.根据权利要求1所述的一种基于N-gram算法的多通道按需预取设计方法,其特征在于,步骤二中决定预取机制的具体内容为:
1)当k=1时,直接选取max(xi)加入到预取序列中,即y1(1)=max(xi);
2)当k大于1且不大于ext+1时,采用单通道预取机制,即采用如下公式来计算每个软件模块的预取概率:
Pp(xi(k))=P(xi(k)|yk-1(1)yk-2(1)…y1(1))=P(xi(k)y1(k-1)y1(k-2)…y1(1))/P(y1(k-1)y1(k-2)…y1(1))
此时y1(k)=max(Pp(xi(k)));
3)当k等于ext+2时,开始采用多通道预取机制,即通道数增加1,易知此时M(k)为2,直到M(k)等于C之前,k与M(k)一直保持着此条等式的关系:M(k)=k-ext,直到M(k)等于C之时,通道数不再改变;
4)任意一条通道W(k)中使用下述公式来预处理每个软件模块的预取概率:
Pp(xi(k))=P(xi(k)|yM(k-1)yM(k-2)…yM(k-ext-W(k)+1))
=P(xi(k)yM(k-1)yM(k-2)…yM(k-ext-W(k)+1))/P(yM(k-1)yM(k-2)…yM(k-ext-W(k)+1))
依次记录每条通道的预取序列到A中:yW(k)=max(Pp(xi(k))),直到预取序列全部记录完毕。
4.根据权利要求1所述的一种基于N-gram算法的多通道按需预取设计方法,其特征在于:步骤三中的具体原则为:
1)如果拥有最高预取概率的软件模块已存在于客户端中,则不作处理,否则其将会被设为预取目标并被预取;
2)存在有多条通道进行软件模块预取时,如果各通道的预取目标一致,则按单通道的方式处理,即撤销多通道唯一预取;
3)多通道预取时,考虑是否有两条及以上的通道预取目标一致的情况出现,若存在,合并目标相同的通道,继续按多通道的方式处理;
4)按预取目标的所占空间大小的比例合理分配每条通道的带宽,保障多条通道上的预取目标能在相同的时间内到达客户端;
5)直到所有的软件模块被预取至客户端,预取结束。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910454527.4A CN110188050A (zh) | 2019-05-29 | 2019-05-29 | 一种基于N-gram算法的多通道按需预取设计方法 |
CN201911255974.3A CN112015676B (zh) | 2019-05-29 | 2019-12-10 | 一种支持软件按需模块式加载的预取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910454527.4A CN110188050A (zh) | 2019-05-29 | 2019-05-29 | 一种基于N-gram算法的多通道按需预取设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110188050A true CN110188050A (zh) | 2019-08-30 |
Family
ID=67718552
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910454527.4A Pending CN110188050A (zh) | 2019-05-29 | 2019-05-29 | 一种基于N-gram算法的多通道按需预取设计方法 |
CN201911255974.3A Active CN112015676B (zh) | 2019-05-29 | 2019-12-10 | 一种支持软件按需模块式加载的预取方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911255974.3A Active CN112015676B (zh) | 2019-05-29 | 2019-12-10 | 一种支持软件按需模块式加载的预取方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN110188050A (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6708254B2 (en) * | 1999-11-10 | 2004-03-16 | Nec Electronics America, Inc. | Parallel access virtual channel memory system |
DE60041444D1 (de) * | 2000-08-21 | 2009-03-12 | Texas Instruments Inc | Mikroprozessor |
CN100449481C (zh) * | 2007-06-29 | 2009-01-07 | 东南大学 | 具有多通道指令预取功能的存储控制电路 |
CN102033769B (zh) * | 2010-12-08 | 2013-05-22 | 北京航空航天大学 | 面向虚拟化软件流式加载的预取方法和系统 |
CN103488578B (zh) * | 2012-12-28 | 2016-05-25 | 晶天电子(深圳)有限公司 | 虚拟存储设备(vmd)应用/驱动器 |
-
2019
- 2019-05-29 CN CN201910454527.4A patent/CN110188050A/zh active Pending
- 2019-12-10 CN CN201911255974.3A patent/CN112015676B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112015676B (zh) | 2022-09-16 |
CN112015676A (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Performance prediction for apache spark platform | |
US10397359B2 (en) | Streaming media cache for media streaming service | |
JP4839164B2 (ja) | ハードウェアモニタを用いた性能評価システム及び再構築可能な計算機システム | |
US20170372230A1 (en) | Machine learning management method and machine learning management apparatus | |
CN105279240B (zh) | 客户端起源信息关联感知的元数据预取方法及系统 | |
CN110287010B (zh) | 一种面向Spark时间窗口数据分析的缓存数据预取方法 | |
US7478083B2 (en) | Method and system for estimating cardinality in a database system | |
US10664552B2 (en) | Stream processing for LU decomposition | |
JP6937759B2 (ja) | データベース操作方法及び装置 | |
US20220076166A1 (en) | Systems and methods for storing and retrieving data sets based on temporal information | |
CN107844380B (zh) | 一种支持指令预取的多核缓存wcet分析方法 | |
US20230185806A1 (en) | Data system configured to transparently cache data of data sources and access the cached data | |
Zhang et al. | RnR: A software-assisted record-and-replay hardware prefetcher | |
US20150269179A1 (en) | Second level database file cache for row instantiation | |
CN117130665A (zh) | 一种处理器分支指令执行结果预测方法及系统 | |
US8006238B2 (en) | Workload partitioning in a parallel system with hetergeneous alignment constraints | |
CN106776370A (zh) | 基于对象关联性评估的云存储方法及装置 | |
CN110188050A (zh) | 一种基于N-gram算法的多通道按需预取设计方法 | |
US10402510B2 (en) | Calculating device, calculation method, and calculation program | |
Li et al. | An experimental study on deep learning based on different hardware configurations | |
CN110162272B (zh) | 一种内存计算缓存管理方法及装置 | |
EP3274844B1 (en) | Hierarchical cost based caching for online media | |
KR20220067961A (ko) | 프로세싱-인-메모리 및 프로세싱-인-메모리를 이용한 인스트럭션 출력 방법 | |
US11144428B2 (en) | Efficient calculation of performance data for a computer | |
US20150134919A1 (en) | Information processing apparatus and data access method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190830 |