CN110188050A - 一种基于N-gram算法的多通道按需预取设计方法 - Google Patents

一种基于N-gram算法的多通道按需预取设计方法 Download PDF

Info

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
Application number
CN201910454527.4A
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.)
Central South University
Original Assignee
Central South University
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 Central South University filed Critical Central South University
Priority to CN201910454527.4A priority Critical patent/CN110188050A/zh
Publication of CN110188050A publication Critical patent/CN110188050A/zh
Priority to CN201911255974.3A priority patent/CN112015676B/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing 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-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)直到所有的软件模块被预取至客户端,预取结束。
CN201910454527.4A 2019-05-29 2019-05-29 一种基于N-gram算法的多通道按需预取设计方法 Pending CN110188050A (zh)

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)

* Cited by examiner, † Cited by third party
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)应用/驱动器

Also Published As

Publication number Publication date
CN112015676A (zh) 2020-12-01
CN112015676B (zh) 2022-09-16

Similar Documents

Publication Publication Date Title
US10397359B2 (en) Streaming media cache for media streaming service
JP4839164B2 (ja) ハードウェアモニタを用いた性能評価システム及び再構築可能な計算機システム
US20170372230A1 (en) Machine learning management method and machine learning management apparatus
CN105279240B (zh) 客户端起源信息关联感知的元数据预取方法及系统
KR102551277B1 (ko) 병합 조인 시스템 및 병합 조인 방법
CN110287010B (zh) 一种面向Spark时间窗口数据分析的缓存数据预取方法
US11341097B2 (en) Prefetching based on historical use and real-time signals
JP2000330827A (ja) 参照の局所性を動的に追跡する高効率技法
JP6937759B2 (ja) データベース操作方法及び装置
CN107844380B (zh) 一种支持指令预取的多核缓存wcet分析方法
US10664552B2 (en) Stream processing for LU decomposition
US20220076166A1 (en) Systems and methods for storing and retrieving data sets based on temporal information
Zhang et al. RnR: A software-assisted record-and-replay hardware prefetcher
US8006238B2 (en) Workload partitioning in a parallel system with hetergeneous alignment constraints
CN113157541B (zh) 面向分布式数据库的多并发olap型查询性能预测方法及系统
Li et al. An experimental study on deep learning based on different hardware configurations
US10402510B2 (en) Calculating device, calculation method, and calculation program
CN110188050A (zh) 一种基于N-gram算法的多通道按需预取设计方法
CN110162272B (zh) 一种内存计算缓存管理方法及装置
KR20220067961A (ko) 프로세싱-인-메모리 및 프로세싱-인-메모리를 이용한 인스트럭션 출력 방법
CN117130665A (zh) 一种处理器分支指令执行结果预测方法及系统
EP3274844B1 (en) Hierarchical cost based caching for online media
Yu et al. Efficient Large-Capacity Caching in Cloud Storage Using Skip-Gram-Based File Correlation Analysis
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