Upload
others
View
20
Download
0
Embed Size (px)
Citation preview
北京大学高性能计算校级公共平台现有3套集群,未名一号、未名生科一号、未名教学一号。其中未名一号及未
名生科一号主要用于科研,性能优异,为收费集群,“未名教学一号”主要用于教学,提供并行环境,为免费集群。
4
硬件环境:未名一号节点类别 型号 主要规格 节点数
CPU 节 点 NeXtScalenx360 M5
2*Intel Xeon E5-2697A V4,128G 140
2*Intel Xeon E5-2697A V4,256G 51
2*Intel Xeon E5-2697A V4,512G 5
GPU 节 点 X3650 M5 2*Intel Xeon E5-2643 V4,256G,2* NVIDIA Tesla P100
10
KNL 节 点 KNL Intel Xeon Phi7250,192G 8
四路胖节点 X3850 X6 4 * Intel Xeno E7-8867V4,512G 1
八路胖节点 X3950 X6 8 * Intel Xeno E7-8867V4,4096G 2
合计 每个节点均配备240GB到480GB SSD硬盘,双口千兆,Intel OPA Single-port PCIe 3.0 x16 HFA
227
5
硬件环境:未名生科一号
节点类别 型号 主要规格 节点数
CPU 节 点 Lenovo SD530 2*Intel Xeon Gold 6142,128G,双口万兆 129
GPU 节 点 Lenovo XS15002*Intel Xeon E5-2690 V4,256G,4* NVIDIA
Tesla V100,双口千兆7
合计CPU节点配120G SSD、GPU节点配1920G SSD、并均配有Intel OPA 100
Series Single-port PCIe 3.0 x16 HFA136
6
硬件环境:未名教学一号
7
节点类别 节点规格 节点数
CPU节点 2*虚拟核心(核心主频为2.60GHz),24G 50
登入节点 2*虚拟核心(核心主频为2.60GHz),24G 2
管理节点 2*虚拟核心(核心主频为2.60GHz),24G 2
存储节点 2*虚拟核心(核心主频为2.60GHz),24G 2
• 物理机配置
• 虚拟机配置
型号 节点规格 数量
Inspur NF5280M5 2*Intel Xeon Gold 6132,384G,439G HDD 3
Inspur NF5280M5 2*Intel Xeon Gold 6132,384G,439G HDD,3.5T SSD 1
收费标准
未名一号和未名生科一号为收费集群,其中CPU节点及胖节点按照核心计费,GPU节点按照GPU卡计费,KNL以台为单位计费。收费详情请查看(http://hpc.pku.edu.cn/guide_6.html)
8
序号 费用项目 费用名称 单位 单价 QOS 分区名 节点数 核心数 GPU数 内存
1 CPU100计算节点机
时费核心小时
0.04 low
C032M0128G 129 32 0 128G
2 CPU110 0.06 normal
3 CPU120 0.08 high
4 CPU130 生科计算节点机时费
0.04 cryoem
5 GPU200
GPU节点机时费
卡小时
2.50 low
GPU 5
28 4 256G
6 GPU210 3.75 normal
7 GPU220 5.00 high
8 GPU230 生科GPU节点机时费
2.50 cryoem
9 GPU300 生科GPU节点机时费
2.50 cryoem LIFE 2
9
以下为生科一号的收费详情,假设用户在C032M0128G节点提交作业,指定作业优先级为low,那么作业的费用=0.04*使用核心数*作业运行时长。
2.1 科研系列账号获取1 点击连接(http://hpc.pku.edu.cn/guide.html);2 下载《北京大学高性能计算校级公共平台用户申请表》;
3 填写相关信息,其中项目负责人需为老师,申请人可为学生也可为老师,项目相关信息为将在集群上跑的项目;
4 签字盖章后交到理科一号楼1156S;5 成功开通后项目负责人还可以点击高性能左上方登录键登录高性能,为其他学生开通上机账号。
12
2.2 教学系列账号获取教学系列用户可直接进入链接
(http://hpc.pku.edu.cn/guide.html)后点击进入在线申请填入相关信息即可。
13
平台采用SSH的方式远程进行连接登录。登录账号为学号/职工号,密码为统一认证密码,以下为各集群登录的IP地址。
15
集群 登录IP
未 名 一 号 162.105.133.134
未名教学一号 162.105.133.209
未名生科一号 162.105.133.164
3.1 Linux/Mac用户登录$ ssh username@ip_address$ ssh -X username@ip_address
16
其中uername为统一认证账号,ip_address为需要登录集群的IP,如果需要使用图形界面的话还需要加参数-X。
3.2 Windows用户
Windows用户可以使用xshell、MobaXterm或者putty等,需要使用图形界面的推荐使用MobaXterm,以下为对应的下载地址。
• xshell:https://www.netsarang.com/zh/free-for-home-school/下载时选择两者(xshell和xftp,xftp用于传输数据)
• MobaXterm:https://mobaxterm.mobatek.net/download-home-edition.html
• putty:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
17
3.3 Linux/Mac 传输数据可使用scp和rsync口令上传和下载数据
20
$ scp [-r] file username@ip_address:~/# 该命令将会把本地的名为file的文件上传到集群的home目录下,如果file是一个目录的话还需要加上参数r$ scp [-r] username@ip_address:~/file ./# 该命令将会把服务器上home目录下名为file的文件下载到本地当前文件夹下
$ rsync [-Pr] file username@ip_address:~/# 该命令将会把本地的名为file的文件上传到集群的home目录下,如果file是一个目录的话还需要加上参数r$ rsync [-Pr] username@ip_address:~/file ./# 该命令将会把服务器上home目录下名为file的文件下载到本地当前文件夹下
3.4 Windows用户传输数据
21
Windows用户可以使用xftp上传和下载文件,可直接点击xftp的桌面图标后在
弹出的窗口输入对应的信息(如右图所示),也可以在安装后点击xshell的文件传输按钮进行使用。
3.5 常见错误密码错误:密码为开通上机账号时统一认证密码,如果
后期修改了密码,登录集群的密码并不会随之改变,仍需要使用旧的统一认证密码才可登录,如果想要同步最新的统一认证密码,需联系管理员。
22
环境变量
export JAVA_HOME=/usr/java/jdkexport CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/libexport PATH=$JAVA_HOME/bin:$PATH
24
环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或多个应用程序将使用到的信息。
大部分Linux用户管理环境变量的方式都是,export 相应的环境变量到~/.bashrc文件中,当使用软件多了以后会不利于管理。而Module则是由管理员将不同软件的环境配置写好,然后用户在登陆之后,只需要用module load 相应的软件环境变量即可。
25
4.1 module 常见命令module help 显示帮助信息;
module avail 查看所有可用的软件环境变量;
module load 导入对应的环境变量;
module list 查看已导入的环境变量;
module unload 删除已导入的环境变量;
module switch [mod1] mod2 删除mod1并导入mod2;
26
4.2 例子$ module avail matlab # 查看可用的matlab$ module load matlab/R2017a # 导入matlab/R2017a的环境变量$ module unload matlab/R2017a # 删除matlab/R2017a的环境变量
27
4.3 编写modulefile用户也可以将自己的所需要的环境变量编写成
modulefile,使用module进行管理。步骤如下:
第一步:添加自己的modulefile路径;
28
$ mkdir ${HOME}/mymodulefile$ echo 'export MODULEPATH=${HOME}/mymodulefile:$MODULEPATH' >> ~/.bashrc$ source ~/.bashrc
# set:设置modulefile内部的变量# setenv:设置环境变量# prepend-path :效果类似export PATH=/xxx/xxx:$PATH# append-path : 效果类似export PATH=$PATH:/xxx/xxx
第二步:编写modulefile放入该路径下,语法如下;
modulefile例子:
29
#%Module1.0####module-whatis "my first modulefile about [email protected]"
set topdir "gpfs/share/home/xxxxxxxxx/gcc/7.2.0"prepend-path MANPATH "${topdir}/gcc/7.2.0/share/man"prepend-path PATH "${topdir}/bin"prepend-path LIBRARY_PATH "${topdir}/lib"prepend-path LD_LIBRARY_PATH "${topdir}/lib"prepend-path CPATH "${topdir}/include"
31
User
User
Login Node Scheduler
Compute Node Compute NodeCompute NodeCompute Node Compute NodeCompute NodeCompute Node Compute NodeCompute Node
ssh
ssh
Jobs
平台使用SLURM作为作业调度系统,用户需要了解相关的指令,来进行作业的提交,查看,取消等。SLURM常见的指令有sbatch、squeue、scancel、sinfo、salloc等。
参考:https://slurm.schedmd.com/man_index.html
32
account我们登录集群使用的是上机账号,上机账号实际上是关
联有一个至多个账户,用于计费。
开户后项目负责人将获得账户,登录hpc.pku.edu.cn,可为自己的学生开通上机账号。
目前未名一号及生科一号的account为hpc加项目负责人工号,教学一号的account为自身学号,通过以下指令可以查看自己可用的账户:
如果出现提交作业出现以下提示表明没正确指定账户:
35
$ sacctmgr show ass user=`whoami` format=account%15 |uniq
error: Job submit/allocate failed: Invalid account or account/partition combination specified
partition提交作业的时候需要指定分区,不同的分区会有不同的
属性,如GPU分区的节点含GPU卡,C032M0128G的分区节点内存为128G, life 分区为电镜组使用的专用分区等。
通过以下命令可以查看可以使用的分区
还可以通过以下命令查看各分区节点的可用状态
36
$ sacctmgr show ass user=`whoami` format=part |uniq
$ sinfo
目前各集群所有的分区如下:
37
未名一号: C032M0128G、C032M256G、C032M0512G、C072M0512G、C144M4096G、GPU、KNL。
生科一号: C032M0128G、 GPU
教学一号: compute
未名一号分区表
38
分区名 节点类别 主要规格 节点数
C032M0128G CPU节点 2*Intel Xeon E5-2697A V4(2*16核),128G 140
C032M0256G CPU节点 2*Intel Xeon E5-2697A V4(2*16核),256G 51
C032M0512G CPU节点 2*Intel Xeon E5-2697A V4(2*16核),512G 5
GPU GPU节点2*Intel Xeon E5-2643 V4(2*6核),256G,2*
NVIDIA Tesla P100 10
C072M0512G 四路胖节点 4 * Intel Xeno E7-8867V4(4*18核),512G 1
C144M4096G 八路胖节点 8 * Intel Xeno E7-8867V4(8*18核),4096G 2
KNL KNL节点 Intel Xeon Phi7250(68核),192G 8
注:1、计费时,GPU节点一块GPU卡绑定6个核心,GPU用户请按该比例进行申请;2、KNL分区按节点申请;3、其余可按照需要的核心数进行申请。
未名生科一号分区表
39
分区名 节点类别 主要规格 节点数
C032M0128G CPU节点 2*Intel Xeon Gold 6142 (2*16核),128G 129
GPU GPU节点2*Intel Xeon E5-2690 V4 (2*6核),256G,2*
NVIDIA Tesla V100 7
注:1、计费时,GPU节点一块GPU卡绑定6个核心,GPU用户请按该比例进行申请;2、其余可按照需要的核心数进行申请。
qosqos为服务质量,提交作业的时候需指定qos(不指定的
话会使用缺省的qos)。不同的qos有不同的属性,如作业优先级,可使用的核心数等。不同qos收费不用。
目前未名一号以及未名生科一号普通用户设有的qos为low、normal和high,未名教学一号为normal。以下命令可以查看不同qos的对应属性。
41
$ sacctmgr show ass user=`whoami` format=user,part,qos
$ sacctmgr show qos format=Name,Priority,MaxWall,MaxJobsPU,MaxTRESPerAccount
sbatch 参数--help-A <account>--get-user-env--gres=<list>-J, --job-name=<jobname>--mail-type=<type>
--mail-user=<user>-N, --nodes=<number>-n, --ntasks=<number>-c, --cpus-per-task=<ncpus>--ntasks-per-node=<ntasks>
-o, --output=<filename pattern>-p, --partition=<partition_names>-q, --qos=<qos>-t, --time=<time>
# 显示sbatch命令的使用帮助信息;# 指定计费账户;# 获取用户的环境变量;# 使用gpu这类资源,如申请两块gpu则--gres=gpu:2# 指定该作业的作业名;# 指定状态发生时,发送邮件通知,有效状态为(NONE, BEGIN, END, FAIL, REQUEUE, ALL);# 发送给对应邮箱;# 申请的节点数# 申请的任务数# 每个任务所需要的核心数,默认为1;# 每个节点的任务数,--ntasks参数的优先级高于该参数,如果使用--ntasks这个参数,那么将会变为每个节点最多运行的任务数;# 输出文件,作业脚本中的输出将会输出到该文件;# 将作业提交到对应分区;# 指定QOS;# 设置限定时间;
43
以下是一个sbatch脚本例子,执行sbatch job.sh提交即可将该作业提交到作业调度系统中(假设脚本名为job.sh)
44
#!/bin/bash#SBATCH -o job.%j.out#SBATCH --partition=C032M0128G#SBATCH --qos=low#SBATCH -A hpcxxxxxx#SBATCH -J myFirstJob#SBATCH --get-user-env#SBATCH --nodes=2#SBATCH --ntasks-per-node=4#SBATCH --mail-type=end#SBATCH [email protected]#SBATCH --time=120:00:00
srun hostname -s | sort -n >slurm.hostsmodule load intel/2017.1mpiicc -o hellompi.o hellompi.cmpirun -n 8 -machinefileslurm.hosts ./hellompi.orm -rf slurm.hosts
# 输出,运行脚本指令的输出将输出到该文件# 指定作业分区# 指定qos# 指定account# 作业名# 获取当前用户环境# 申请节点数# 每个节点申请多少个核心# 指定作业结束后发送邮件# 发送到指定邮箱# 指定作业运行时间
方法二:申请64个核心,核心分配在哪些节点上由调度系统调度
45
以下是申请资源数量相关的参数# -N 申请的节点数,缺省为1# -n 申请的核心数,缺省为1# --ntasks-per-node 每个节点需要执行的任务数,缺省为1# -c 每个任务数需要的核心,缺省为1
#SBATCH -N 2#SBATCH --ntasks-per-node=32#SBATCH -c 1
#SBATCH -n 64#SBATCH -c 1
例:我的作业需要64个核心需要怎么申请?
方法一:申请两个节点,每个节点32个核心
error: Job submit/allocate failed: Invalid account or account/partition combination specified
错误原因:没有指定正确的
账户,可通过以下指令获取可用账户。
47
$ sacctmgr show ass user=`whoami` format=account%15 |uniq
#!/bin/bash#SBATCH -o job.%j.out#SBATCH --partition=C032M0128G#SBATCH --qos=low#SBATCH -A hpcxxxxxx#SBATCH -J myFirstJob#SBATCH --get-user-env#SBATCH --nodes=2#SBATCH --ntasks-per-node=32#SBATCH --mail-type=end#SBATCH [email protected]#SBATCH --time=120:00:00
error: Job submit/allocate failed: Invalid partition name specified
错误原因:未指定正确的partition,可通过以下指令获取可用的分区。
48
#!/bin/bash#SBATCH -o job.%j.out#SBATCH --partition=error#SBATCH --qos=low#SBATCH -A hpcxxxxxx#SBATCH -J myFirstJob#SBATCH --get-user-env#SBATCH --nodes=2#SBATCH --ntasks-per-node=32#SBATCH --mail-type=end#SBATCH [email protected]#SBATCH --time=120:00:00
$ sacctmgr show ass user=`whoami` format=part |uniq
(QOSMaxWallDurationPerJobLimit)
错误原因:指定-t, --time=<time>参数时,时间超过qos允许的时长,通过以下命令可以查看目前每个qos允许运行的最大时长。
注:当前未名一号和生科一号最大时长限制为5天,教学一号时长限制为2天,可能会根据使用情况修改。
49
#!/bin/bash#SBATCH -o job.%j.out#SBATCH --partition=C032M0128G#SBATCH --qos=low#SBATCH -A hpcxxxxxx#SBATCH -J myFirstJob#SBATCH --get-user-env#SBATCH --nodes=2#SBATCH --ntasks-per-node=4#SBATCH --mail-type=end#SBATCH [email protected]#SBATCH --time=130:00:00
$ sacctmgr show qos format=name,MaxWall
batch job submission failed: Requested node configuration is not available
错误原因:申请资源的节点
配置不匹配,如右侧所示,C032M0128G的每个节点只有32个核心,并且该分区上节点没有GPU卡。
50
#!/bin/bash#SBATCH -o job.%j.out#SBATCH --partition=C032M0128G#SBATCH --qos=low#SBATCH -A hpcxxxxxx#SBATCH -J myFirstJob#SBATCH --get-user-env#SBATCH --nodes=2#SBATCH --gres=gpu:1#SBATCH --ntasks-per-node=33#SBATCH --mail-type=end#SBATCH [email protected]#SBATCH --time=120:00:00
(QOSNotAllowed)
没有指定正确的qos,以下命令可以查看不同分区下可用的qos。
51
#!/bin/bash#SBATCH -o job.%j.out#SBATCH --partition=C032M0128G#SBATCH --qos=error#SBATCH -A hpcxxxxxx#SBATCH -J myFirstJob#SBATCH --get-user-env#SBATCH --nodes=2#SBATCH --ntasks-per-node=32#SBATCH --mail-type=end#SBATCH [email protected]#SBATCH --time=120:00:00
sacctmgr show ass user=`whoami` format=user,part,qos
squeue 参数
55
--help-A <account_list>-i <seconds>-j <job_id_list>-n <name_list>-t <state_list>-u <user_list>-w <hostlist>
# 显示squeue命令的使用帮助信息;# 显示指定账户下所有用户的作业,如果是多个账户的话用逗号隔开;# 每隔相应的秒数,对输出的作业信息进行刷新# 显示指定作业号的作业信息,如果是多个作业号的话用逗号隔开;# 显示指定节点上的作业信息,如果指定多个节点的话用逗号隔开;# 显示指定状态的作业信息,如果指定多个状态的话用逗号隔开;# 显示指定用户的作业信息,如果是多个用户的话用逗号隔开;# 显示指定节点上运行的作业,如果是多个节点的话用逗号隔开;
按指定格式输出squeue信息,默认输出的信息格式为“JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)”
56
-o <output_format> 显示指定的输出信息,指定的方式为%[[.]size]type,size表示输出项的显示长度,type为需要显示的信息。可以指定显示的常见信息如下;%a 账户信息%C 核心数%D 节点数%i 作业ID%j 作业名%l 作业时限%P 分区%q 优先级%R 状态PD作业显示原因,状态R的作业显示节点%T 状态%u 用户%M 已运行时间例:squeue -o “%.18i %.9P %.12j %.12u %.12T %.12M %.16l %.6D %R”
例
57
$ squeue
$ squeue -u `whoami`
$ alias sq='squeue -o "%.18i %.9P %.12j %.12u %.12T %.12M %.16l %.6D %R" -u `whoami` '
# 查看系统中所有作业的信息
# 查看自己账号下的作业
# 将左侧命令输入到~/.bashrc文件中,下次登录集群输入sq即可显示自己账号下提交的作业及指定的信息
scancel 参数
59
--help-A <account>-n <job_name>-p <partition_name>-q <qos>-t <job_state_name>-u <user_name>
#显示scancel命令的使用帮助信息;# 取消指定账户的作业,如果没有指定job_id,将取消所有;# 取消指定作业名的作业;# 取消指定分区的作业;# 取消指定qos的作业;# 取消指定作态的作业,"PENDING", "RUNNING" 或 "SUSPENDED";# 取消指定用户下的作业;
例
60
$ scancel 123456
$ scancel -u `whoami`
$ scancel -t PENDING -u `whoami`
# 取消作业号为123456的作业
# 取消自己账号下所有队列中的作业
# 取消自己账号下所有状态为PENDING的作业
sinfo 参数--help-d-i <seconds>-n <name_list>-N-p <partition>-r-R
# 显示sinfo命令的使用帮助信息;# 查看集群中没有响应的节点;# 每隔相应的秒数,对输出的分区节点信息进行刷新# 显示指定节点的信息,如果指定多个节点的话用逗号隔开;# 按每个节点一行的格式来显示信息;# 显示指定分区的信息,如果指定多个分区的话用逗号隔开;# 只显示响应的节点;# 显示节点不正常工作的原因;
62
按指定格式输出sinfo信息,默认输出的信息格式为“PARTITION AVAIL TIMELIMIT NODES STATE NODELIST”
63
-o <output_format> 显示指定的输出信息,指定的方式为%[[.]size]type,“.”表示右对齐,不加的话表示左对齐;size表示输出项的显示长度;type为需要显示的信息。可以指定显示的常见信息如下;%a 是否可用状态%A 以"allocated/idle"的格式来显示节点数,不要和"%t" or "%T"一起使用%c 节点的核心数%C “allocated/idle/other/total”格式显示核心总数%D 节点总数%E 节点不可用的原因%m 每个节点的内存大小(单位为M)%N 节点名%O CPU负载%P 分区名,作业默认分区带“*”%r 只有root可以提交作业(yes/no)%R 分区名%t 节点状态(紧凑形式)%T 节点的状态(扩展形式)例:sinfo -o "%.15P %.5a %.10l %.6D %.6t %N"
salloc 参数--help-A <account>--get-user-env--gres=<list>-J, --job-name=<jobname>--mail-type=<type>
--mail-user=<user>-N, --nodes=<number>-n, --ntasks=<number>-c, --cpus-per-task=<ncpus>--ntasks-per-node=<ntasks>
-o, --output=<filename pattern>-p, --partition=<partition_names>-q, --qos=<qos>-t, --time=<time>
# 显示sbatch命令的使用帮助信息;# 指定计费账户;# 获取用户的环境变量;# 使用gpu这类资源,如申请两块gpu则--gres=gpu:2# 指定该作业的作业名;# 指定状态发生时,发送邮件通知,有效状态为(NONE, BEGIN, END, FAIL, REQUEUE, ALL);# 发送给对应邮箱;# 申请的节点数# 申请的任务数# 每个任务所需要的核心数,默认为1;# 每个节点的任务数,--ntasks参数的优先级高于该参数,如果使用--ntasks这个参数,那么将会变为每个节点最多运行的任务数;# 输出文件,作业脚本中的输出将会输出到该文件;# 将作业提交到对应分区;# 指定QOS;# 设置限定时间;
66
例在GPU分区申请一个节点,6个CPU核、1块GPU显卡
,使用的QOS为low,并指定最大占用时间为1天。
67
$ salloc -p GPU -N1 -n6 --gres=gpu:1 -q low -t 24:00:00salloc: Granted job allocation 1078858salloc: Waiting for resource configurationsalloc: Nodes gpu05 are ready for job
$ ssh gpu05 # 登录到gpu05使用对应资源$ exit #运行结束后退出gpu05$ exit #退出作业$ squeue -j 1078858 #确保作业已经退出# 如果显示该作业还在运行运行以下命令释放资源$ scancel 1078858
编译安装gcc 7.2.0$ wget http://mirrors-usa.go-parts.com/gcc/releases/gcc-7.2.0/gcc-7.2.0.tar.gz $ tar xf gcc-7.2.0.tar.gz$ cd gcc-7.2.0$ ./contrib/download_prerequisites$ ./configure --help$ ./configure --prefix=${HOME}/gcc/7.2.0 --disable-multilib$ make$ make install
70
编译安装netcdf-c 4.6.3# 安装netcdf时需要安装zlib、hdf5,以下是编译过程# 编译zlib$ wget https://phoenixnap.dl.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz$ tar xf zlib-1.2.11.tar.gz$ cd zlib-1.2.11$ ./configure --prefix=${HOME}/netcdf$ make && make install# 编译hdf5$ wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.19/src/hdf5-1.8.19.tar.gz$ tar xf hdf5-1.8.19.tar.gz$ cd hdf5-1.8.19$ ./configure --prefix=${HOME}/netcdf --with-zlib=${HOME}/netcdf$ make && make install# 编译netcdf-c 4.6.3$ wget ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-c-4.6.3.tar.gz$ tar xf netcdf-c-4.6.3.tar.gz$ cd netcdf-c-4.6.3$ CPPFLAGS="-I${HOME}/netcdf/include"$ LDFLAGS="-L${HOME}/netcdf/lib" # 这两句表示编译时先从指定的文件夹下找.h文件和链接库$ ./configure --prefix=${HOME}/netcdf$ make && make install
71
7.1 anaconda基本命令conda info -esource activate env_namesource deactivate env_nameconda create --name env_name [python=<ver>]conda remove -n env_name --allconda install [-n env_name] pkg_nameconda list [-n env_name]conda search pkg_nameconda update pkg_nameconda remove pkg_name
# 查看当前所有的python环境;# 进入指定python环境;# 退出指定python环境;# 创建python环境,可指python版本;# 删除指定python环境;# 给对应的环境安装包;# 查看已安装的包;# 查找指定的安装包;# 更新现有的安装包;# 卸载指定的安装包包;
74
7.2 使用现有的python环境
75
$ conda info -e $ conda activate tensorflow-1.8.0$ cat << EOF > helloworld.pyimport tensorflow as tfhello = tf.constant('Hello, TensorFlow!')sess = tf.Session()print(sess.run(hello))EOF$ python helloworld.py
# 查看现有的python环境;# 使用其中名为tensorflow-1.8.0的python环境;# 测试用的python代码
脚本形式#!/bin/bash #SBATCH -o tensorflow.%j.out#SBATCH -A 1606190053 #SBATCH --partition=compute #SBATCH -J tensorflowTest#SBATCH --get-user-env #SBATCH --nodes=1#SBATCH --ntasks-per-node=1#SBATCH --mail-type=end #SBATCH --time=08:00:00
module load anaconda/3.5.1source activate tensorflow-1.8.0cat << EOF > helloworld.pyimport tensorflow as tfhello = tf.constant('Hello, TensorFlow!')sess = tf.Session()print(sess.run(hello))EOFpython helloworld.py
76