T-thinker | 繼MapReduce, Apache Spark之後的下一代大資料並行程式設計框架

機器之心發表於2022-07-05
什麼?是不是又是一個關於設計大同小異的並行程式設計框架的炒作?是不是又是把各種簡單爛大街問題(join, connected components, single-source shortest paths, PageRanks)統一一下程式設計介面(答案是不,我們處理更高階多樣的計算問題)?這個與我有什麼關係?

別急著離開… 接下來幾段馬上告訴你!與以往的並行程式設計框架不同,T-thinker 是針對計算密集型(compute-intensive)任務的。相反,現有程式設計框架是針對資料密集型(data-intensive)任務的,在處理是針對計算密集型任務時可能比單機上的序列程式還慢(哪怕你用上 1000 臺電腦同時算)!你不相信?我來列舉一下證據。

這個現象早在 10 年前就有人發現了:Siddharth Suri 和 Sergei Vassilvitskii 在 2011 年的 WWW 會議上發表題為《Counting triangles and the curse of the last reducer》的論文, 開創性地提出了數三角形演算法的 MapReduce 版本(根據谷歌引用,目前高引達 480 多次)。

然而一年以後 Shumo Chu 和 James Cheng 在他們 ACM TKDD 期刊論文《Triangle listing in massive networks》中犀利地指出: Siddharth Suri 和 Sergei Vassilvitskii 的 MapReduce 方法使用 1636 臺電腦花費了整整 5.33 分鐘才完成一個數三角形的任務,而 Shumo Chu 和 James Cheng 提出的單機外存序列演算法在同樣的任務上僅僅花費 0.5 分鐘!

換句話說,為了使用分散式框架,Siddharth Suri 和 Sergei Vassilvitskii 花費了 1636 倍的計算資源卻獲得了 10 倍的效能降速!無獨有偶,Frank McSherry 等人在他們 HotOS 2015 研討會論文《Scalability! But at what COST?》中犀利地指出,現有的頂點式圖計算系統其效能和在筆記本上跑一個簡單的序列程式其實差不多。這之後,Frank McSherry 更是在他題為《COST in the land of databases》的部落格(https://github.com/frankmcsherry/blog/blob/master/posts/2017-09-23.md) 進一步 diss 了大資料系統研究(具體見圖 1)…
T-thinker | 繼MapReduce, Apache Spark之後的下一代大資料並行程式設計框架

圖 1:Frank McSherry 部落格 “COST in the Land of Databases” 對大資料系統的相關評論。


這裡效能問題的根源在於,對於一個含有 n 個點的圖,其數三角形的複雜度是 O(n^1.5),而一般資料密集型框架最擅長的是迭代(iterative)計算,即執行有限的迭代輪數(比如常數或者 O(log n)),而且每輪的代價和輸入呈線性關係(即 O(n))。換句話說,資料密集型框架擅長的演算法的總工作量僅限於 O(n log n)的量級。

該結論被很多人已經注意到,例如樊文飛等在 PVLDB’13 上發表的論文《Making queries tractable on big data with preprocessing》以及 Lu Qin 等在 SIGMOD’14 上發表的論文《Scalable big graph processing in MapReduce》均指出可擴充套件性好的 MapReduce 程式是 O(log n)的,而筆者領銜發表在 PVLDB’14 的論文《Pregel algorithms for graph connectivity problems with performance guarantees》對在谷歌的 Pregel 框架下的圖計算程式給出了同樣的結論。相反,T-thinker 框架可以輕鬆處理 NP 難的計算問題,保證計算效能隨著 CPU 核數增加而顯著提高!

如果現在還沒說服你繼續讀下去,而你恰好是搞大資料系統和演算法研究的學者(業界見文字最後哈,不要走開!),那讓我們看看 T-thinker 的研究可以在頂級計算機會議和期刊上有多高產!值得注意的是,T-thinker 是一個非常新的 topic:初步的概念發表在筆者等在 PPoPP’19 上的海報(poster)論文《T-thinker: A Task-Centric Distributed Framework For Compute-Intensive Divide-and-Conquer Algorithms》上,並且被計算研究協會(CRA)的計算社群聯盟(CCC)評為偉大的新創意之一(https://cra.org/ccc/great-innovative-ideas/t-thinker-a-task-centric-framework-to-revolutionize-big-data-systems-research/,見圖 2)。可以看 YouTube 的小夥伴們的可以戳這裡看 T-thinker 相關的介紹性短影片: https://www.youtube.com/watch?v=3ub2ACLlg6M (見圖 3)。
T-thinker | 繼MapReduce, Apache Spark之後的下一代大資料並行程式設計框架

圖 2:T-thinker 被評為 CCC Great Innovative Idea。T-thinker | 繼MapReduce, Apache Spark之後的下一代大資料並行程式設計框架

圖 3:CCC 早期職業學者研討會上筆者對 T-thinker 的介紹性短影片

從 2020 年開始筆者的研究團隊開始根據 T-thinker 框架開發了一系列大資料探勘系統,均發表在資料庫最頂級的會議及期刊上。第一個系統是 G-thinker,用於解決從大圖上尋找滿足使用者定義的條件的子圖例項的問題,比如數三角形,找高密度子圖(比如對應社交團體)以及子圖匹配。G-thinker 可以透過 https://bit.ly/gthinker 訪問(見圖 4),其開發獲得美國科學基金(NSF),南部大資料中樞(South BD Hub)以及微軟的 Azure 雲平臺的資助。發表的相關論文頂會頂刊雲集,包括:

  • G-thinker: A Distributed Framework for Mining Subgraphs in a Big Graph (ICDE’20)
  • Scalable Mining of Maximal Quasi-Cliques: An Algorithm-System Codesign Approach (PVLDB’20)
  • G-thinker: A General Distributed Framework for Finding Qualified Subgraphs in a Big Graph with Load Balancing (VLDB Journal 2022)
  • Parallel Mining of Large Maximal Quasi-Cliques (VLDB Journal, accepted in 2021)
  • Maximal Directed Quasi-Clique Mining (ICDE’22)

筆者博士生郭桂木(同濟大學碩士)在 G-thinker 研究方面做出了重要貢獻,並於今年(2022)獲得了美國新澤西州 Rowan 大學長聘軌制助理教授的職位。其他博士在讀團隊成員也是頂會頂刊論文雲集,並正不斷著手開發新的基於 T-thinker 框架的資料探勘系統。

T-thinker | 繼MapReduce, Apache Spark之後的下一代大資料並行程式設計框架

圖 4:G-thinker 系統首頁。

第二個基於 T-thinker 框架的系統是 PrefixFPM,用於在事務(transaction)資料庫上挖掘各種頻繁的模式 (pattern),即被超過一定指定數量事務包含的模式。模式的型別由使用者靈活指定,包括 itemset,子樹,子圖,甚至是子矩陣。發表的相關論文也是頂會頂刊雲集,包括:

  • PrefixFPM: A Parallel Framework for General-Purpose Frequent Pattern Mining (ICDE’20)
  • Parallel Mining of Frequent Subtree Patterns (LSGDA@VLDB’20, invited keynote)
  • PrefixFPM: A Parallel Framework for General-Purpose Mining of Frequent and Closed Patterns (VLDB Journal 2022)
  • Mining Order-Preserving Submatrices Under Data Uncertainty: A Possible-World Approach and Efficient Approximation Methods (ACM TODS, accepted in 2022)

頻繁模式挖掘的另一個環境設定是考慮一個單獨的大事務,比如一張大圖或者一個地理空間資料集 (for colocation patterns)。與該環境設定對應的系統筆者的博士生 Lyuheng Yuan(UPenn 碩士)正在如火如荼的開發中,相信不久後就會面世。

第三個基於 T-thinker 框架的系統是 TreeServer,用於構建基於決策樹的各種預測模型,包括 deep forest 這樣的大模型。相關論文《Distributed Task-Based Training of Tree Models》今年在 ICDE’22 上發表。

值得注意的是,T-thinker 系列系統的研究僅僅剛剛開始,而且筆者研究團隊目前還有好多相關係統已經籌劃好排著隊等待開發!相信還有非常多的研究機會等待大家發掘(行動要快喔)!筆者第一個博士生郭桂木(大弟子)在 IEEE BigData 2020 對這個方向有個教程報告(tutorial),您有興趣的話歡迎訪問 https://www.youtube.com/watch?v=uq4CndPj6pY 觀看。希望到這裡我已經說服你來了解下 T-thinker 到底是什麼,以及我們 T-thinker 的相關工作了。

什麼?你是工業界的且對發系統論文不感興趣?別走開啊,注意我們的題目:T-thinker 是繼 MapReduce, Apache Spark 之後的下一代大資料並行程式設計框架!T-thinker 克服了現在資料密集型系統對計算密集型任務的執行低效問題,但是它同樣可以高效支援資料密集型任務!發現了嗎?T-thinker 可能是取代 Spark 等大資料程式設計框架的下一代程式設計模型!注意到沒有,現在大家都用 Spark 已經沒什麼人用過時的 MapReduce 了… 

想不想成為自己公司第一個啟動 T-thinker 程式設計框架專案或者 T-thinker 雲平臺支援的負責人?還等什麼,趕快聽一下下面為時一小時乾貨滿滿的講座,詳細瞭解下 T-thinker 的技術概念吧!

B站地址:https://www.bilibili.com/video/BV1kY411K7eh?spm_id_from=333.337.search-card.all.click&vd_source=1fc6088d81558a0fa23a92505eb9fc28

相關文章