開源項目網址:https://github.com/FIGRET/figret
該項目在SIGCOMM2024發表,用深度學習方法處理流量工程中的突發問題
1. 創建新的 Conda 環境
使用國內鏡像源創建環境?
conda create -n figret python=3.8.0 --override-channels -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
2. 激活環境
conda activate figret
激活后,終端提示符會顯示 (figret)
,表示已進入該環境。
3. 安裝 PyTorch 及相關庫
(1) 根據 CUDA 版本安裝 PyTorch
首先檢查服務器的 CUDA 版本:
nvcc --version # 查看 CUDA 工具包版本(例如 11.8 或 12.1)
nvidia-smi # 查看驅動支持的最高 CUDA 版本
根據 CUDA 版本選擇 PyTorch 安裝命令:
- CUDA 11.8:
查看CUDA版本
(figret) antl@antl-node11:~$ nvcc --version
顯示CUDA11.4,PyTorch 官方對 CUDA 11.4 的支持截至 ?1.12.1?(2022年7月)
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 \
--extra-index-url https://download.pytorch.org/whl/cu113
驗證pytorch
(2) 安裝 torch-scatter
和 torch-sparse
命令行安裝會出現找不到版本的問題,這里需要訪問以下網址手動安裝:
https://data.pyg.org/whl/torch-1.12.1%2Bcu113.html
進入whl所在文件夾手動安裝
pip install torch_scatter-2.0.9-cp38-cp38-linux_x86_64.whl
pip install torch_sparse-0.6.14-cp38-cp38-linux_x86_64.whl
驗證是否配置成功
import torch
from torch_scatter import scatter_add
from torch_sparse import SparseTensorprint(scatter_add) # 輸出函數地址
print(SparseTensor) # 輸出類地址
4. 安裝其他依賴包
# 進入 FIGRET 項目目錄(假設 requirements.txt 在項目根目錄)
cd /path/to/figret_project# 安裝依賴包
pip install -r requirements.txt
5. 安裝 Gurobi 求解器
(1) 下載并安裝 Gurobi
下載地址:https://www.gurobi.com/downloads/gurobi-software/
# 解壓到 /opt(需要 sudo 權限)
#注意gurobi11.0.3是下載的版本
sudo tar -xvzf gurobi11.0.3_linux64.tar.gz -C /opt# 添加環境變量
echo "export GUROBI_HOME=/opt/gurobi1102/linux64" >> ~/.bashrc
echo "export PATH=${PATH}:${GUROBI_HOME}/bin" >> ~/.bashrc
echo "export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GUROBI_HOME}/lib" >> ~/.bashrc
source ~/.bashrc
注意環境變量是在主環境配置的,可以作用于所有環境
(2) 申請學術許可證
-
訪問 Gurobi 學術許可頁面,注冊并獲取許可證密鑰。
這里如果校園網網址無法被自動解析為校園網,需要發郵件申請
申請流程非常快,筆者這邊僅5分鐘就收到了回信 -
在服務器上運行以下命令激活許可證:
cd $GUROBI_HOME/binsudo ./grbgetkey 密鑰
6. 驗證環境
回到figret環境
conda activate figret
運行開源項目:
python3 figret.py --topo_name Facebook_pod_a --epochs 3 --batch_size 32 --alpha 0.03
運行正常