gpu超算算法_超算安装GPU-based软件 (以pytorch为例)
一般的超算的拓撲結構是若干個登陸節點+若干個交換機+大量計算CPU節點+大量GPU計算節點+一個(或若干個)存儲節點+管理節點。
其中存儲節點的共享存儲可以被所有節點訪問。
一般運作方式是,如果我的計算依賴非常共性的軟件,我可以找超算管理員安裝,使用的時候可以通過module load來初始化自己所需軟件。
我校瀚海20上已有共性軟件如下:
Vasp和Gaussian是算力消耗的大頭,但是超算用戶覆蓋幾十個學院的幾百個方向,不可能面面俱到,把所有人需要的軟件都裝在/opt 也是不現實的。
所以如果我的計算依賴的是比較小眾的軟件,那么我可以把軟件安裝在共享存儲上,在程序運行的時候可以訪問共享存儲調用相關文件運行。
這里就會出問題了,安裝軟件的時候我是在登陸節點訪問存儲節點,一般來說登陸節點無需強算力沒有GPU,但是軟件在安裝過程中會通過獲取當前設備的硬件信息來來決定安裝版本,比如PyTorch,在運行
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch
官方安裝命令的時候,如果本機沒有英偉達GPU,則會默認安裝CPU-only版本的pytorch。
在官方repo下也有一個issue是請求安裝cuda版本但是只裝上了CPU-only版本
雖然這個issue的狀態已經是'closed',但是我仍然遇到了類似的問題:
猜測是安裝過程中通過硬件來決定版本,而且在安裝命令中無法強制聲明安裝cuda版本的pytorch而非CPU-only版本。
思來想去,想出一個辦法,重新開個新的env,提交一個“計算”任務,申請一個cpu線程,一張顯卡,來運行安裝程序。
以下是slurm提交“算例”的腳本:
#!/bin/sh
# script for software install
#SBATCH -J torch_install
#SBATCH -o job-%j.log
#SBATCH -e job-%j.err
#SBATCH -N 1 --ntasks-per-node=1 -p GPU-V100 --gres=gpu:v100:1
echo Time is `date`
echo Directory is $PWD
echo This job runs on the following nodes:
echo $SLURM_JOB_NODELIST
echo This job has allocated $SLURM_JOB_CPUS_PER_NODE cpu cores.
source /home/ess/pjzhang/conda_start.sh
conda create --name torch15gpu
conda activate torch15gpu
# activate the enviroment
module load cuda/10.2.89
# load cuda env
conda install pytorch==1.5.0 cudatoolkit=10.2 -c pytorch
# install GPU-based dependency
echo End at `date`
# for the measure of the running time of the
安裝花不了多長時間,而且只用一核,所以機時費可以忽略不計 (四舍五入不要錢)。
這樣conda install pytorch的時候就可以檢測到GPU就可以安裝正常版本了。
然后就可以運行真正的算例了,提交之后隨便找個節點login進去看看狀態:
還行,跑上了。
能自己搞定的事兒就不麻煩管理員了。
=========
其他創作的分類整理:
參考
總結
以上是生活随笔為你收集整理的gpu超算算法_超算安装GPU-based软件 (以pytorch为例)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 建设一个网站怎么赚钱(建设一个网站怎么赚
- 下一篇: 苹果电脑DNS怎么编辑(苹果电脑dns怎