最近在用并行超算云GPU服务器(中国国家网格12区)搭建毕设的环境,这里记录一下。

首先,超算云服务器的登录可以采用网页版、也可以采用客户端(超算云地址:https://cloud.paratera.com/ )。需要注意的是,并行超算云只提供windows和mac的客户端,Linux用户可能只有使用网页版的界面了(或者用pappcloud直接远程练ssh用vim写:( 哈哈,pappcloud的用法可参见官网下载的《papp_cloud使用手册》)。

超算云上最常见的是用module进行包管理(文档:https://modules.readthedocs.io/en/latest/module.html)。我们可以用module avail命令来查看现有的包:

[macong@paratera01 ~]$ module avail 

------------------------- /usr/share/Modules/modulefiles -------------------------
dot module-git module-info modules null use.own -------------------------------- /etc/modulefiles --------------------------------
mpi/compat-openmpi16-x86_64 mpi/mpich-x86_64
mpi/mpich-3.0-x86_64 mpi/openmpi-x86_64
mpi/mpich-3.2-x86_64 ----------------------------- /software/modulefiles ------------------------------
alphafold/2.0
anaconda/2.7
anaconda/3.7(default)
anaconda/3.7.4
bcftools/1.10.1

具体新建环境相关操作大家可以参见module的文档,此处不再赘述。大家需要注意的是,因为Pytorch和Tensorflow对应的CUDA版本有出入,我们建议Pytorch和Tensorflow分别装两个不同的环境。

然后根据下列不同的命令对Pytorch和Tensorflow进行装载。

1. Pytorch环境装载与测试

Pytorch 1.9.0 环境装载:

[macong@paratera01 project]$ module load anaconda/3.7.4(tensflow)
[macong@paratera01 project]$ source activate torch
(torch) [macong@paratera01 project]$

可以查看此时的torch版本:

(torch) [macong@paratera01 ~]$ pip list |grep torch
torch 1.9.0+cu111
torchvision 0.10.0+cu111

接下来我们编写test_torch.py测试文件:

# test_torch.py
import torch
print(torch.cuda.is_available())

采用以下的sub_torch.sh脚本提交到GPU运算节点运行(注意,提交脚本里面一定要有装载环境操作(在计算节点装载),在用户节点里装载环境没用(用户节点只能用于安装依赖包))

#!/bin/bash
#SBATCH -N 1
#SBATCH -n 5
#SBATCH -p gpu
#SBATCH --gres=gpu:1
#SBATCH --no-requeue
module load anaconda/3.7.4
source activate torch
export PYTHONUNBUFFERED=1
python test_torch.py

提交命令为

sbatch sub_torch.sh

(注意,不是bash sub_torch.sh,bash不能提交到计算节点)

用squeue查看队列情况

[macong@paratera01 project]$ squeue
CLUSTER: priv
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) CLUSTER: swarm
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
16601003 gpu sub_tens macong R INVALID 1 g0002

一段时间后,查看同目录下的slurm-16601003.out输出文件,我们看到

True

说明Pytorch环境配置成功。

2. Tensorflow 2.5.1 环境装载与测试:

Tensorflow 2.5.1 环境装载:

[macong@paratera01 project]$ module load anaconda/3.7.4
[macong@paratera01 project]$ export LD_LIBRARY_PATH=/home/macong/project/cuda/lib64:$LD_LIBRARY_PATH
[macong@paratera01 project]$ source activate tensflow
(tensflow) [macong@paratera01 project]$

加载完毕后,可以查看此时的tensorflow版本

(tensflow) [macong@paratera01 project]$ pip list |grep tensorflow
tensorflow-estimator 2.4.0
tensorflow-gpu 2.4.1

接下来我们编写以下test_tensorflow.py文件:

# test_tensorflow.py
import tensorflow as tf
print(tf.test.is_gpu_available())

采用以下的sub_tensorflow.sh脚本提交到GPU运算节点运行(同样地,提交脚本里面一定要有装载环境操作。另外注意,因为Tensorflow需要cudnn,这里要额外地增加cuda动态链接库的加载地址)

#!/bin/bash
#SBATCH -N 1
#SBATCH -n 5
#SBATCH -p gpu
#SBATCH --gres=gpu:1
#SBATCH --no-requeue
module load anaconda/3.7.4
export LD_LIBRARY_PATH=/home/macong/project/cuda/lib64:$LD_LIBRARY_PATH
source activate tensflow
export PYTHONUNBUFFERED=1
python test_tensorflow.py

提交命令为

sbatch sub_tensorflow.sh

输出显示

job 16601097 on cluster swarm

同样,我们可以用squeue查看队列情况

[macong@paratera01 project]$ squeue
CLUSTER: priv
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) CLUSTER: swarm
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
16601097 gpu sub_tens macong R INVALID 1 g0039

一段时间后,查看同目录下的slurm-16601097.out输出文件,我们看到一长串打印输出

2021-11-28 15:29:22.848812: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0
WARNING:tensorflow:From test_tensorflow.py:2: is_gpu_available (from tensorflow.python.framework.test_util) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.config.list_physical_devices('GPU')` instead.
2021-11-28 15:30:04.558903: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2021-11-28 15:30:04.592168: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set
2021-11-28 15:30:04.596694: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcuda.so.1
2021-11-28 15:30:04.736951: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 0 with properties:
pciBusID: 0000:84:00.0 name: Tesla V100-SXM2-16GB computeCapability: 7.0
coreClock: 1.53GHz coreCount: 80 deviceMemorySize: 15.78GiB deviceMemoryBandwidth: 836.37GiB/s
2021-11-28 15:30:04.737540: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0
2021-11-28 15:30:05.810351: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublas.so.11
2021-11-28 15:30:05.810525: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublasLt.so.11
2021-11-28 15:30:06.033285: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcufft.so.10
2021-11-28 15:30:06.193055: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcurand.so.10
2021-11-28 15:30:06.630374: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusolver.so.10
2021-11-28 15:30:06.820341: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusparse.so.11
2021-11-28 15:30:06.847036: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudnn.so.8
2021-11-28 15:30:06.850769: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1862] Adding visible gpu devices: 0
2021-11-28 15:30:06.850852: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0
2021-11-28 15:30:09.592923: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1261] Device interconnect StreamExecutor with strength 1 edge matrix:
2021-11-28 15:30:09.593017: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1267] 0
2021-11-28 15:30:09.593043: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1280] 0: N
2021-11-28 15:30:09.628099: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1406] Created TensorFlow device (/device:GPU:0 with 14761 MB memory) -> physical GPU (device: 0, name: Tesla V100-SXM2-16GB, pci bus id: 0000:84:00.0, compute capability: 7.0)
True

当然,我们只需要关注最后一行的“True”,说明Tensorflow环境配置成功。

3. 常用命令:

(1) squeue

squeue可用于查看当前的任务队列信息,如之前我们看到的:

[macong@paratera01 project]$ squeue
CLUSTER: priv
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) CLUSTER: swarm
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
16601097 gpu sub_tens macong R INVALID 1 g0039

(2) scancel

scancel+任务id可用于将正在运行的任务杀掉,如杀掉正在运行的16601167任务

scancel  16601167

对应的slurm-16601167.out文件中会显示:

slurmstepd: error: *** JOB 16601167 ON g0011 CANCELLED AT 2021-11-28T10:10:00 ***

更多命令可详见官网《中国国家网格12区用户手册v2.4》

超算云(GPU服务器)环境配置的更多相关文章

  1. 阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装

    阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装 最近琢磨着想在服务器上搭建一个hexo博客,于是就在阿里云上买了一个云服务器ECS,远程接入后默认给的是一个命令窗口,没有图形界面, ...

  2. GPU 服务器环境安装中一些基础note

    GPU 服务器环境安装中一些基础note GPU 服务器: 添加组,用户,并为之新建主目录. c302@c302-dl:~$ sudo addgroup testgroup Adding group ...

  3. 阿里云ECS服务器环境搭建(1) —— ubuntu 16.04 图形界面的安装

    阿里云ECS服务器环境搭建(1) —— ubuntu 16.04 图形界面的安装1. 背景在我们购买阿里云ECS服务器之后,默认的系统环境是很干净的,我购买的是ubuntu16.04,远程登录进入之后 ...

  4. laravel5.8笔记一:安装与服务器环境配置

    laravel版本:5.8 环境要求: PHP >= 7.1.3 OpenSSL PHP 扩展 PDO PHP 扩展 Mbstring PHP 扩展 Tokenizer PHP 扩展 XML P ...

  5. LNMP(linux+nginx+mysql+php)服务器环境配置【转载】

    本文转载自 园友David_Tang的博客,如有侵权请联系本人及时删除,原文地址: http://www.cnblogs.com/mchina/archive/2012/05/17/2507102.h ...

  6. linux--->阿里云centos6.9环境配置安装lnmp

    阿里云centos6.9环境配置安装lnmp mysql安装 本人博客:http://www.cnblogs.com/frankltf/p/8615418.html PHP安装 1.安装依赖关系 yu ...

  7. Ubuntu 下 Apache2 和 PHP 服务器环境配置

    Ubuntu 下 Apache2 和 PHP 服务器环境配置 1.简介 本文主要是 Ubuntu 下 Apache2 和 PHP 服务器环境配置方法,同样适用于 Debian 系统:Ubuntu 20 ...

  8. 零基础建站如何配置PHP运行环境 几种服务器环境配置的选择和方法

    上次给大家分享了小白建站如何选择虚拟空间及服务器,及购买域名的基础知识,这些是硬性要求,你的网站要想运行起来,硬件只是基础,真正的技术是软件,关于PHP软件开发技术,后面我们会慢慢的分享给大家,今天主 ...

  9. 阿里云ECS服务器相关配置以及操作---上(初学者)

    最近买了一台阿里云的ECS服务器 linux系统 centos镜像,把我相关的一些操作记录下来,供大家参考,不足之处欢迎指正. 首先买的过程就不用介绍了,根据自己的实际需要选择自己想要的配置,点击付钱 ...

随机推荐

  1. 高效动画实现原理-Jetpack Compose 初探索

    一.简介 Jetpack Compose是Google推出的用于构建原生界面的新Android 工具包,它可简化并加快 Android上的界面开发.Jetpack Compose是一个声明式的UI框架 ...

  2. UI BLOCK自定义枚举控件的宽度

    三步: 1.修改PresentationStyle属性为Radio Box 2.修改NumberOfColumns属性为指定的宽度(显示字符的个数) 3.将PresentationStyle属性改回O ...

  3. 使用寄存器点亮LED

    1. 项目:使用stm32寄存器点亮LED, 分别点亮红.绿.蓝3个灯. 2. 代码: 只需要编写main.c程序,stm3210x.h程序为空(只需要新建即可). 2.1 点亮绿灯main.c程序 ...

  4. T-SQL——关于XML类型

    目录 0. 将结果集转化为XML格式 1. 列值拼接为字符串 2. 字符串转换为列值 3. 一些说明 参考 志铭-2021年10月23日 10:43:21 0. 将结果集转化为XML格式 测试数据 I ...

  5. python反序列化1(__reduce__)

    part1:不求甚解的复现 对于服务端源码:    编写恶意序列化对象生成程序: 将生成的恶意序列化对象输入服务端user,使其执行系统命令.(上面那俩其实都行) part2:原理解释 b'xxx'是 ...

  6. 【UE4 设计模式】状态模式 State Pattern

    概述 描述 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类. 其别名为状态对象(Objects for States),状态模式是一种对象行为型模式. 有限状态机(FSMs) ...

  7. 如何访问位于内网的Ubuntu主机

    如何访问位于内网的Ubuntu主机 内网主机为Ubuntu桌面版 内网主机Ubuntu字符串界面版 SSH远程主机管理工具推荐 SSH远程文件访问工具推荐 如何访问位于内网的Ubuntu主机 内网主机 ...

  8. Beta_Scrum Meeting_0

    日期:2021年5月26日 参会人员:cy.hcc.lsc.dxh 会议主题:为Beta阶段最早两日的开发制定目标 一.进度情况 组员 负责 两日内完成的任务 接下来两日预计完成的任务 hcc 前端 ...

  9. 第3次 Beta Scrum Meeting

    本次会议为Beta阶段第3次Scrum Meeting会议 会议概要 会议时间:2021年6月2日 会议地点:「腾讯会议」线上进行 会议时长:0.5小时 会议内容简介:对完成工作进行阶段性汇报:对下一 ...

  10. Java基础之原生JDBC操作数据库

    前言 日常开发中,我们都习惯了使用ORM框架来帮我们操作数据库,本文复习.记录Java如何使用原生JDBC操作数据库 代码编写 封装几个简单方法 find查询方法 findOne查询方法 update ...