一些硬件参数
A100
peak FP64 : 9.7TFLOPS
peak FP32 : 19.5 TFLOPS
peak FP16 : 78 TFLOPS
peak TF32 tensor core : 156 TFLOPS
192KB L1 cache (shared memory) / SM
40MB L2 cache
40GB 主存, 1555GB/s 带宽
PCIe 4 : 31.5GB/s
peak FP64 : 9.7TFLOPS
peak FP32 : 19.5 TFLOPS
peak FP16 : 78 TFLOPS
peak TF32 tensor core : 156 TFLOPS
192KB L1 cache (shared memory) / SM
40MB L2 cache
40GB 主存, 1555GB/s 带宽
PCIe 4 : 31.5GB/s
在地学系的 centos 7 CPU 集群上配 slurm
登录节点 192.168.100.10
计算节点 192.168.100.2[1-8]
slurm 依赖 munge
yum update
yum install epel-release
yum install -y munge munge-libs munge-devel
拷贝 munge-key :
scp data:/etc/munge/munge.key /etc/munge/
chown munge: /etc/munge/munge.key
chmod 400 /etc/munge/munge.key
安装其他依赖:
yum install -y openssl openssl-devel pam-devel numactl numactl-devel hwloc hwloc-devel lua lua-devel readline-devel rrdtool-devel ncurses-devel man2html libibmad libibumad
yum install -y perl-ExtUtils-MakeMaker
yum install -y mysql
yum install -y perl-PCP-PMDA
从头编译 slurm :
tar -xvjf slurm-18.08.2.tar.bz2
cd slurm-18.08.2/
./configure --prefix=/usr --sysconfdir=/etc/slurm --with-munge=/usr/bin/munge
make -j12
make install
make install-contrib
拷贝 slurmd 服务 :
cp etc/slurmd.service /etc/systemd/system
登录节点启动服务 slurmctld
计算节点启动服务 slurmd
slurmd
log 路径默认为 /var/log/slurmd.log
slurm 配置文件为 /etc/slurm/slurm.conf
,需保证所有节点的配置文件相同
配置 /etc/slurm/cgroup.conf
如下:
CgroupAutomount=yes
ConstrainCores=no
ConstrainRAMSpace=no
新建 slurm 用户:
groupadd -g 888 slurm
useradd -m -c "SLURM workload manager" -d /var/lib/slurm -u 888 -g slurm -s /bin/bash slurm
使用 slurm 运行 slurmd.service
在 /etc/systemd/system/slurmd.service
中设置
[Service]
User=slurm
slurm 生成配置:https://slurm.schedmd.com/configurator.html
slurmd -Dvvv # 调试启动
slurmd -C # 查看节点配置
scontrol show node [node] # 查看 node 状态
scontrol update NodeName=[node] State=UNDRAIN # 将 node 状态设为 undrain sf
slurmdPidFile 默认位于 /var/run/slurmd.pid
,路径
但 /var/run
目录只有 root 有写权限,且 /var/run
是 tmpfs
新建 /var/run/slurm
,权限设置为 0770
在 /etc/tmpfiles.d/slurm.conf
中添加
d /var/run/slurm 0770 root slurm -
开机后自动设置路径
修改 /etc/systemd/system/slurmd.service
中 PIDFile 为 /var/run/slurm/slurmd.pid
然后 systemctl daemon-reload
每个 spack 环境包括两个文件 spack.yaml
, spack.lock
,可以用来在其他机器上建立相同环境
spack config blame [scope]
查看一个 scope 的 config 出处
module 路径: $SPACK_ROOT/share/spack/modules
包配置路径 : $SPACK_ROOT/var/spack/repos/builtin/packages
zlib
: 无损压缩,DEFLATE算法,结合 LZ77 和 Huffman 编码,使用在 PNG 和 zip 格式中
hwloc
:hardware locality,抽象当代处理器的复杂 hierarchy
HDF5
:Hierarchical Data Format version 5,保存大量复杂数据,支持压缩
pkgconf
:管理软件编译,向编译器提供必要的编译和链接flag,是 pkg-config
包的代替
ncurses
:new curses,创建 text user interface
BLAS : basic linear algebra subprograms (low level)
LAPACK : linear algebra package (high level,在 BLAS 之上)
ScaLAPACK : scalable LAPACK,支持 MPI 的 LAPACK
Intel MKL : 包含 BLAS, LAPACK, ScaLAPACK
ELPA : eigenvalue solvers for petaflop applications
使用 cublasCreate
创建 cuBLAS library context 的 handle,
一个 context 关联一个 device
cuBLAS library context 绑定 CUDA context
Ab Initio Electronic-Structure Simulation DGDFT : LU分解, SPMV 2.5 Million-Atom Ab Initio Electronic-Structure Simulation of Complex Metallic Heterostructures with DGDFT
Mesh-Refined Particle-In-Cell Simulations (WARPX) : PML Pushing the Frontier in the Design of Laser-Based Electron Accelerators with Groundbreaking Mesh-Refined Particle-In-Cell Simulations on Exascale-Class Supercomputers