中南大学 GPU管理平台 V1.6

高性能工作站使用说明


更新时间:2019-11-12 00:00:00     编辑:144601044    

PDF版文档点击下载

工作站为中南大学计算机学院使用。此工作站仅用于深度学习研究,请跑传统普通程序的同学老师不要占用该工作站的CPU资源。

依通知,本工作站为计算机学科建设内容,工作站仅限计算机学院老师和研究生使用

工作站权限分为“公有”和“私有”。“公有”代表所有计算机学院老师和研究生可以使用;“私有”的工作站为其他实验室托管,一般只对该实验室的老师和学生开放

请务必认真阅读管理系统使用说明,大多问题都会在以下说明中解决

管理系统

管理系统是通过Web页面管理使用工作站的账号和连接工作站途径的系统。

注册

使用工作站需要先在管理系统中注册一个账号。

邀请码

为控制使用工作站成员的资格,系统以邀请码形式注册,请需要使用工作站的老师同学加入信息院高性能工作站使用QQ群 346619322,在验证身份后由管理员给予邀请码,进入系统注册。

注册账号

点击Register进行注册

输入管理员给予的邀请码和页面的验证码

填写自己的学号姓名密码等相关信息

查看工作站状态

由于工作站是共享的,随时都可能有其他人在运行程序,在进行自己的操作前,请先看工作站的 GPU、CPU、Memory 的使用情况,如果有他人在使用,请等待或在交流群中沟通,盲目运行程序可能导致程序冲突,会中断他人程序或得到非正常的运行结果。

工作站状态页面未来会逐步进行更新,使展示的信息更加全面、友好。

在进行自己的操作前,请先看工作站的 GPU、CPU、Memory

管理自己的实例

为保证每个人使用系统时的自主性(完整系统权限)、独立性(互相之间的文件系统不干扰),每个人会在主机中开启单独的容器实例,通过各自的实例使用计算资源。

下文中“容器”和“实例”可视为等价的指代。

我的实例

我的实例页面会显示在各工作站上已拥有的实例

开启新实例

添加实例

系统初期只提供已安装 cuda 的实例,未来或可增加提供已经安装好 Tensorflow、Caffe等深度学习库的实例。

“从备份新建”是指之前已经在相应的工作站配置过自己的实例,并对实例进行过备份的用户,可以通过此选项新建自己配置过的实例。

由于系统资源有限,每个人每台工作站只可开启一个实例,如果要重新开实例,请先删除当前实例,再开启新实例。

系统初期每个人每台工作站只可做一份实例备份,新的备份将覆盖旧的备份。

点击添加实例,选择开启的实例类型

任务队列

系统会有一个任务队列,当执行某项操作时,可在任务队列查看是否执行完毕,以开始自己的下一步操作。如果执行过程存在问题,系统会在“执行结果”列给予提示。

如果一个实例执行 2 分钟以上依然没有结束,“重试”按钮会亮起,可以等待也可以点击该按钮重试该操作。

如果有非常规问题出现,可在交流群反馈咨询。

系统会有一个任务队列,当执行某项操作时,可在任务队列查看是否执行完毕

管理后台

管理后台与普通用户无关,或会招募2~3名特定功能(如邀请码分发、密码协助修改等)的管理员,协助系统维护人员为大家服务。详细功能会单独介绍,不在此说明书中进行。

连接并使用计算资源

系统环境

系统统一为 Ubuntu Server 16.04 x64,默认的cuda为最新版,但用户可自行修改系统内的软件环境

Ubuntu Server

针对不了解 Server 系统的老师与同学简单介绍一下。

Ubuntu(友帮拓、优般图、乌班图)是一个开源GNU/Linux操作系统,Ubuntu 是基于Debian GNU/Linux,支持x86、amd64(即x64)和ppc架构,由全球化的专业开发团队(Canonical Ltd)打造的。

Ubunt Server 系统没有图形界面,由SSH连接和命令行进行操作,是进行GPU计算的最佳系统环境,目前大多科研工作是基于 Ubuntu Server 系统进行算法原型测试的。

命令行系统并不可怕,我们可借助许多工具来实现我们的目的,比如文件传递、代码复制、远程调试、通过SSH隧道的X11连接在本地显示软件的图形界面等,这些方法与工具都可以通过搜索引擎查找和学习。

SSH 连接

SSH连接Linux系统的工具有多种,这里推荐一个很好的软件套装 XManager,为方便下载,提供百度网盘连接:https://pan.baidu.com/s/1mhLinbi。交流群文件中也提供了下载。

打开XShell并新建连接

查看前面管理系统中新建的实例信息中的端口号

每个实例会开放 10 个自由使用的端口,使用端口能做些什么事,可以利用搜索引擎进行学习,也欢迎在交流群中交流。

而提供的 SSH 连接则占用第一个端口。上图中提供的端口号为 21010~21019,那么我们SSH连接的端口号即 21010。

服务器所在机房的IP地址会在交流群和管理系统中提供。

实例直接使用 root 账号连接,默认密码是 123456 即拥有实例内几乎全部权限。

填写连接信息

实例直接使用 root 账号连接,默认密码是 123456 即拥有实例内几乎全部权限

把连接信息保存,以后就可以直接点选连接了

使用

成功建立 SSH 连接之后,就可以开始命令行了,如图进行了几个简单的操作,可以看当前的目录、目录下的内容。

本身就是root账户,所以

不需要sudo指令!不需要sudo指令!不需要sudo指令!

重要的事情说三遍。

建议进入自己的实例之后,修改root密码,避免其他人误登录自己的实例。

建议进入自己的实例之后,修改root密码

可以通过 SFTP 进行文件传输

可以通过 SFTP 进行文件传输

到此步,就可以开始自己的环境、代码部署与实验了。

望大家加强交流,互帮互助,不要因为命令行系统的一点门槛影响了科研进度。

操作

由于系统资源有限,每个用户在每个宿主机只能进行一份备份,新的备份会替换旧的备份。

由于只有一份备份,所以不再在系统中显示备份信息,在任务队列确认备份成功即可。

备份的使用方法:当任务队列中显示备份任务执行完成之后,如果要使用备份的镜像,则删除旧实例,然后添加实例,在对话框选择“从备份新建”。

从备份新建实例

注意事项

此部分非常重要,望周知

所有个人文件请放在/root/userfolder目录内,否则不保证文件数据安全

连入SSH后,会在/root目录中,目录下有commonfile和userfolder两个文件夹,commonfile是所有用户共享的文件夹,用于共享文件中转,userfolder是私人文件夹,只有这两个目录下的文件会保存在映射目录中,即使删除、重开实例,这些文件会依然保留。

一定不要把大型文件直接放在 /root 根目录下,这样会占用大量系统资源,此情况下管理员可能会酌情删除过大的实例。

请养成本地备份数据的习惯,并适时清理自己在服务器实例中的数据

服务器仅为提供高性能GPU计算,硬盘虽然较大,但用户人数众多,无法承担日积月累的数据堆积,请大家在完成自己的实验后,不要把老旧的数据继续留在服务器上。

在进行自己的实验之前,先查看服务器运行状态

如果有其他老师同学在运行实验(主要看GPU的显存占用情况),可在交流群中协商,不要贸然进行自己的实验,否则可能因显存冲突中断彼此的程序。

按需设置自己的程序

部分深度学习框架会自动占用所有可占用的显存,但一些学习任务可能仅需要一颗GPU就足够,望大家在程序中配置好所需占用的GPU,而不要盲目占用所有资源。

禁止长期占用CPU运行纯CPU程序

GPU工作站用以进行以深度学习为主的GPU计算,长期满载占用CPU资源会严重影响其他用户的使用,且该工作站硬件并未针对CPU计算优化,CPU程序在此工作站上并不一定能达到理想速度。


附录

Caffe 配置

这里提供一个Caffe配置的方法,但鼓励大家去各深度学习库的官方网站查看原文档,在Stack Overflow等论坛排查自己遇到的问题,多利用搜索引擎,培养良好的科研素养。

基本依赖项

apt-get install libprotobuf-dev libleveldb-dev \
libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
apt-get install --no-install-recommends libboost-all-dev

apt-get install libatlas-base-dev

其他依赖项

apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

OpenCV

#[compiler]
apt-get install build-essential
#[required]
apt-get install cmake git libgtk2.0-dev \
pkg-config libavcodec-dev libavformat-dev \
libswscale-dev
#[optional]
apt-get install python-dev python-numpy \
libtbb2 libtbb-dev libjpeg-dev libpng-dev \
libtiff-dev libjasper-dev libdc1394-22-dev

可以下载opencv的包解压,也可以用最新代码:

git clone https://github.com/Itseez/opencv.git
cd ~/opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D \
CMAKE_INSTALL_PREFIX=/usr/local
# make -j 后面的数字是并行个数,cpu厉害就设大点。一般是用4
make -j7
make install

CuDNN

解压cudnn的包(官网得申请,用网盘搜索能找到最新的),有include和lib64,里面文件复制到对应/usr/local/cuda/对应文件夹里

#进到对应文件夹
cp cudnn.h /usr/local/cuda/include/
#进到对应文件夹
cp lib* /usr/local/cuda/lib64/
#可能要再进行一次 ldconfig -v

不知道这里会不会有文件权限问题,暴力搞一下(这条可先不用)

chmod 777 -R /usr/local/cuda/lib64

Caffe

git clone https://github.com/BVLC/caffe.git
cp Makefile.config.example Makefile.config

修改Makefile.config,去掉cudnn的注释,其他的在当前应用场景可不变。

make all
make test
make runtest