Tensorflow¶
应用介绍¶
TensorFlow™是一个基于数据流编程的符号数学系统,被广泛应用于各类机器学习算法的编程实现。TensorFlow支持多种客户端语言下的安装和运行,平台暂只支持python语言。
在GPU加速计算上,TensorFlow支持在Linux和Window系统下使用统一计算架构(CUDA)高于3.5的NVIDIA GPU,本平台使用CUDA10.1版本,安装tensorflow2.x版本均可正常使用,推荐安装最新的tensorflow版本。
使用指南¶
在公共集群中选择GPU集群后,点击控制台,进入终端。
Conda环境变量配置¶
GPU集群已安装Anaconda,需要在自己的根目录下通过编辑``.bashrc``文件来配置Anaconda的路径。
.bashrc
用于存储并加载个人的终端配置和环境变量。bash在每次启动时都会加载/ .bashrc
文件的内容。
在~/.bashrc
文件中添加:export PATH=/opt/app/anaconda3/bin:$PATH
:
$ echo 'export PATH=/opt/app/anaconda3/bin:$PATH' >> ~/.bashrc
然后运行source
命令使配置的环境变量生效:
$ source ~/.bashrc
创建TensorFlow环境¶
在终端输入命令创建tensorflow
环境:
$ conda create --name tensorflow python=3.7
提示
命令中的tensorflow
为环境名称,用户可自行更改。
随后Anaconda会检查并提示需要在虚拟环境安装一些包,输入y
确认。等待环境创建完毕后,需要激活环境,使用以下命令激活:
$ source activate tensorflow
关于Conda的使用,可参考Conda指南。
安装tensorflow-gpu¶
在创建的tensorflow
环境中,输入以下命令安装tensorflow:
$ conda install tensorflow-gpu
该命令默认安装最新的TensoFlow版本。如果想指定安装的版本,在上述命令后添加‘=version’。等待安装结束后即可使用TensorFlow。
使用Slurm提交单节点任务¶
平台使用Slurm作业管理系统来进行作业调度。因此,要使用平台计算节点,就需要使用Slurm提交需要运行的程序。以下是使用sbatch脚本方式提交的样例test.sh。
1#!/bin/csh
2#SBATCH --nodes=1
3#SBATCH --ntasks-per-node=1
4#SBATCH --time=4:00:00
5python tf_test.py
sbatch
用于配置作业参数,--nodes
为使用的节点数,--ntasks-per-node
为每个节点所运行的任务数。其他详细的参数配置参考该文档。
然后在终端执行:sbatch test.sh
,Slurm提交作业后,会将日志输出到用户根目录下,文件名为slurm-作业编号.out
。
使用Slurm多节点提交任务¶
如果需要多个节点多个GPU进行计算,则需要在代码中添加TensorFlow提供的分布式计算API:
1tf.distribute.cluster_resolver.SlurmClusterResolver(
2 jobs=None,
3 port_base=8888,
4 gpus_per_node=None, gpus_per_task=None,
5 tasks_per_node=None, auto_set_gpu=True, rpc_layer='grpc')
然后在sbatch脚本中,配置与之匹配的节点数目。
API详细信息:
https://tensorflow.google.cn/api_docs/python/tf/distribute/cluster_resolver/SlurmClusterResolver