超算安裝GPU-based軟體 (以pytorch為例)

2021-01-08 Pjer

一般的超算的拓撲結構是若干個登陸節點+若干個交換機+大量計算CPU節點+大量GPU計算節點+一個(或若干個)存儲節點+管理節點。

其中存儲節點的共享存儲可以被所有節點訪問。

一般運作方式是,如果我的計算依賴非常共性的軟體,我可以找超算管理員安裝,使用的時候可以通過module load來初始化自己所需軟體。

已有共性軟體如下:

Vasp和Gaussian是算力消耗的大頭,但是超算用戶覆蓋幾十個學院的幾百個方向,不可能面面俱到,把所有人需要的軟體都裝在/opt 也是不現實的。

所以如果我的計算依賴的是比較小眾的軟體,那麼我可以把軟體安裝在共享存儲上,在程序運行的時候可以訪問共享存儲調用相關文件運行。

這裡就會出問題了,安裝軟體的時候我是在登陸節點訪問存儲節點,一般來說登陸節點無需強算力沒有GPU,但是軟體在安裝過程中會通過獲取當前設備的硬體信息來來決定安裝版本,比如PyTorch,在運行

conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch

官方安裝命令的時候,如果本機沒有英偉達GPU,則會默認安裝CPU-only版本的pytorch。

在官方repo下也有一個issue是請求安裝cuda版本但是只裝上了CPU-only版本

雖然已經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進去看看狀態:

還行。

能自己搞定就不麻煩管理員了。

#職人請回答##硬核新知派##有意思博士#

相關焦點

  • Pytorch-GPU1.7.1 和 TensorFlow-GPU1.14.0 安裝指南(基於windows10)
    免費社區版為例。打開 Anaconda Prompt 輸入以下命令,新建一個虛擬環境,Python版本為3.7,並切換到該環境下。命名如下:conda create -n pytorch_gpu python=3.7conda activate pytorch_gpu
  • 深度學習自救指南(一)| Anaconda、PyTorch的下載和安裝
    傳送門:https://www.anaconda.com/products/individual然後根據電腦平臺和python版本選擇對應的安裝包,建議使用python3以上的版本。我的筆記本是Windows10 64位,下面就以這個版本為例~
  • Windows下tensorflow-gpu=1.13.2、torch1.2.0深度學習環境配置
    需要特別注意的問題是版本的對應問題和安裝順序問題一般情況下要考慮的有 tensorflow(或 pytorch)、 cuda、cudnn的版本對應,有時候還需考慮 python可以在管網上:https://www.anaconda.com/distribution/拉到最下面,選擇合適的版本點擊下載 ,這裡以Windows  64位為例
  • 深度學習環境配置指南:Pytorch、TensorFlow、Keras
    (1)官網下載,安裝顯卡驅動:bash NVIDIA-Linux-x86_64-455.23.04.run(2)安裝Anaconda並換源bash Anaconda3-5.2.0-Linux-x86_64.shvim ~/.bashrcexport PATH=/home/XXX/anaconda3/bin:$PATH(XXX為自己的用戶名)(在文件末尾處添加該語句)source ~/.bashrcconda config --add channels https://mirrors.tuna.tsinghua.edu.cn
  • RTX 3090 的深度學習環境配置指南:Pytorch、TensorFlow、Keras
    導讀本文介紹了作者使用RTX3090進行深度學習環境配置pytorch、tensorflow、keras等的詳細過程及代碼。筆者中山大學研究生,醫學生+計科學生的集合體,機器學習愛好者。(1)官網下載,安裝顯卡驅動:bash NVIDIA-Linux-x86_64-455.23.04.run(2)安裝Anaconda並換源
  • 深度學習框架搭建之PyTorch
    https://github.com/OpenNMT/OpenNMT-py聊天機器人(人機互動)  ChatBot:https://github.com/czs0x55aa/pytorch-chatbotDeep Reinforcement Learning:https://github.com/jingweiz/pytorch-rl
  • tensorflow2.1對應 GPU版本的安裝與卸載
    GTX965M顯卡,win10系統一、檢查tensorflow的Version假定tensorflow 安裝完成,安裝 tensorflow 請參考 集成環境,安裝超簡單通過 命令行pythonimport tensorflow
  • Pytorch框架安裝方法(基於Anaconda環境和Pycharm IDE)
    本文介紹基於Anaconda環境以及PyCharm軟體結合,安裝PyTorch深度學習框架。當前面從(base)變為(pytorch)時表示此時已經切換到pytorch房間,隨後正式進入安裝pytorch環節。
  • 在Linux系統中安裝深度學習框架Pytorch
    在上一篇推文最後中,打開新的終端驗證anaconda安裝成功時,會發現命令前面有(base)。2.為PyTorch創建虛擬環境。為pytorch創建一個虛擬環境,這是推薦的做法,這樣在創建其他環境如tensorflow時,就不會互相衝突。
  • 在 Ubuntu 16.04 中安裝支持 CPU 和 GPU 的 Google TensorFlow 神經網絡軟體
    TensorFlow 是用於機器學習任務的開源軟體。
  • 《PyTorch中文手冊》來了
    ,根據 PyTorch 官網,對系統選擇和安裝方式等靈活選擇即可。這裡以 anaconda 為例,簡單的說一下步驟和要點。 國內安裝 anaconda 建議使用清華或者中科大 [http://mirrors.ustc.edu.cn/help/anaconda.html] 鏡像,快的不是一點半點。
  • pytorch常見的坑匯總
    ——————————————————————————好像扯遠了,回歸pytorch,首先讓我比較尷尬的是pytorch並沒有一套屬於自己的數據結構以及數據讀取算法,dataloader個人感覺其實就是類似於tf中的feed,並沒有任何速度以及性能上的提升。先總結一下遇到的坑:1.
  • 【Pytorch】Pytorch多機多卡分布式訓練
    唯一的問題就在於,DataParallel只能滿足一臺機器上gpu的通信,而一臺機器一般只能裝8張卡,對於一些大任務,8張卡就很吃力了,這個時候我們就需要面對多機多卡分布式訓練這個問題了,噩夢開始了。它為每一個子進程劃分出一部分數據集,以避免不同進程之間數據重複。
  • 從零開始:深度學習軟體環境安裝指南
    本文將向你解釋如何在一臺新裝的 Ubuntu 機器上安裝 Python 和 Nvidia 硬體驅動、各類庫和軟體包。為了進行強化學習研究,我最近購置了一臺基於 Ubuntu 和英偉達 GPU 的深度學習機器。儘管目前在網絡中能找到一些環境部署指南,但目前仍然沒有全面的安裝說明。
  • 手把手教你安裝深度學習軟體環境(附代碼)
    因此,本文試圖解決這個問題,提供一個詳盡的軟體環境安裝指南。本文將指導你安裝這些軟體之間的互相依賴關係如下圖所示。其中,你只需要安裝一種深度學習庫,請自由選擇。深度學習軟體安裝和依賴示意圖以下是各個軟體的細節介紹:Ubuntu(v16.04.3)——作業系統,各種任務處理。
  • 教程 | 從頭開始了解PyTorch的簡單實現
    至少,知道多層神經網絡模型可視為由權重連接的節點圖就是有幫助的,你可以基於前向和反向傳播,利用優化過程(如梯度計算)從數據中估計權重。必備知識:該教程假設讀者熟悉 Python 和 NumPy。必備軟體:在運行原 Jupyter Notebook 之前你需要安裝 PyTorch。原 Notebook 有代碼單元格可供驗證你是否做好準備。
  • 專欄 | pytorch入門總結指南(1)
    https://github.com/bharathgs/Awesome-pytorch-list總結內容包括了,github上的各類高星tutorial(其實內容上基本差不多大同小異的),pytorch中文手冊,《deep learning with pytorch》《深度學習框架pytorch快速開發與實戰》,《深度學習入門之torch》以及官方文檔,說老實話
  • PyTorch中使用DistributedDataParallel進行多GPU分布式模型訓練
    使用數據並行模型,情況就更加複雜了:現在訓練腳本的同步副本與訓練集群中的gpu數量一樣多,每個gpu運行在不同的進程中。例如,如果這個腳本要在一個有4個gpu的強大機器上執行,WORLDSIZE應該是4(因為torch.cuda.device_count() == 4),所以是mp.spawn會產生4個不同的進程,它們的等級 分別是0、1、2或3。等級為0的進程被賦予一些額外的職責,因此被稱為主進程。當前進程的等級將作為派生入口點(在本例中為訓練方法)作為其第一個參數傳遞。
  • pytorch實現kaggle貓狗識別(超詳細)
    kaggle是一個為開發商和數據科學家提供舉辦機器學習競賽、託管資料庫、編寫和分享代碼的平臺,在這上面有非常多的好項目、好資源可供機器學習、深度學習愛好者學習之用。碰巧最近入門了一門非常的深度學習框架:pytorch(如果你對pytorch不甚了解,請點擊這裡),所以今天我和大家一起用pytorch實現一個圖像識別領域的入門項目:貓狗圖像識別。
  • 從零開始搭建深度學習伺服器:TensorFlow + PyTorch + Torch
    在深度學習大行其道的今天,我們不應該停留於觀望的階段,我們應該多多上手進行實踐,下面將為大家介紹一下最簡單也是最基礎的內容,配置一個自己的深度學習伺服器.1.最後更新一下:sudo apt-get updatesudo apt-get upgrade另外一個事情是將pip源指向阿里雲的源鏡像:http://mirrors.aliyun.com/help/pypi,具體添加一個 ~/.config/pip/pip.conf 文件,設置為: