作為電子計算機系統中一個非常重要的協處理器,GPU從1990年代第一次出現以來,就一直在專職負責圖形渲染和處理的相關工作。然而隨著時間的推移,技術和需求的不斷變化,GPU已經逐漸走出了這種定位。特別是近幾年,憑借突出的并行運算能力和高性能的內存使用效率,GPU已經被廣泛應用于高級實驗室仿真和深度學習編程等諸多的需要高強度運算的非圖形處理領域。
MIT計算機科學和人工智能實驗室(CSAIL)的前任研究員Todd Mostak就將GPU應用在了數據庫領域。他將傳統數據庫管理系統中的運算核心——CPU替換為GPU,研發出了一種全新的分析型數據庫和一個基于地理位置可視化的數據管理平臺,名為MapD。
據Todd Mostak介紹,MapD一共有兩大特點。一是運算速度快:MapD可以在1毫秒的時間內處理數以億計的數據點(data points),相比傳統的數據庫管理系統快了100倍。二是可視化:正如名稱里“Map”(地圖)所表達的,MapD可以實時地將所有處理過的數據點以地理信息圖表的方式展現出來,例如在世界地圖上標記出當前的Twitter話題活躍度(如下圖所示,這里是MapD系統一個名為 Tweetmap 的實現樣例)。
自從去年3月份發布第一個商用版本以來,MapD以GPU高速管理數據庫的方式已被各行業的用戶廣泛接受,目前包括Verizon等美國電信巨頭,以及媒體、財經和廣告業的各大公司都是MapD的忠實用戶。甚至在今年10月,專門為美國中央情報局(CIA)服務的風險投資公司In-Q-Tel也投資了MapD,宣稱他們需要MapD為美國情報系統研發具有特定數據處理能力的版本。
Todd Mostak表示:“CIA掌握著大量的地理空間數據,他們需要對這些數據進行有效的組織、可視化以及實時查詢。對于情報系統來說,這幾乎是一種剛需。”
將GPU作為真正的處理核心
一般來說,GPU是專為并行計算而設計的專用協處理器,通常其內部都集成了數千個高速運算核心,可以并行處理計算機屏幕上每個像素點的單獨顯色以渲染整個圖像。并且,由于GPU通常都可以直接搭配高帶寬存儲器協同工作,因此通常都比使用一般RAM的CPU的運算速度快一個數量級。
目前,雖然一些數據庫已經使用了GPU,但他們普遍存在一個重要的設計缺陷。Todd Mostak表示:“目前大部分的數據庫管理方案都是將數據庫存儲在CPU一側,當接到用戶的數據請求時,再將數據搬移到GPU一側進行處理,然后再將處理結果移回CPU進行存儲。也就是說,GPU并非真正的系統核心。這種機制決定了:即使你通過GPU加快了數據處理速度,但把處理結果搬回CPU的過程仍然浪費了太多時間。”
與此不同的是,Todd Mostak將GPU作為了MapD系統的真正核心。MapD并沒有像傳統系統那樣將數據全部存儲在CPU一側,而是利用高速緩存機制將盡量多的數據直接存儲在多內核協同工作的GPU一側,這樣一來就避免了數據搬移過程中浪費的大量時間,大大提升了運算效率。
在MapD系統中,每個GPU都有自己的緩沖池,即利用高速緩存機制將最常訪問的數據直接存儲在GPU一側,而不再是硬盤。這樣一來,在數據庫需要反復查詢同一個數據點時(這種場景在實際應用中非常常見),MapD就可以直接從GPU一側的高帶寬存儲器中直接訪問數據,而不是從CPU或硬盤。
Todd Mostak表示,通過這種機制,MapD可以提供相比傳統數據庫管理系統快兩到三個數量級的性能。
強大的數據處理能力
MapD曾分析過一個被認為是大規模數據分析能力基準測試的龐大數據集合,即高達12億條數據記錄的紐約市出租車數據集。通過一家第三方測試機構的測試,MapD的運行速度比許多先進的CPU數據庫管理系統快74倍,許多數據查詢任務甚至能夠在毫秒內完成。(如上圖所示為紐約市出租車數據集合的分析截圖)
在其他示例中,MapD的表現也同樣出色。例如,通過“Tweetmap”,用戶可以搜索所有Twitter上的熱門話題,并查看這些話題在世界各地實時的地理位置分布。在另一幅美國地圖中,用戶還可以通過MapD查看2001年以來美國所有的政治捐款,并以不同顏色標明不同的政黨(例如紅色代表共和黨,藍色代表民主黨)。
總體上說,不同行業的客戶對MapD系統的具體需求也不同,但本質都是通過其高速的數據處理能力和基于地理位置的展示能力協助他們做出合理的商業決策。例如金融服務機構和對沖基金可以通過該系統來監控欺詐行為和做出投資決策;廣告代理商們可以通過該系統來評估客戶們對各種廣告的不同反饋; 社交媒體公司則可以通過該系統追蹤全球用戶的使用情況。
美國電信巨頭Verizon也是MapD的用戶之一,他們每周都會利用MapD系統對8500萬用戶更換SIM卡的行為展開分析。此前在使用傳統的數據庫管理系統時,這種分析通常要耗費好幾個小時,因為效率太低,因此只能好幾個月分析一次。近期,Verizon就通過MapD系統的每周分析報告發現了一個隱藏多年的Bug,這一Bug導致每年有上百萬次無意義的SIM卡更換,不但大大浪費了服務資源,更造成了用戶的反感。
Todd Mostak說:“MapD這次可幫Verizon省了一大筆錢,但更重要的在于用戶體驗的提升,因為通常來說,頻繁地更換SIM卡畢竟不是什么值得高興的事。”
從論文寫作到MapD
研發MapD系統的最初想法來自于2012年,那時Todd Mostak正在哈佛大學寫他的政治學碩士論文,過程中需要查詢大量的歷史資料。
使用以CPU作為處理核心的數據庫系統做這些資料查詢顯然不是一件輕松愉快的工作。很多次,Todd Mostak在睡覺之前敲入一個查詢命令,結果第二天醒來發現系統提示參數輸入錯誤,這種酸爽的用戶體驗簡直讓人崩潰。按照Todd Mostak的原話來說就是:“那是一個令人沮喪的經歷。”
恰好,當時Todd Mostak選修了由MIT數據庫研發組教授的CSAIL數據庫課程。當時的授課教師有兩位:一位是數據庫領域的布道者Michael Stonebraker,他是MIT計算機科學的兼職教授,創立了Postgres、Ingres和Vertica等諸多流行的數據庫系統;另一位是Sam Madden,他是MIT電氣工程和計算機科學的教授,現在是MapD的特聘顧問。
為了加快論文進度,Todd Mostak通過自己在CSAIL數據庫課程中學到的知識,自己研發了一個簡易的數據庫系統,也就是MapD的早期雛形。這一系統當時令CSAIL數據庫課程的導師們印象深刻,當然也大大加快了Todd Mostak的論文進度。2013年,在論文最終順利通過之后,導師們邀請Todd Mostak以研究員的身份加入CSAIL,進一步完善MapD。
在Sam Madden導師的鼓勵下,Todd Mostak開始在MIT的工業聯絡計劃(ILP)中公開展示MapD。那時開始有公司找到Todd Mostak,并表示愿意出高價購買他的研究成果。Todd Mostak說:“當時,我對他們說這只是一個純粹的學術研究項目。雖然并沒有出售,但這件事開始讓我思考一個更普遍的問題,即如何實時地從大數據中獲取有效信息。”
2014年1月,Todd Mostak正式推出了MapD系統,并加入了ILP計劃中的初創公司社區,在那里可以與其他眾多MIT附屬的初創公司建立聯系或者合作,從那時開始Todd Mostak打算把MapD系統與地圖結合起來,以可視化的方式展示信息。
此后,成立于馬薩諸塞州劍橋的MapD開始逐漸步入正軌。2014年3月,MapD在Nvidia舉辦的一場初創公司大數據計算比賽中贏得了10萬美元獎金(現在Nvidia已經成為了MapD的合作伙伴)。當年秋天,MapD又從Nvidia和Google那里獲得了200萬美元的種子輪融資,2015年又獲得了1000萬美元的A輪融資。
現在,MapD已經在舊金山新總部展開了新一輪的擴張。在越來越多的企業開始通過云端啟用GPU編程的大趨勢下,MapD希望在舊金山收獲更多的客戶。Todd Mostak表示:“我相信在舊金山我們能收獲更多的用戶,我甚至覺得MapD才剛剛成立。”