piccolo
是new york
大學在osdi 2000
上發表的
*****
,piccolo
允許計算單元跑在不同的機器上,更重要的是它對計算過程中的共享狀態資料的訪問有很好的本地性,同時解決了在執行時寫資料的衝突等問題。
它和mapreduce
的區別在於能夠輕鬆訪問中間狀態(其實就是中間結果
,之後都採用中間結果的說法),由於
mapreduce
需要把中間結果儲存到
hdfs
,開銷比較大,所以對需要頻繁訪問中間結果的運算效率不高,而
piccolo
把中間結果儲存在記憶體中,
piccolo
中叫做in-memory table
,piccolo
對in-memory table
抽象出key-value
簡單的操作介面,方便操作。
當然用mpi等傳統的程式設計框架,再加上
shared-memory
也可以解決這種問題,但是
mpi這種
low-level
的程式設計框架編寫**非常複雜,而
shared-memory
的效能不高。
對於之前提到的對中間結果訪問密集型的場景,**中舉了幾個例子:
1、pagerank
,在計算乙個網頁的
pagerank
分值的時候,需要訪問這個網頁周圍的網頁的
pagerank
值,它周圍網頁的
pagerank
值就是被頻繁訪問的中間結果。
2、k-means
聚類演算法【2】。
k-means
先選取k
個物件作為初始的聚類中心,然後計算剩下的物件和聚類中心的距離,根據他們與聚類中心的距離將他們分配到就近的聚類中心,然後得出新的聚類中心,再計算其它物件和新的聚類中心的距離,重複如此,直到收斂為止。在重新計算聚類中心的時候,需要這個聚類下所有物件到之前的中心的距離,它也是分布在不同節點,同時需要被頻繁訪問的。
可以知道的是,類似的場景大部分出現在資料探勘的場景下。
好了廢話少說,下面分析一下
piccolo
是如何實現的
//todo
reference
1.2.
OFDM技術分析
通常的數字調製都是在 單個載波 上進行,如psk qam等。這種單載波的調製方法易發生碼間干擾而增加誤位元速率,而且在多徑傳播的環境中因受瑞利衰落的影響而會造成突發誤碼。若將高速率的序列資料轉換為若干低速率資料流,每個低速資料流對應乙個載波進行調製,組成乙個多載波的同時調製的並行傳輸系統。這樣將總的...
DSL技術分析
dsl技術 一 定義 數字使用者線路 digital subscriber line 二 作用 以銅製 雙絞線 為傳輸介質的傳輸技術 三 分類 對稱 hdsl,上下行速率一致 企業使用者使用,不支援語音和資料同時傳送 sdsl shdsl 非對稱 adsl,下行速率大於上行速率 家庭使用者使用,支援...
DSL技術分析
dsl技術 一 定義 數字使用者線路 digital subscriber line 二 作用 以銅製 雙絞線 為傳輸介質的傳輸技術 三 分類 對稱 hdsl,上下行速率一致 企業使用者使用,不支援語音和資料同時傳送 sdsl shdsl 非對稱 adsl,下行速率大於上行速率 家庭使用者使用,支援...