碼農福音:一個專門開發高性能大數據代碼的系統「開源了」
賴斯大學的科研團隊將在本周的 SIGMOD 數據管理國際大會上推介 PlinyCompute。
每個精疲力竭的程序員都竭力在 Spark 之類的‘大數據’平臺上實現復雜的對象和工作流程,心里想‘有沒有一種更好的方法?’美國國防高級研究計劃局(DARPA)資助的賴斯大學 Pliny 項目的計算機科學家們認為,他們現已有了解決之道,有望為程序員們帶來福音。
PlinyCompute 的 logo
賴斯大學的 PlinyCompute 將于周四在 2018 年 ACM SIGMOD 大會上公布。該團隊在同行評審的大會論文(https://dl.acm.org/citation.cfm?id=3196933)中介紹 PlinyCompute 是“一種專門用于開發高性能大數據代碼的系統”。
賴斯大學領導開發該平臺的計算機科學教授克里斯·杰梅恩(Chris Jermaine)表示,與 Spark 一樣,PlinyCompute 力求易于使用、用途廣泛。與 Spark 不一樣,PlinyCompute 旨在支持以前只有超級計算機或高性能計算機(HPC)才能實現的強大計算。
杰梅恩說:“借助機器學習,尤其是借助深度學習,人們看到了復雜的分析算法應用于大數據時可以做些什么。從《財富》500 強企業高管到神經科學研究人員,每個人都在渴求越來越復雜的算法,而如今系統程序員滿足這個要求的辦法基本上差強人意。雖然 HPC 能提供這種性能,但要花好幾年才能學會為 HPC 編寫代碼;也許更糟糕的是,可能要花好幾天才能用 Spark 創建的工具或庫可能需要好幾個月才能在 HPC 上編程。”
他說:“Spark 是為大數據構建的,它支持 HPC 無法支持的特性,比如簡易的負載均衡、容錯和資源分配,這對于數據密集型任務來說絕對必不可少。由于這個,又由于開發時間比 HPC 短得多,人們在構建可以在 Spark 上運行的新工具,用于處理機器學習和圖形分析等復雜任務。”
鄒佳(Jia Zou)是賴斯大學的研究科學家兼描述 PlinyCompute 的 ACM SIGMOD 論文的***作者,她表示,由于 Spark 在設計當初并未考慮到復雜計算,所以它的計算性能只能提升到目前這個地步。
鄒佳在 2015 年進入賴斯大學之前已在 IBM 研究中國院研究了六年的大規模分析和數據管理系統,她說:“Spark 建立在 Java 虛擬機即 JVM 的基礎上,JVM 負責管理運行時環境,并將關于內存管理的大部分細節抽取出來。Spark 依賴 JVM,因此其性能受到了影響,尤其是像訓練深度神經網絡搞深度學習這些任務對計算的需求上升后,更是如此。”
賴斯大學的計算機科學家克里斯·杰梅恩領導 PlinyCompute 項目
鄒說:“PlinyCompute 不一樣,因為它完全是為高性能而設計的。我們在基準測試中發現,PlinyCompute 的速度至少是 Spark 的兩倍;在一些情況下,實現復雜對象處理和庫式計算的速度比 Spark 快 50 倍。”
她表示,測試已表明,PlinyCompute 在構建高性能工具和庫方面比同類工具更勝一籌。
杰梅恩表示,不是所有的程序員都會覺得為 PlinyCompute 編寫代碼很容易。與 Spark 所需的基于 Java 的編碼不同,PlinyCompute 庫和模型必須用 C ++ 編寫。
杰梅恩說:“PlinyCompute 具有更大的靈活性。對于 C ++ 方面經驗和知識相對缺乏的人來說,這可能是一個挑戰,但我們還對完成各種實現所需的代碼行數進行了一番橫向比較。結果發現,在大多數情況下,PlinyCompute 和 Spark 之間沒有顯著差異。”
賴斯大學的研究科學家鄒佳是介紹 PlinyCompute 的同行評審的新論文的***作者
Pliny 項目于 2014 年啟動,這個 DARPA 資助的項目拿到了 1100 萬美元款項,致力于開發先進的編程工具,從而能夠為程序員們“自動完成代碼”和“自動糾正代碼”,就像軟件在 Web 瀏覽器和智能手機上完成搜索查詢、糾正拼寫那樣。Pliny 使用機器學習來讀取數十億行的開源計算機程序,并從中學習;杰梅恩表示,PlinyCompute 脫胎于這個項目。
他說:“這是一種計算復雜的機器學習應用,實際上沒有一個好的工具來構建它。我們一開始就認識到,PlinyCompute 這種工具可以用來解決遠比我們用 Pliny 項目來解決的問題廣泛得多的問題。”
想了解安裝及部署信息、API、FAQ 和教程等更多信息,請訪問 plinycompute.rice.edu。
這項研究還得到了國家科學基金會(NSF)的支持。
PlinyCompute SIGMOD 論文的其他作者包括:Matthew Barnett、Tania Lorido-Botran、Shangyu Luo、Carlos Monroy、Sourav Sikdar、Kia Teymourian 和 Binhang Yuan,他們都來自賴斯大學。
賴斯大學的 PlinyCompute 團隊包括(從左往右):Shangyu Luo、Sourav Sikdar、Jia Zou、 Tania Lorido、Binhang Yuan、Jessica Yu、Chris Jermaine、Carlos Monroy、Dimitrije Jankov 和 Matt Barnett。