1. 程式人生 > >IBM的順序流預取演算法SARC的思考與困惑

IBM的順序流預取演算法SARC的思考與困惑

SARC為IBM的順序流預取演算法。現在想實現這個演算法,但是最大的困惑是如何才能保證替換執行緒可以很好的完成任務。

該Cache演算法中的元素是以塊(頁面)為元素進行儲存的。

1.RANDOM 命中

將該元素放到RANDOM的MRU端

2.SEQ命中

調整引數,然後放到MRU端,並重新計算SeqCount。

若SeqCount(i-1)=0 SeqCount(i)=1

3.兩個連結串列都未命中

3.1 x-1在快取中,

如果塊號為x-1已經達到了閾值,預取出x,x+m,並放入到SEQ中。

否則放入到RANDOM,更新SeqCount=SeqCount(x-1)+1

3.2如果x-1未在快取中,則設定SeqCount(x)=1

預取部分的實現

替換部分的實現

這個演算法是需要預先為cache申請空間的,因為如果不預先申請空間,FreeQ的長度就會一直為0, 然後會將剛剛放入到裡面的元素evict掉,length=1,但是此時又有新的請求要讀頁面,那麼length又等於0。但是如果剛開始給FreeQ的長度設定為2000,為系統預留記憶體空間2G(塊大小為1M),FreeQThreshold=5 ,那麼在最開始的時候SARC裡面的塊就不會被無辜替換了。直到空間都消耗完了,length<5的時候,這時會呼叫替換演算法替換出較早的頁面或者自適應的替換掉SEQ中超過desire長度的部分。


相關推薦

IBM順序演算法SARC思考困惑

SARC為IBM的順序流預取演算法。現在想實現這個演算法,但是最大的困惑是如何才能保證替換執行緒可以很好的完成任務。 該Cache演算法中的元素是以塊(頁面)為元素進行儲存的。 1.RANDOM 命中 將該元素放到RANDOM的MRU端 2.SEQ命中 調整引數,然後放到M

點選率演算法:FMFFM

點選率預估演算法:FFM @(計算廣告)[計算廣告] 1、FM 1.1 背景 1.1.1 線性模型 常見的線性模型,比如線性迴歸、邏輯迴歸等,它只考慮了每個特徵對結果的單獨影響,而沒有考慮特徵間的組合對結果的影響。 對於一個有n

網路(Edmonds-karp演算法 來自汝佳大神)

#include<iostream> #include<cstdio> using namespace std; struct edge{ int from,to,cap,flow; edge(int u,int v,int c,int f):from(

feed,讀擴散,究竟是啥?

from:https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=2651961214&idx=1&sn=5e80ad6f2a278529c395e445029d8f63&chksm=bd2d02a28a5a8bb4f8622

React服務端渲染(程式碼分割和資料

前幾節已經把專案基本骨架和路由搭建好了,但作為實際專案開發,這些還是不夠的。隨著業務的增大,應用層序程式碼也隨之增大,如果把所有程式碼都打包到一個檔案裡面,首次載入會導致時間相對變長,增加流量(對移動端來說)。應用程式包含很多頁面,某一時刻使用者只會訪問一個頁面,使用者未訪問的頁面程式碼在訪問之前不應該被載入

RecursiveTask和RecursiveAction的使用 以及java 8 並行順序

轉載自 https://blog.csdn.net/weixin_41404773/article/details/80733324 什麼是Fork/Join框架         Fork/Join框架是J

springboot整合pdf.js用檔案覽本地磁碟pdf檔案

背景 最近專案中有需求需要在前端上傳pdf檔案並進行預覽,上傳功能比較簡單。而pdf預覽的話,在網上對比個多個外掛後,確定使用pdf.js外掛進行pdf的展示。 官網地址:[http://mozilla.github.io/pdf.js/] 程式碼實現 將pdf.js檔案放入專案資原

關於實時TopN排名演算法思考

關於實時TopN排名演算法的思考 0.引言 1.TopN實時排名演算法 1.1 一個失敗的方案 1.2 現成的資料結構? 1.3 合理的方案 Reference 0.引

基於深度學習的廣告CTR演算法

數十款阿里雲產品限時折扣中,趕緊點選這裡,領劵開始雲上實踐吧!   演講嘉賓簡介: 朱小強,花名懷人,阿里媽媽高階演算法專家,領導了核心的排序演算法與機器學習平臺團隊,負責阿里精準展示廣告的CTR/CVR預估系統/演算法

音訊識別演算法思考階段性小結

這篇文章醞釀了很久,一直沒抽時間寫。 在中秋,國慶來臨之時,落筆。 寫之前,先交代幾件事情, 主要是 回覆 給我發郵件以及QQ上詢問的朋友們的一些疑問和需求,這裡稍作回覆一下。 1.關於 票據ocr預處理演算法  相關演算法細節已經開源。 專案地址: 各位可以根據CPUImageLocalColorFilt

聊聊CTR演算法DeepFM

DeepFM這種演算法是一種基於分解機的神經網路,該演算法由哈爾濱工業大學深圳研究生院聯合華為諾亞方舟實驗室於2017年提出的。 這種演算法是一種端到端的學習模型,不僅考慮了低階的特徵融合,也考慮了高階的特徵融合。該演算法利用深度學習來學習特徵,利用分解機做推薦。

POJ3281 Dining 最大入門 Dinic演算法

**題意: ** 有N頭牛,F種食物可以製作,D種飲料可以製作 然後每行代表一頭牛的喜好,開頭兩個數fi,di表示這頭牛喜歡fi種食物,di種飲料,接下來fi個數表示喜歡的食物編號,di個數表示喜歡的飲料的編號 現在主人使用最優決策製作出F種食物和D種飲料,問

網路之最大(Dinic演算法

程式碼對應於 POJ - 3281 #include <iostream> #include <cstring> #include <cstdio> #include <queue> #define fuck

網路(Edmonds-karp演算法 來自汝佳大神)

#include<iostream> #include<cstdio> using namespace std; struct edge{ int from,to,cap,flow; edge(int u,int v,int c,

網路最大-ISAP演算法詳解模板

ISAP演算法 ISAP(Improved Shortest Augumenting Path)演算法是改進版的SAP演算法,如果對效率要求很高的時候,可以用該演算法。 (1)概述:演算法基於這樣的一個事實:每次增廣之後,任意結點到匯點(在殘餘網路中)的最短距離都不會

並行順序效能對比試驗

通過試驗得到,並行流不一定要比順序流快,所以在選擇的時候要注意使用。 程式碼: ParallelStreamsHarness .java import java.util.concurrent.

DPDK(10):報文處理中的指令(prefetcht0)

在DPDK的例子中報文處理時讀取報文內容時添加了指令預取命令(prefetcht0): /* * Read packet from RX queues */ for (i = 0; i < qconf->n_rx_port; i++) {

演算法訓練 Torry的困惑(基本型) (處理)

時間限制:1.0s 記憶體限制:512.0MB 提交此題 問題描述   Torry從小喜愛數學。一天,老師告訴他,像2、3、5、7……這樣的數叫做質數。Torry突然想到一個問題,前10、10

海量資料的最佳演算法實戰

摘要:為了高效地分析海量的資料,科學家首先要將大數打破成碎片。作者循序漸進地闡述了一個處理海量資料流的最佳流式演算法,演算法經過不斷改進,是超大規模資料流高效能分析的新演算法,以下是譯文。 當從消防水帶出來的水衝擊你的臉部時,很難計量水。從某種意義上說

演算法導論—最大(Edmonds-Karp演算法)

華電北風吹 天津大學認知計算與應用重點實驗室 2016-07-20 有向圖的最大流演算法程式碼模板。利用廣度優先搜尋尋找殘量網路增廣路。 參考程式碼: #include <iostr