A. NetworkX和Graphscope哪個運算速度更快
近年來,全球大數據進入加速發展時期,數據量呈現指數級爆發式增長,而這些大量數據中不同個體間交互產生的數據以圖的形式表現,如何高效地處理這些圖數據成為了業界及其關心的問題。很過用普通關系數據無法跑出來的結果,用圖數據進行關聯分析會顯得異常高效。
提到處理圖數據,我們首先想到NetworkX,這是網路計算上常用的Python包,可提供靈活的圖構建、分析功能。但是我們使用NetworkX跑大規模圖數據時,不僅經常碰到內存不足的問題,而且分析速度很慢,究其原因,是NetworkX只支持單機運行。通過網上搜索,新發現了一個名為GraphScope的系統不僅號稱兼容NetworkX的API,而且支持分布式部署運行,性能更優。針對GraphScope和NetworkX的處理能力,我們參考圖計算中常用的測試框架LDBC,通過一組實驗來對比下二者的性能。
一、實驗介紹
為了比較兩者的計算效率,先用阿里雲拉起了配置為8核CPU,32GB內存的四台ECS,設計了三組比較實驗,分別是NetworkX單機下的計算性能,GraphScope單機多worker的計算性能以及GraphScope分布式多機多worer的計算性能。
數據上,我們選取了SNAP開源的圖數據集twitter,來自 LDBC數據集的datagen-7_5-fb,datagen-7_7-zf和datagen-8_0-fb作為實驗數據,以下是數據集的基本信息:
· Twitter: 81,307個頂點,1,768,135條邊
· Datagen-7_5-fb: 633,432個頂點,34,185,747條邊,稠密圖
· Datagen-7_7-zf: 13,180,508個頂點,32,791,267條邊,稀疏圖
· Datagen-8_0-fb: 1,706,561個頂點,107,507,376條邊,這個數據集主要測試兩個系統可處理的圖規模能力
實驗設計上我選擇常用的SSSP、BFS、PageRank、WCC演算法,以及較高復雜度的All Pair shortest Path length演算法,以載圖時間,內存佔用和計算時間這三個指標為依據,對兩個系統進行計算性能的比較。
NetworkX是一個單機系統,在實驗中只考慮NetworkX在單機環境下的運行時間;GraphScope支持分布式運行,故進行兩個配置,一個是單機4worker,另外一個配置是4台機器,每台機器4個worker。
二、實驗結果
首先,GraphScope的載圖速度比NetworkX顯著提升。
在前三個圖數據集中,無論是GraphScope的單機多worker模式,還是GraphScope的分布式模式,載圖速度都比NetworkX快:
GraphScope單機模式載圖速度平均比NetworkX快5倍,最高紀錄——在datagen-7_5-fb上比NetworkX快了6倍。
分布式模式下GraphScope的載圖時間比NetworkX平均快了27倍,最高紀錄——在datagen-7_7-zf數據集上比NetworkX快了63倍。
在datagen-8_0-fb數據集上,NetworkX因內存溢出無法載圖,GraphScope單機多worker和GraphScope分布式載圖時間分別為142秒和13.6秒。
————————————————
版權聲明:本文為CSDN博主「6979阿強」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/tanekf6979/article/details/120067176