[关闭]
@Yalei-SONG 2020-10-18T07:06:21.000000Z 字数 4030 阅读 291

集群使用

slurm computer cluster


集群概况

服务器配置

master 登录,管理,存储

2 Sockets

Intel® Xeon® Gold 5120 Processor
number of Cores 14
number of Threads 28
Processor Base Frequency 2.20 GHz
Max Turbo Frequency 3.20 GHz

SSD 480GB x 2

node[1-8] 计算

4 Sockets

Intel® Xeon® Gold 6140 Processor
number of Cores 18
number of Threads 36
Processor Base Frequency 2.30 GHz
Max Turbo Frequency 3.70 GHz

SSD 480GB x 2

Storage

SAS 10TB x 24
dynamic backup -10TB x 2
RAID 6 -10TB x 2
......
170TB

集群简介

A computer cluster is a set of loosely or tightly connected computers that work together so that, in many respects, they can be viewed as a single system. Unlike grid computers, computer clusters have each node set to perform the same task, controlled and scheduled by software.

https://www.wikiwand.com/en/Computer_cluster

集群的结构

集群所需的服务

NFS 共享存储空间
https://www.wikiwand.com/en/Network_File_System
NIS 共同的用户信息
https://www.wikiwand.com/en/Network_Information_Service
NTP 共同的时钟
https://www.wikiwand.com/en/Network_Time_Protocol

Linux系统简介

参考资料


Linux系统

Linux.png
Linux内核
系统内存管理
物理内存,虚拟内存(交换空间,swap space)
频繁读写,/dev/shm
软件程序管理
进程,进程号(PID),ps
硬件设备管理
硬件,驱动,设备文件,/dev
文件系统管理
ext, ext2-4, iso9660, msdos(FAT16), nfs, ntfs, vfat(FAT32), smb, exfat
GNU工具组件
GNU coreutils
处理文件,操作文本,管理进程
shell
GNU/Linux shell 交互式 内置命令 脚本文件
图形化桌面环境
X Window系统
KDE
GNOME
应用软件
gparted/parted
mathematica/math
matlab/matlab -nodisplay -nodesktop -nosplash -nojvm

shell

CLI 命令行界面,Linux控制台,终端模拟包
字符集,ASCII,ISO-xxxx, UTF-8,记事本,notepad++,vim,emacs
文件系统
inux目录结构

/bin 存放系统命令
/boot 存放着系统的启动文件和内核
/dev 设备文件主目录(设备不在这里,具体设备息/proc目录中)
/proc 系统进程和系统硬件信息
/etc 系统 主配置文件 主目录
(windows下安装QQ,安装目录在E:盘,C盘也会写入相应的QQ软件信息
c盘的QQ文件称之为主配置文件(系统文件)---/etc)
/var 系统配置文件主目录
(E盘的QQ安装目录的文件称之为配置文件(功能型文件)---/var)
/home 普通用户的家目录
/lib&lib64 系统库文件存放的目录 .dll
/usr 系统帮助文档以及源码包安装位置 源码包不属于RedHat,属于广大的爱好开发者
usr目录是最庞大的目录,要用的应用程序和文件几乎都在这个目录
/sbin 超级用户使用的命令存放的目录
/mnt 用户挂载目录
/run 存放当前运行程序库的目录(当前运行的目录)
/root 超级用户root家目录
/tmp 临时文件存放目录 系统启动过程中会产生一些临时文件,这些临时文件就存放在tmp目录下
如果说tmp目录没有存储空间,系统一定启动不起来
/media 可移动介质挂载点
/opt 第三方应用程序文件存放目录
命名法则及规定:
文件命令规则:
1、除了/(根目录)之外,所有的字符都合法。
2、有些字符最好不用,如空格符、制表符、退格符和字符@#¥()- 等。
3、避免使用 ▪ 作为普通文件名的第一个字符。
4、大小写敏感。
变量命名规则:
1)变量名必须有一定的意义,并且意义准确。例如有一个变量用于保存图书的数目,可以命名为number_of_book或者num_of_book。不建议使用i,因为它没有意义。也不建议使用number或book,因为意义不准确。
2)不建议大小写混用。如定义一个计数变量,int nCount;这在Windows中是一个很好的变量名,其中nCount的首字母n用来说明这个变量的类型是int。但在Linux下不建议大小写混合使用,一般标识符只由小写字母,数字和下划线构成。
3)在失去意义的情况下,尽量使用较短的变量名。例如有一个变量,用于暂时存储一个计数值,把变量命名为tmp_count显然要比this_is_a_temperary_counter好。
4)不采用匈牙利命名法表示变量的类型。如int nCount;n用于说明变量的类型,在Linux中不建议这样命名变量。
5)函数名应该以动词开头,因为函数是一组具有特定功能的语句块。比如一个函数,它用于取得外部输入的数值,则可以命名为get_input_number。
6)尽量避免使用全局变量

常用命令

cd 相对路径,绝对路径
ls, ll, l.,
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'

ls -l mypro?
ls -l mypro*

touch
cp
ln
mv
rm

mkdir
rmdir

stat
file
cat more less tail head

top
ps
kill

mount
umount
df
du
dd

sort
grep

tar
bzip
gzip
zip
7za

SLURM简介

partition

NodeName=node[1-8] CPUs=144 Sockets=4 CoresPerSocket=18 ThreadsPerCore=2 State=UNKNOWN
PartitionName=ptt1 Nodes=node[1-2] MaxTime=INFINITE State=UP
PartitionName=ptt2 Nodes=node[3-8] Default=YES MaxTime=INFINITE State=UP

集群的基本操作

登录

ssh --> master
IP: 210.26.51.241
Port: 10022

查看节点的信息

sinfo
idle mix

查看工作(job)信息

squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)

提交工作

  1. srun \
  2. -p ptt1/ptt2 \
  3. -c 1\10 \
  4. --mem=1M/20G \
  5. matlab -r 'main' 1>log.txt 2>err.txt \
  6. &

sbatch

查看已经提交了的工作

sacct

取消已经提交的工作

scancel

提交计算任务时的注意事项

MATLAB

命令行提交matlab程序,-r 'main'
交互,quit,
内存,变量,clear,
事先声明变量大小,
随机数的生成放在循环外
imwrite输出图像,减少冗余

数据类型转换
变量列优先原则
了解寻址方式,角标与索引
利用逻辑值矩阵代替判断与循环
cell中的()与{}
char与string,‘与"
循环中的临时变量的重置
(不定长度变量,追加,部分替换)

使用%%对代码分节
使用ctrl+I对代码自动排版
了解figure的层级结构

C & FORTRAN

查查gcc手册就知道了,每个编译选项都控制着不同的优化选项 下面从网络上copy过来的,真要用到这些还是推荐查阅手册
-O设置一共有五种:-O0、-O1、-O2、-O3和-Os。

除了-O0以外,每一个-O设置都会多启用几个选项,请查阅gcc手册的优化选项章节,以便了解每个-O等级启用了哪些选项及它们有何作用。

让我们来逐一考察各个优化等级:

-O0:这个等级(字母“O”后面跟个零)关闭所有优化选项,也是CFLAGS或CXXFLAGS中没有设置-O等级时的默认等级。这样就不会优化代码,这通常不是我们想要的。
-O1:这是最基本的优化等级。编译器会在不花费太多编译时间的同时试图生成更快更小的代码。这些优化是非常基础的,但一般这些任务肯定能顺利完成。
-O2:-O1的进阶。这是推荐的优化等级,除非你有特殊的需求。-O2会比-O1启用多一些标记。设置了-O2后,编译器会试图提高代码性能而不会增大体积和大量占用的编译时间。
-O3:这是最高最危险的优化等级。用这个选项会延长编译代码的时间,并且在使用gcc4.x的系统里不应全局启用。自从3.x版本以来gcc的行为已经有了极大地改变。在3.x,-O3生成的代码也只是比-O2快一点点而已,而gcc4.x中还未必更快。用-O3来编译所有的软件包将产生更大体积更耗内存的二进制文件,大大增加编译失败的机会或不可预知的程序行为(包括错误)。这样做将得不偿失,记住过犹不及。在gcc 4.x.中使用-O3是不推荐的。
-Os:这个等级用来优化代码尺寸。其中启用了-O2中不会增加磁盘空间占用的代码生成选项。这对于磁盘空间极其紧张或者CPU缓存较小的机器非常有用。但也可能产生些许问题,因此软件树中的大部分ebuild都过滤掉这个等级的优化。使用-Os是不推荐的。

如何查看当前各个节点的可用资源?

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注