Skip to content

建立 2026-09-14 更新 2026-09-14

後端加速

NetworkX 3.0 起,演算法可以在執行期改走第三方實作,這叫 backend dispatch。你的程式仍寫 import networkx as nxnx.betweenness_centrality(G),但計算可能在 GPU 或稀疏線性代數函式庫上完成。

官方沒有認證課程;這件事的權威來源是 Backends 文件 與核心開發者在 PyCon US 2024 的演講。

目前常見後端

名稱 做什麼
nx-cugraph NVIDIA GPU(RAPIDS cuGraph)
GraphBLAS 相關後端 CPU 上的稀疏矩陣加速
nx-parallel 用 joblib 平行化部分演算法
nx-arangodb / nx-neptune 把圖存進圖資料庫或雲端分析服務

後端不必列在官方表上也能運作;表上是 NetworkX 開發團隊已知可用的。

怎麼打開

自動(環境變數,不必改程式):

# 依你的 CUDA 版本安裝,見 RAPIDS 文件
pip install nx-cugraph-cu13 --extra-index-url https://pypi.nvidia.com

接著在執行前打開後端(擇一):

# Linux / macOS
export NX_CUGRAPH_AUTOCONFIG=True
python my_script.py
# Windows cmd
set NX_CUGRAPH_AUTOCONFIG=True
python my_script.py

或在程式裡指定單次呼叫:

import networkx as nx

pr = nx.pagerank(G, backend="cugraph")

backend= 時,該後端必須實作這個函式,失敗不會自動退回純 Python。

也可用 NETWORKX_BACKEND_PRIORITYnx.config.backend_priority 排優先順序。細節見 官方 Tutorial:Using NetworkX backends

什麼時候值得用

  • 節點/邊到了純 Python 明顯變慢的規模(常見是數十萬邊以上,視演算法而定)。
  • 你已經有 NVIDIA GPU,且演算法在 cuGraph 支援清單裡。
  • 想保持 NetworkX API,讓同一份筆記本在筆電(CPU)與工作站(GPU)都能跑。

小圖開 GPU 可能更慢,因為資料搬到顯卡有成本。先用 %time 量過再決定。

官方影音