後端加速
NetworkX 3.0 起,演算法可以在執行期改走第三方實作,這叫 backend dispatch。你的程式仍寫 import networkx as nx 與 nx.betweenness_centrality(G),但計算可能在 GPU 或稀疏線性代數函式庫上完成。
官方沒有認證課程;這件事的權威來源是 Backends 文件 與核心開發者在 PyCon US 2024 的演講。
目前常見後端
| 名稱 | 做什麼 |
|---|---|
nx-cugraph |
NVIDIA GPU(RAPIDS cuGraph) |
| GraphBLAS 相關後端 | CPU 上的稀疏矩陣加速 |
nx-parallel |
用 joblib 平行化部分演算法 |
nx-arangodb / nx-neptune |
把圖存進圖資料庫或雲端分析服務 |
後端不必列在官方表上也能運作;表上是 NetworkX 開發團隊已知可用的。
怎麼打開
自動(環境變數,不必改程式):
接著在執行前打開後端(擇一):
或在程式裡指定單次呼叫:
用 backend= 時,該後端必須實作這個函式,失敗不會自動退回純 Python。
也可用 NETWORKX_BACKEND_PRIORITY 或 nx.config.backend_priority 排優先順序。細節見 官方 Tutorial:Using NetworkX backends。
什麼時候值得用
- 節點/邊到了純 Python 明顯變慢的規模(常見是數十萬邊以上,視演算法而定)。
- 你已經有 NVIDIA GPU,且演算法在 cuGraph 支援清單裡。
- 想保持 NetworkX API,讓同一份筆記本在筆電(CPU)與工作站(GPU)都能跑。
小圖開 GPU 可能更慢,因為資料搬到顯卡有成本。先用 %time 量過再決定。
官方影音
- NetworkX is Fast Now(PyCon US 2024):核心開發者 Mridul Seth 與 Erik Welch 講 dispatch 設計。
- NVIDIA:Accelerated Graph Analytics with NetworkX:原廠示範
nx-cugraph。