整理文档

This commit is contained in:
2025-01-12 12:11:54 +08:00
parent 80629870fa
commit dcd5200485
8 changed files with 172 additions and 210 deletions

View File

@@ -1,139 +0,0 @@
---
weight: 2
title: "服务器配置"
---
## 基本情况
下面列出服务器放置的位置和主要用途,方便读者区分。当然主要用途之外也可以有“次要用途”,只要不影响他人。
| 服务器 | 地址(物理意义上) | 操作系统 | 主要用途 |
|:-:|:-:|:-:|:-:|
| 厦大超算<br/>jykang | 我也不知道<br/>好像在嘉庚三地下室<br/>反正这个肯定丢不了 | Linux CentOS | VASPCPU |
| srv1 | 物机大楼 351 隔间内机架上<br/>很吵的那四台就是 | Linux NixOS | VASPCPU |
| srv1<br/>Windows | 虚拟机<br/>对应宿主为 srv1-node2 <br/>即从上往下数第三个节点 | Windows | FDTD Solutions |
| xmupc1 | 物机大楼457我桌子右边 | Linux NixOS | VASPGPU |
| xmupc2 | 物机大楼457我桌子右边 | Linux NixOS | VASPGPU |
## 软件
待补充VASP 打了哪些补丁,还有哪些计算软件等)。
<!-- TODO -->
## 连接协议和参数
以下总结了各个服务器支持的连接协议和对应的参数,留空即表明该服务器不支持该协议。如果不知道如何使用这些参数,参考[连接到服务器](../link)。
| 服务器 | 用户名 | SSH 地址 | SSH 端口 | RDP 地址 | SMB 地址[^3] |
|:-:|:-:|:-:|:-:|:-:|:-:|
| 厦大超算<br/>jykang | `jykang` | `hpc.xmu.edu.cn`[^1] | `22` | | |
| srv1 | `GROUPIII-n` | `srv1.chn.moe` | `22` | `srv1.chn.moe:6211`[^2] | `srv1.chn.moe` |
| srv1Windows | `GROUPIII-n` | `srv1.chn.moe` | `6144` | `srv1.chn.moe` |
| xmupc1 | 姓名首字母(例如 `chn` | `xmupc1.chn.moe` | `6007` | `xmupc1.chn.moe`[^2] | `xmupc1.chn.moe` |
| xmupc2 | 姓名首字母(例如 `chn` | `xmupc2.chn.moe` | `6394` | `xmupc2.chn.moe:3390`[^2] |
## 硬件配置
以下表格总结了各个服务器的硬件配置。
现在2024 年)最好的笔记本 CPUR9-7945HX性能约为 125 GFLOPS整机大约七千可以买到可以据此估计各个服务器的 CPU/GPU 性能。
{{< tabs items="厦大超算jykang,srv1,srv1Windows,xmupc1 & xmupc2" >}}
{{< tab >}}
这里仅列出 jykang 有权限使用的节点。信息采集于 2024 年 10 月 21 日,可能有变化。
| 节点组 | 单节点CPU | 单节点理论性能<br/>GFLOPS | 单节点内存 |
|:-:|:-:|:-:|:-:|
| `cnodes` | 双路 Intel E5-2690<br/>共 16 核 32 线程<br/>限制使用 20 线程 | 29 | `c00{1..9}`: 约 60 GB<br/>`c0{19..44}`: 约 30 GB<br/>`c0{45..48}`: 251.7 GB |
| `normal_1day`<br/>`normal_1week` | 双路 Intel E5-2680 v4<br/>共 28 核 | 93 | 124.9 GB |
| `b_node` | 双路 Intel 5318Y<br/>共 48 核 | 167 | 251.3 GB |
| `charge_s_normal`<br/>`hd_sd530` | 双路 Intel 6126<br/>共 24 核 | 79 | `charge_s_normal`: 约 180 GB<br/>`hd0{01..27}`: 125.2 GB<br/>`hd028`: 93.7 GB |
| `hd_sd530_6226R` | 双路 Intel 6226R<br/>共 32 核 | 129 | 188.2 GB |
{{< /tab >}}
{{< tab >}}
此集群包含了四个节点。其中第一个节点srv1-node0的性能较好推荐优先使用剩下的三个节点性能相对较差。
用于存储计算数据的硬盘大小为 1 TB使用 [btrfs](../qa#btrfs-是什么),实际可存储数据大约 2.5 TB。
| 节点主机名</br>Slurm 中的节点名) | 内存 | CPU | CPU 理论性能<br/>GFLOPS |
|:-:|:-:|:-:|:-:|
| srv1-node0</br>n0 | 128 GB | 四路 Intel Gold 6230<br/>共 80 核 160 线程 | 250 |
| srv1-node1</br>n1 | 32 GB | 四路 Intel E7-4809v4<br/>共 32 核 64 线程 | 146 |
| srv1-node2</br>n2 | 64 GB | 四路 Intel E7-4809v4<br/>共 32 核 64 线程 | 146 |
| srv1-node3</br>n3 | 40 GB | 四路 Intel E7-4809v4<br/>共 32 核 64 线程 | 146 |
谨慎使用第三个节点srv1-node2做计算。详见下方的说明。
{{< details title="谨慎使用第三个节点的原因" closed="true" >}}
按照吴志明老师的要求,此节点还安装了一个 Windows 虚拟机用于 FDTD Solutions即srv1Windows
同时使用 Windows 虚拟机和宿主机做计算会严重影响性能,占用内存过高还有可能会导致节点崩溃,你的任务就白算了(倒是也没有什么更严重后果)。
如果你不知道这段时间内有没有人在使用 Windows 虚拟机,建议干脆不要使用这个节点。
{{< /details >}}
{{< /tab >}}
{{< tab >}}
用于存储计算数据的硬盘空间约 500 GB。
| 内存 | CPU | CPU理论性能<br/>GFLOPS |
|:-:|:-:|:-:|
| 128 GB | 四路 Intel E7-4809v4<br/>共 32 核 32 线程 | 146 |
{{< /tab >}}
{{< tab >}}
对于大多数任务,推荐使用 GPU 进行计算,因为算得快;对于需要较多内存的任务,因为 GPU 的显存不够用,推荐使用 CPU。
xmupc1 用于存储计算数据的硬盘大小为 2 TB使用 [btrfs](../qa#btrfs-是什么),实际可存储数据大约 5 TB。
xmupc2 用于存储计算数据的硬盘大小为 18 TB使用 [btrfs](../qa#btrfs-是什么),实际可存储数据大约 40 TB。
| 主机 | 设备 | 理论性能<br/>GFLOPS双精度/单精度) | 内存/显存 |
|:-:|:-:|:-:|:-:|
| xmupc1 | CPU: AMD R9-5950X<br/>16 核 32 线程 | 100/100 | 96 GB |
| xmupc1 | GPU: NVIDIA 4090 | 1290/82580 | 24 GB |
| xmupc1 | GPU: NVIDIA 3090 | 556/35580 | 24 GB |
| xmupc1 | GPU: NVIDIA P5000 | 194/6197 | 16 GB |
| xmupc2 | CPU: 双路 Intel Gold 6152<br/>共 44 核 88 线程 | 136/136 | 256 GB |
| xmupc2 | GPU: NVIDIA 4090 | 1290/82580 | 24 GB |
| | GPU: NVIDIA 2080 Ti<br/>(买了没装) | 421/13448 | 12 GB |
| | ~~GPU: NVIDIA H100<br/>(未付款,期待发货)~~ | 25600/51200 | 80 GB |
VASP 使用双精度浮点(即双精度的 GFLOPS 更能估计 VASP 的实际性能)。
一些其它的软件可能使用单精度浮点(例如 LAMMPS也可能使用双精度浮点。
深度学习、游戏渲染时,一般使用单精度或者半精度浮点。
{{< /tab >}}
{{< /tabs >}}
## 队列
一些服务器包含多个队列。
{{< tabs items="厦大超算jykang,srv1" >}}
{{< tab >}}
信息采集于 2024 年 10 月 21 日,可能有变化。
| 队列 | 时间限制 | 节点组 | 节点 |
|:-:|:-:|:-:|:-:|
| `normal`(默认) | 14 天 | `cnodes` | `c00{1..9}` `c0{19..48}`<br/>以下除外:`c022`
| `normal_1day` | 1 天 | `normal_1day` | `nxt00{1..9}` `nxt0{41..67}`<br/>以下除外:`nxt043` |
| `normal_1week` | 7 天 | `normal_1week` | `nxt0{10..40}`<br/>以下除外:`nxt015` |
| `normal_2week` | 14 天 | `b_node` | `b0{01..14}` |
| `normal_1day_new` | 1 天 | `charge_s_normal` | `s0{06..18}` |
| `ocean_530_1day` | 1 天 | `hd_sd530` | `hd0{01..28}` |
| `ocean6226R_1day` | 1 天 | `hd_sd530_6226R` | `hd0{29..48}` |
{{< /tab >}}
{{< tab >}}
| 队列 | 包含节点 |
|:-:|:-:|
| `localhost`(默认) | `n0` |
| `old` | `n1` `n3` |
| `fdtd` | `n2` |
| `all` | `n[0-3]` |
{{< /tab >}}
{{< /tabs >}}
[^1]: 使用厦大超算jykang必须开启 SSH agent forwarding
详见[连接 VASP 服务器,开启 SSH 代理转发](../link#连接-vasp-服务器开启-ssh-代理转发)或[使用 OpenSSH](../link#使用-openssh)。
[^2]: 使用 RDP 协议连接到 Linux 服务器时,需要手动设置连接类型,详见:[RDP 设置连接类型](../qa#rdp-设置连接类型)。
当使用 Linux 系统连接到 Linux 服务器时,推荐使用 SSH X11 forwarding 代替远程桌面。
详见:[使用 SSH X11 forwarding](../qa#使用-ssh-x11-forwarding)。
[^3]: SMB 协议使用与 RDP 或 SSH 不同的认证机制,与 SSH 和 RDP 不共用密码,使用前需要先联系我设置一个。
此外 SMB 协议安全性可能不及其它两者。

View File

@@ -0,0 +1,22 @@
---
weight: 2
title: "服务器配置"
---
下面是各个服务器放置的位置和主要用途,方便读者区分。当然主要用途之外也可以有“次要用途”,只要不影响他人。
| 服务器 | 地址(物理意义上) | 操作系统 | 主要用途 |
|:-:|:-:|:-:|:-:|
| 厦大超算<br/>jykang | 我也不知道<br/>好像在嘉庚三地下室<br/>反正这个肯定丢不了 | Linux CentOS | VASPCPU |
| srv1 | 物机大楼 351 隔间内机架上<br/>很吵的那四台就是 | Linux NixOS | VASPCPU |
| srv1<br/>Windows | 虚拟机<br/>对应宿主为 srv1-node2 <br/>即从上往下数第三个节点 | Windows | FDTD Solutions |
| srv2 | 物机大楼457后门旁边 | Linux NixOS | VASPGPU |
继续了解:
{{< cards >}}
{{< card link="link" title="连接参数" icon="link" >}}
{{< card link="hardware" title="硬件和队列" icon="cpu" >}}
{{< card title="安装的软件" subtitle="咕" icon="atom" >}}
{{< /cards >}}

View File

@@ -0,0 +1,87 @@
---
weight: 2
title: "硬件和队列"
---
以下表格总结了各个服务器的硬件配置。浮点性能均指双精度浮点性能(而不是衡量 AI 算力常用的单精度浮点性能)。
2024 年最好的笔记本 CPUR9-7945HX性能约为 125 GFLOPS整机大约六七千可以买到
最好的服务器 CPUEPYC 9965性能约为 1124 GFLOPS大概十万块可以买到一块。
可以据此估计各个服务器的 CPU 性能。
CPU 和 GPU 的成绩通常不能直接比较,但对于可以大量并行、并且瓶颈在浮点计算或者内存访问的任务,同价钱的 GPU 通常确实比 CPU 快很多。
## 厦大超算jykang
这里仅列出 jykang 有权限使用的节点。信息采集于 2024 年 10 月 21 日,之后可能有变化。
| 队列 | <div style="width:70px">时间限制</div> | 节点组 | <div style="width:200px">节点</div> | <div style="width:200px">单节点CPU</div> | 单节点理论性能<br/>GFLOPS | <div style="width:250px">单节点内存</div> |
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
| `normal`(默认) | 14 天 | `cnodes` | `c00{1..9}` `c0{19..48}`<br/>以下除外:`c022` | 双路 Intel E5-2690<br/>共 16 核 32 线程<br/>限制使用 20 线程 | 29 | `c00{1..9}`: 约 60 GB<br/>`c0{19..44}`: 约 30 GB<br/>`c0{45..48}`: 251.7 GB |
| `normal_1day` | 1 天 | `normal_1day` | `nxt00{1..9}` `nxt0{41..67}`<br/>以下除外:`nxt043` | 双路 Intel E5-2680 v4<br/>共 28 核 | 93 | 124.9 GB |
| `normal_1week` | 7 天 | `normal_1week` | `nxt0{10..40}`<br/>以下除外:`nxt015` | 双路 Intel E5-2680 v4<br/>共 28 核 | 93 | 124.9 GB |
| `normal_2week` | 14 天 | `b_node` | `b0{01..14}` | 双路 Intel 5318Y<br/>共 48 核 | 167 | 251.3 GB |
| `normal_1day_new` | 1 天 | `charge_s_normal` | `s0{06..18}` | 双路 Intel 6126<br/>共 24 核 | 79 | `charge_s_normal`: 约 180 GB<br/>`hd0{01..27}`: 125.2 GB<br/>`hd028`: 93.7 GB |
| `ocean_530_1day` | 1 天 | `hd_sd530` | `hd0{01..28}` | 双路 Intel 6126<br/>共 24 核 | 79 | `charge_s_normal`: 约 180 GB<br/>`hd0{01..27}`: 125.2 GB<br/>`hd028`: 93.7 GB |
| `ocean6226R_1day` | 1 天 | `hd_sd530_6226R` | `hd0{29..48}` | 双路 Intel 6226R<br/>共 32 核 | 129 | 188.2 GB |
## srv1
此集群包含了四个节点。其中第一个节点srv1-node0的性能较好推荐优先使用剩下的三个节点性能相对较差。
用于存储计算数据的硬盘大小为 1 TB使用 [btrfs](../qa#btrfs-是什么),实际可存储数据大约 2.5 TB。
| 节点主机名</br>Slurm 中的节点名) | 内存 | CPU | CPU 理论性能<br/>GFLOPS |
|:-:|:-:|:-:|:-:|
| srv1-node0</br>n0 | 128 GB | 四路 Intel Gold 6230<br/>共 80 核 160 线程 | 250 |
| srv1-node1</br>n1 | 32 GB | 四路 Intel E7-4809v4<br/>共 32 核 64 线程 | 146 |
| srv1-node2</br>n2 | 64 GB | 四路 Intel E7-4809v4<br/>共 32 核 64 线程 | 146 |
| srv1-node3</br>n3 | 40 GB | 四路 Intel E7-4809v4<br/>共 32 核 64 线程 | 146 |
| 队列 | 包含节点 |
|:-:|:-:|
| `localhost`(默认) | `n0` |
| `old` | `n1` `n3` |
| `fdtd` | `n2` |
| `all` | `n[0-3]` |
谨慎使用第三个节点srv1-node2做计算。详见下方的说明。
{{< details title="谨慎使用第三个节点的原因" closed="true" >}}
按照吴志明老师的要求,此节点还安装了一个 Windows 虚拟机用于 FDTD Solutions即srv1Windows
同时使用 Windows 虚拟机和宿主机做计算会严重影响性能,占用内存过高还有可能会导致节点崩溃,你的任务就白算了(倒是也没有什么更严重后果)。
如果你不知道这段时间内有没有人在使用 Windows 虚拟机,建议干脆不要使用这个节点。
{{< /details >}}
## srv1Windows
用于存储计算数据的硬盘空间约 500 GB。
| 内存 | CPU | CPU理论性能<br/>GFLOPS |
|:-:|:-:|:-:|
| 128 GB | 四路 Intel E7-4809v4<br/>共 32 核 32 线程 | 146 |
## srv2
用于存储计算数据的硬盘大小为 18 TB使用 [btrfs](../qa#btrfs-是什么),实际可存储数据大约 40 TB。
对于大多数任务,推荐使用 GPU 进行计算,因为算得快;对于需要较多内存的任务,因为 GPU 的显存不够用,推荐使用 CPU。
此外,在多个 GPU 都空闲的情况下Slurm 不会自动选择性能更好的 GPU可能会将任务分配到性能更差的 GPU 上;
因此通常推荐手动选择 GPU除非有很多任务要计算。
| 节点主机名</br>Slurm 中的节点名) | 设备 | 理论性能<br/>GFLOPS双精度/单精度) | 内存/显存 |
|:-:|:-:|:-:|:-:|
| `srv2-node0`</br>`n0` | CPU: 双路 Intel Gold 6152<br/>共 44 核 88 线程 | 136/136 | 256 GB |
| `srv2-node0`</br>`n0` | GPU: NVIDIA 4090 | 1290/82580 | 24 GB |
| `srv2-node1`</br>`n1` | CPU: AMD R9-5950X<br/>16 核 32 线程 | 100/100 | 96 GB |
| `srv2-node1`</br>`n1` | GPU: NVIDIA P5000 | 194/6197 | 16 GB |
| `srv2-node1`</br>`n1` | GPU: NVIDIA 3090 | 556/35580 | 24 GB |
| `srv2-node1`</br>`n1` | GPU: NVIDIA 4090 | 1290/82580 | 24 GB |
| | GPU: NVIDIA 2080 Ti<br/>(买了没装) | 421/13448 | 12 GB |
| | ~~GPU: NVIDIA H100<br/>(未付款,期待发货)~~ | 25600/51200 | 80 GB |
| 队列 | 包含节点 |
|:-:|:-:|
| `all`(默认) | `n0` `n1` |
| `n0` | `n0` |
| `n1` | `n1` |

View File

@@ -0,0 +1,23 @@
---
weight: 1
title: "连接参数"
---
以下总结了各个服务器支持的连接协议和对应的参数,留空即表明该服务器不支持该协议。
如果不知道如何使用这些参数,参考[连接到服务器](../link)。
Linux 服务器一般使用 SSH 协议PuTTY 和 WinSCP 等软件Windows 服务器一般使用 RDP 协议(远程桌面);但也不一定要用这些,看自己的使用习惯。
| 服务器 | 用户名 | SSH 地址 | SSH 端口 | RDP 地址 | SMB 地址[^3] |
|:-:|:-:|:-:|:-:|:-:|:-:|
| 厦大超算<br/>jykang | `jykang` | `hpc.xmu.edu.cn`[^1] | `22` | | |
| srv1 | `GROUPIII-n` | `srv1.chn.moe` | `22` | `srv1.chn.moe:6211`[^2] | `srv1.chn.moe` |
| srv1Windows | `GROUPIII-n` | `srv1.chn.moe` | `6144` | `srv1.chn.moe` |
| srv2 | 姓名首字母(例如 `chn` | `srv2.chn.moe` | `22` | `srv2.chn.moe`[^2] | `srv2.chn.moe` |
[^1]: 使用厦大超算jykang必须开启 SSH agent forwarding
详见[连接 VASP 服务器,开启 SSH 代理转发](../link#连接-vasp-服务器开启-ssh-代理转发)或[使用 OpenSSH](../link#使用-openssh)。
[^2]: 使用 RDP 协议连接到 Linux 服务器时,需要手动设置连接类型,详见:[RDP 设置连接类型](../qa#rdp-设置连接类型)。
当使用 Linux 系统连接到 Linux 服务器时,推荐使用 SSH X11 forwarding 代替远程桌面。
详见:[使用 SSH X11 forwarding](../qa#使用-ssh-x11-forwarding)。
[^3]: SMB 协议使用与 RDP 或 SSH 不同的认证机制,与 SSH 和 RDP 不共用密码,使用前需要先联系我设置一个。
此外 SMB 协议安全性可能不及其它两者。

View File

@@ -16,13 +16,12 @@ title: "使用队列系统"
不同的服务器使用不同的队列系统。
* 厦大超算jykang使用 LSF。
* srv1使用 Slurm。
* srv1 和 srv2:使用 Slurm。
* srv1Windows没有队列系统但请阅读 [Windows](#windows) 章节,了解相关注意事项。
* xmupc1 和 xmupc2也使用 Slurm但有一些不同见 [Slurm](#slurm旧)。
{{< cards >}}
{{< card link="lsf" title="LSF" subtitle="IBM Spectrum LSF适用于厦大超算jykang" >}}
{{< card link="slurm" title="Slurm" subtitle="Slurm适用于 srv1" >}}
{{< card link="slurm" title="Slurm" subtitle="Slurm适用于 srv1 srv2" >}}
{{< /cards >}}
### Windows
@@ -137,16 +136,5 @@ run;
```
{{% /details %}}
### Slurm
与 Slurm基本相同只是 VASPCPU的打包方式不同使得提交任务的命令略有不同。
下一次服务器维护时xmupc1 和 xmupc2 计划合并为一个集群,并且应用新的打包方式。
提交 VASPCPU任务的例子
```bash
sbatch --ntasks=2 --cpus-per-task=4 --hint=nomultithread --job-name="my great job" --output=output.txt vasp-intel-std
```
[^1]: 实际上队列系统与要运行的软件还是有许多耦合的,尤其是使用 MPI 并行的程序(包括绝大多数成熟的大型科学计算软件)。
如何让队列系统与这些软件对接好有时会很麻烦,只是普通用户不需要关心(我替你们搞定了)。

View File

@@ -13,54 +13,56 @@ title: "Slurm"
## 提交任务
{{< callout type="warning" >}}
近期服务器正在陆续升级,这里记录的命令不一定适用。请以 tui 的提示为准。
{{< /callout >}}
使用 `sbatch` 命令提交任务。当加上参数时,会直接提交任务;当不加任何参数时,会调用 `sbatch-tui` 让你选。
提交一个 VASPCPU任务的例子
```bash
sbatch --ntasks=2 --cpus-per-task=4 --hint=nomultithread --job-name="my great job" --output=output.txt --queue=localhost --export=ALL,OMP_NUM_THREADS=4,OMP_STACKSIZE=512m --nodes=1-1 --mem=28G --wrap="vasp-intel srun --mpi=pmix vasp-std"
sbatch --partition=localhost --nodes=1-1 --ntasks=2 --cpus-per-task=4 --hint=nomultithread --job-name="my great job" --output=output.txt --export=ALL,OMP_STACKSIZE=512m --mem=28G --wrap="vasp-intel srun vasp-std"
sbatch -p localhost -N 1-1 -n 2 -c 4 -J "my great job" -o output.txt --wrap="vasp-intel srun vasp-std"
```
* `--ntasks=2 --cpus-per-task=4` 两者的乘积指定使用多少 CPU 核[^5],必写
* `--partition``-p` 指定使用哪个队列,不写则使用默认队列
* `--nodes=1-1``-N 1-1` 强制所有任务分配到一个节点上(即不跨节点运行),推荐在大多情况下使用[^11]。
若要跨节点并行,并且节点 CPU/GPU 相同,不写这个参数就可以。
当要跨的节点的 CPU/GPU 型号不同时,还有别的注意事项,详见[这里](../qa#混合使用不同型号的节点)。
* `--ntasks --cpus-per-task``-n -c` 两者的乘积指定使用多少 CPU 核[^5],必写。
同样是占用 9 个核,`--ntasks=3 --cpus-per-task=3``--ntasks=9 --cpus-per-task=1` 性能并不相同。
此外,当 `--cpus-per-task` 不为 `1`VASP 的 `NCORE` 等参数也与这里的参数耦合[^9]。
可以照抄下面的设置,或者自己尝试一下如何设置性能更好[^15]
* 对于 xmupc1`--ntasks=3 --cpus-per-task=4`
* 对于 xmupc2`--ntasks=4 --cpus-per-task=10`
* 对于 srv1默认队列:`--cpus-per-task=10``--ntasks=8` 或按需设置
* 对于 srv1其它队列:`--ntasks=4 --cpus-per-task=8`
* `--hint=nomultithread` 对于大多软件(包括 VASP都需要写[^6],不写不会出错但会比较慢
* `--job-name=xxx` 指定任务的名字,可以不写。
* `--queue=xxx` 指定队列的名字,不写时使用默认队列
* 对于 srv1 的 `localhost` 队列:`--cpus-per-task=10``--ntasks=8` 或按需设置
* 对于 srv1 的 `old` 队列`--ntasks=4 --cpus-per-task=8`
* 对于 srv2 n0 队列:`--ntasks=8 --cpus-per-task=5`
* 对于 srv2 n0 队列:`--ntasks=3 --cpus-per-task=4`
* `--hint` 一般不要修改也无需指定[^6]
* `--job-name``-J` 指定任务的名字,可以不写。
* `--output``-o` 指定输出文件的名字,可以不写
* `--export=ALL,OMP_NUM_THREADS=4,OMP_STACKSIZE=512m` 指定环境变量。完全不写这个参数时,相当于 `--export=ALL`
* `ALL` 表示使用当前环境中的所有变量,并额外设置后面追加的值;
* `OMP_NUM_THREADS=4` 表示设置 OpenMP 的线程数为 4。
对于使用 OPENMP 并行的程序(包括 VASPCPU但不包括 VASPGPU`OMP_NUM_THREADS` 必须设置为与 `--cpus-per-task` 相同的值;
即使没有设置 `--cpus-per-task`,也需要设置 `OMP_NUM_THREADS=1`
* `OMP_STACKSIZE` 设置每个 OpenMP 线程的栈大小需要足够大VASP 文档推荐设置为 `512m`,通常已经足够。
如果遇到段错误Segmentation fault可以尝试增大这个值。
* `--nodes=1-1` 强制所有任务分配到一个节点上(即不跨节点运行),推荐在大多情况下使用[^11]。
若要跨节点并行,并且节点 CPU/GPU 相同,不写这个参数就可以。
当要跨的节点的 CPU/GPU 型号不同时,还有别的注意事项,详见[这里](../qa#混合使用不同型号的节点)。
vasp 脚本中已经设置了一些必需的参数,通常情况下不需要再手动指定。
* `--mem=28G` 指定只使用内存大于等于 28 G 的节点,不设置则没有这个限制。
由于 Slurm 看到的内存大小比物理内存小一些[^14](例如 32 G 内存的节点Slurm 可能会认为它只有 31.5 G因此指定时也需要略小一些。
* `--wrap="vasp-intel srun --mpi=pmix vasp-std"` 指调用 std 版本的 VASP[^7]。
* `--wrap="vasp-intel srun vasp-std"` 指调用 std 版本的 VASP[^7]。
要使用 gam 或 ncl 版本,将最后的 `vasp-std` 改为 `vasp-gam``vasp-ncl`
以下是一个提交 VASPGPU任务的例子(这个例子适用于旧的打包方式,会在下次服务器维护后更改)
以下是一个提交 VASPGPU任务的例子
```bash
sbatch --gpus=1 --ntasks-per-gpu=1 --nodes=1-1 --job-name="my great job" --output=output.txt vasp-nvidia-std
sbatch --partition=localhost --ntasks=1 --cpus-per-task=1 --gpus=4060:1 --job-name="my great job" --output=output.txt --wrap="vasp-nvidia mpirun vasp-std"
sbatch -p localhost -n 1 -c 1 -G 4060:1 -J "my great job" -o output.txt --wrap="vasp-nvidia mpirun vasp-std"
```
* `--gpus` 指定使用哪个 GPU
* 要占用任意一个 GPU排到这个任务时哪个空闲就使用哪个`--gpus=1`。要占用任意两个就写 `--gpus=2`,以此类推
对于 VASP单个任务要占用超过一个 GPU多个显卡的速度会比单个更慢(因为显卡之间的通信速度会是瓶颈)[^12]。
* `--gpus``-G` 指定使用哪个 GPU
* 要占用任意一个 GPU排到这个任务时哪个空闲就使用哪个`--gpus=1``-G 1`
对于 VASP单个任务一般不需要占用超过一个 GPU多个显卡的速度会比单个更慢因为显卡之间的通信速度会是瓶颈[^12]。
* 要指定具体使用哪一个 GPU 时,写 `--gpus=4090:1`。2080 Ti 需要写为 `2080_ti`P5000 需要写为 `p5000`
* 当需要使用多个不同型号的 GPU 时(例如,指定使用一个 3090 和一个 4090 ,写 `--gres=gpu:3090:1,gpu:4090:1`
* `--ntasks-per-gpu=1` 对于 VASPGPU来说一定要写且只能设置为 `1`,对于其它任务(例如 LAMMPS可以适当修改。[^4]
* `--cpus-per-task` 对于 VASPGPU来说通常不用指定[^13],其它程序可能需要。这个选项的具体含义参考上一个例子。
* `vasp-nvidia-std` 即要执行的程序[^7],要使用 gam 或 ncl 版本时,写为例如 `vasp-nvidia-gam`
* 当需要使用多个不同型号的 GPU 时,写 `--gres=gpu:3090:1,gpu:4090:1`(使用一个 3090 和一个 4090`-G 2` (使用任意两个 GPU
如果这些 GPU 可能分布在不同节点,可能还有其它注意事项,详见 `--nodes` 参数的说明。
* `--ntasks-per-gpu` 对于 VASPGPU来说一定要写且只能设置为 `1`,对于其它任务(例如 LAMMPS可以适当修改。[^4]
* `--cpus-per-task` 对于 VASPGPU通常来说设置为 `1` 已经足够[^13]
要把其它程序提交到队列里,也是类似的写法。请自行举一反三。
@@ -81,7 +83,7 @@ squeue -t all -l
要显示还没有完成的任务的详细信息,或刚刚完成的任务的详细信息:
```bash
scontrol show job 114514
scontrol show job -d 114514
```
要在数据库中查找某一段时间内(例如 2024 年 8 月)提交的所有任务的详细信息[^10]
@@ -103,7 +105,7 @@ scancel -n my_great_job
scancel -u chn
```
如果自己已经提交了许多任务,现在想要把一个任务调整到自己的其它任务前面(不会影响整体优先级),可以使用:
如果自己已经提交了许多任务,现在想要把一个任务调整到自己的其它任务前面(不会影响自己任务的整体优先级),可以使用:
```bash
scontrol top 114514
@@ -123,16 +125,16 @@ sudo scontrol update JobId=3337 Nice=2147483645
VASPGPU限制每个 GPU 必须对应且只能对应一个 MPI 进程,不满足这个条件就会报错或者只使用 CPU 计算,因此只能用一个。
[^5]: 通常来说,`--ntasks` 对应 MPI 进程数,`--cpus-per-task` 对应 OpenMP 线程数。
这个对应关系并不是一定的,比如你先请求 10 个 task然后用 `srun` 运行 10 个不相关的程序也是可以的,这个过程中可以根本没有 MPI 和 OpenMP。
[^6]: 这个选项用于忽略 CPU 的超线程,即认为物理核心和对应的虚拟核心总共算一个核心
Slurm 默认会把超线程核心和物理核各算成一个核,但做科学计算时一般要关掉超线程
[^6]: `--hint=nomultithread` 用于忽略 CPU 的超线程,即按照物理核心来分配 CPU每个物理核心上只运行一个线程
对于大多数科学计算软件,忽略超线程的性能会比使用超线程更好(这与日常使用不同)
`--hint=nomultithread` 已经被设置为默认值(通过 `SLURM_HINT` 环境变量)。
[^7]: 使用 `--wrap` 参数和直接写在 `sbatch` 后面,都可以指定要运行的程序。
区别在于,后者必须是一个脚本(不能是二进制程序),并且在脚本里可以指定一些给 Slurm 看的参数。
[^9]: 具体是如何耦合的,见[官方文档](https://www.vasp.at/wiki/index.php/Combining_MPI_and_OpenMP)。
[^10]: 我不确定这里是否真的是任务的“提交时间”而不是“完成时间”或者别的什么时间,官方文档没有说清楚。
[^11]: 跨节点并行可能会有比较大的损耗。我们的服务器都仅仅使用千兆网互联,比不上学校的超算,可能损耗更大。
[^12]: 如果有 nvlink或许就不会出现这种情况。
[^13]: 按照经验,大多情况下,对于 VASP一个 CPU 核心搭配一个显卡已经足够,增加核心数并不会更快
少数情况下增加可能会有用例如运行机器学习时VASP 的机器学习使用纯 CPU 实现)。
[^13]: 少数情况下增加可能会有用例如运行机器学习时VASP 的机器学习使用纯 CPU 实现)
[^14]: 实际上是在 Slurm 的配置文件中手动指定的。具体每个节点指定了多少,见[系统配置文件](https://github.com/CHN-beta/nixos)。
[^15]: 按照经验OpenMP 线程数等于单个 CPU 或单个 ccx 的核心数或者核心数的一半时,性能最好。

View File

@@ -84,35 +84,12 @@ title: "快速开始"
1. `cd``test` 目录。
2. 使用命令 `chn_bsub`,然后按照提示,鼠标点选一个队列,鼠标点提交任务。看不懂的选项都是你暂时不需要看懂的,保持默认。
3. 恭喜你已经学会投递任务了,足以应付 90% 的需求。
4. 如果希望使用命令(而不是图形界面)投递任务,下面这些命令作为参考,可以照抄但至少改一下任务名:
```bash
bsub -J "my-great-job" -q normal_1day -n 28 -R 'span[hosts=1]' -o output.txt chn_vasp.sh 640_std
```
**如果你要使用的是其它服务器**
1. `cd``INCAR` 等文件所在的目录。
2. 使用命令 `sbatch`,不要加任何参数,然后按照提示,用鼠标点选,最后提交任务。看不懂的选项都是你暂时不需要看懂的,保持默认。
3. 恭喜你已经学会投递任务了,足以应付至少一多半的需求。
4. 如果希望使用命令(而不是图形界面)投递任务,下面这些命令作为参考:
对于 srv1
```bash
# 使用主节点,也就是最快那个节点,占满它的所有 CPU
sbatch --ntasks=8 --cpus-per-task=10 --export=ALL,OMP_NUM_THREADS=10,OMP_STACKSIZE=512m --hint=nomultithread --job-name="my-great-job" --output=output.txt --wrap="vasp-intel srun --mpi=pmix vasp-std"
# 使用其它比较老的节点,慢一些但也能用,但不使用与 FDTD 冲突的那个节点;占满单个节点的所有 CPU
sbatch --ntasks=4 --cpus-per-task=8 --export=ALL,OMP_NUM_THREADS=8,OMP_STACKSIZE=512m --hint=nomultithread --job-name="my-great-job" --output=output.txt --partition=old --nodes=1-1 --wrap="vasp-intel srun --mpi=pmix vasp-std"
# 使用与 FDTD 冲突的那个节点,不要同时运行 FDTD 和 VASP占满它的所有 CPU
sbatch --ntasks=4 --cpus-per-task=8 --export=ALL,OMP_NUM_THREADS=8,OMP_STACKSIZE=512m --hint=nomultithread --job-name="my-great-job" --output=output.txt --partition=fdtd --wrap="vasp-intel srun --mpi=pmix vasp-std"
```
对于 xmupc1/xmupc2:
```bash
# 使用 4090 计算
sbatch --ntasks=1 --gpus=4090:1 --job-name="my-great-job" --output=output.txt vasp-nvidia-std
```
之后可以利用空闲时间,浏览一下[使用服务器](..)中的其它内容。

View File

@@ -8,3 +8,5 @@ rocket: <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
queue: <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-6"><path stroke-linecap="round" stroke-linejoin="round" d="M3.75 12h16.5m-16.5 3.75h16.5M3.75 19.5h16.5M5.625 4.5h12.75a1.875 1.875 0 0 1 0 3.75H5.625a1.875 1.875 0 0 1 0-3.75Z" /></svg>
connect: <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-6"><path stroke-linecap="round" stroke-linejoin="round" d="M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622 1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244" /></svg>
present: <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-6"><path stroke-linecap="round" stroke-linejoin="round" d="M21 11.25v8.25a1.5 1.5 0 0 1-1.5 1.5H5.25a1.5 1.5 0 0 1-1.5-1.5v-8.25M12 4.875A2.625 2.625 0 1 0 9.375 7.5H12m0-2.625V7.5m0-2.625A2.625 2.625 0 1 1 14.625 7.5H12m0 0V21m-8.625-9.75h18c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125h-18c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125Z" /></svg>
cpu: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M9.181 10.181c.053-.053.148-.119.45-.16c.323-.043.761-.044 1.439-.044h1.86c.678 0 1.116.001 1.438.045c.303.04.398.106.45.16c.054.052.12.147.16.45c.044.322.045.76.045 1.438v1.86c0 .678-.001 1.116-.045 1.438c-.04.303-.106.398-.16.45c-.052.054-.147.12-.45.16c-.322.044-.76.045-1.438.045h-1.86c-.678 0-1.116-.001-1.438-.045c-.303-.04-.398-.106-.45-.16c-.054-.052-.12-.147-.16-.45c-.044-.322-.045-.76-.045-1.438v-1.86c0-.678.001-1.116.045-1.438c.04-.303.106-.398.16-.45"/><path fill="currentColor" fill-rule="evenodd" d="M12 3c.385 0 .698.312.698.698v2.79q.764.001 1.395.017V3.698a.698.698 0 0 1 1.395 0v2.79a1 1 0 0 1-.008.108c.936.115 1.585.353 2.078.846s.731 1.142.846 2.078a1 1 0 0 1 .108-.008h2.79a.698.698 0 0 1 0 1.395h-2.807q.017.63.017 1.395h2.79a.698.698 0 0 1 0 1.396h-2.79q-.001.764-.017 1.395h2.807a.698.698 0 0 1 0 1.395h-2.79a1 1 0 0 1-.108-.008c-.115.936-.353 1.585-.846 2.078s-1.142.731-2.078.846q.009.053.008.108v2.79a.698.698 0 0 1-1.395 0v-2.807q-.63.017-1.395.017v2.79a.698.698 0 0 1-1.396 0v-2.79a56 56 0 0 1-1.395-.017v2.807a.698.698 0 0 1-1.395 0v-2.79q0-.056.008-.108c-.936-.115-1.585-.353-2.078-.846s-.731-1.142-.846-2.078a1 1 0 0 1-.108.008h-2.79a.698.698 0 0 1 0-1.395h2.807a56 56 0 0 1-.017-1.395h-2.79a.698.698 0 0 1 0-1.396h2.79q.001-.764.017-1.395H2.698a.698.698 0 0 1 0-1.395h2.79q.056 0 .108.008c.115-.936.353-1.585.846-2.078s1.142-.731 2.078-.846a1 1 0 0 1-.008-.108v-2.79a.698.698 0 0 1 1.395 0v2.807q.63-.017 1.395-.017v-2.79c0-.386.313-.698.698-.698m-.976 5.581c-.619 0-1.152 0-1.578.058c-.458.061-.896.2-1.252.555c-.355.356-.494.794-.555 1.252c-.058.427-.058.96-.058 1.578v1.952c0 .619 0 1.151.058 1.578c.061.458.2.896.555 1.252c.356.355.794.494 1.252.555c.426.058.96.058 1.578.058h1.952c.619 0 1.151 0 1.578-.058c.458-.061.896-.2 1.252-.555c.355-.356.494-.794.555-1.252c.058-.427.058-.96.058-1.578v-1.952c0-.619 0-1.151-.058-1.578c-.061-.458-.2-.896-.555-1.252c-.356-.355-.794-.494-1.252-.555c-.427-.058-.96-.058-1.578-.058z" clip-rule="evenodd"/></svg>
atom: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="2.197" fill="currentColor"/><path fill="currentColor" d="M21.63441 6.43671c-.70909-1.22723-2.41155-1.73142-4.79628-1.42354c-.30258.03942-.61354.09379-.92927.15769C15.00856 2.619 13.6066 1 12 1C10.39089 1 8.98713 2.62441 8.087 5.1834c-2.7384-.54268-4.90657-.15669-5.72186 1.25331C1.55256 7.84376 2.2947 9.90626 4.12193 12C2.2947 14.09374 1.55256 16.15624 2.3651 17.56329c.58143 1.00732 1.85 1.49542 3.52453 1.49542a11.47535 11.47535 0 0 0 2.197-.24305C8.98673 21.37518 10.39069 23 12 23c1.60658 0 3.00854-1.619 3.90884-4.17086c.31573.0639.62669.11827.92927.15769a10.18235 10.18235 0 0 0 1.297.088c1.70461 0 2.92647-.52028 3.49932-1.51151c.81254-1.407.07053-3.46955-1.75643-5.56329C21.70494 9.90626 22.447 7.84376 21.63441 6.43671ZM16.9851 6.13956a9.0809 9.0809 0 0 1 1.15965-.08046c1.26048 0 2.14979.32826 2.507.94617c.50426.87335-.06645 2.44138-1.55187 4.16777a20.50554 20.50554 0 0 0-2.30139-1.95281a19.9752 19.9752 0 0 0-.5471-2.93612C16.49539 6.23744 16.7503 6.17013 16.9851 6.13956Zm-3.07236 9.17417c-.64647.37332-1.28408.70346-1.90695.9935c-.63936-.29755-1.2812-.62534-1.919-.9935c-.64888-.37459-1.25525-.76326-1.81959-1.15917c-.06229-.6861-.09688-1.405-.09688-2.15456s.03459-1.46846.09688-2.15456c.56434-.39591 1.17071-.78458 1.81959-1.15917c.63487-.36648 1.27383-.69333 1.91024-.98982c.62668.29132 1.26511.61409 1.91573.98982c.64908.37472 1.25572.76346 1.82019 1.15958c.06222.686.09682 1.40477.09682 2.15415s-.0346 1.46813-.09682 2.15415C15.16846 14.55027 14.56182 14.939 13.91274 15.31373Zm1.628.3351a17.87565 17.87565 0 0 1-.39136 1.82408a18.46424 18.46424 0 0 1-1.76012-.58257c.36293-.18713.72713-.38337 1.092-.594C14.8457 16.086 15.1977 15.86928 15.54078 15.64883Zm-4.92407 1.24372A18.41329 18.41329 0 0 1 8.851 17.474a17.86018 17.86018 0 0 1-.39176-1.82549c.34328.22058.69541.43734 1.06.64787C9.88355 16.50677 10.24989 16.70348 10.61671 16.89255ZM7.07428 13.25036A18.3863 18.3863 0 0 1 5.67548 12a18.38878 18.38878 0 0 1 1.3988-1.25043c-.02005.41033-.03252.82636-.03252 1.25043S7.05423 12.8401 7.07428 13.25036Zm1.385-4.89886a17.86727 17.86727 0 0 1 .391-1.82227a18.22228 18.22228 0 0 1 1.76937.57681c-.36775.18947-.735.38659-1.10031.59759C9.15468 7.91416 8.80255 8.13092 8.45927 8.3515Zm4.93057-1.242a18.48842 18.48842 0 0 1 1.75958-.58237a17.87565 17.87565 0 0 1 .39136 1.82408c-.34308-.22045-.69508-.43715-1.05948-.64754C14.11663 7.4931 13.75263 7.29652 13.38984 7.10946ZM16.92577 10.75A18.40125 18.40125 0 0 1 18.324 12a18.38809 18.38809 0 0 1-1.39826 1.25c.02-.41013.03251-.826.03251-1.25S16.94581 11.1601 16.92577 10.75ZM12 2.12854c.99773 0 2.05613 1.23433 2.80746 3.31044a20.80159 20.80159 0 0 0-2.8094 1.01141A20.51935 20.51935 0 0 0 9.19055 5.44481C9.94208 3.36508 11.00163 2.12854 12 2.12854ZM3.34774 7.00527c.35133-.60825 1.2519-.93437 2.52043-.93437a10.26212 10.26212 0 0 1 1.88362.20148A19.96778 19.96778 0 0 0 7.20147 9.2205a20.48874 20.48874 0 0 0-2.30166 1.95288C3.41412 9.44692 2.84341 7.87869 3.34774 7.00527Zm0 9.98946c-.50433-.87342.06638-2.44165 1.55207-4.16811A20.50145 20.50145 0 0 0 7.20147 14.7795a19.94422 19.94422 0 0 0 .5518 2.95356C5.50578 18.162 3.85468 17.87245 3.34774 16.99473ZM12 21.87146c-.99866 0-2.05847-1.23708-2.81007-3.31775a20.44828 20.44828 0 0 0 2.81155-1.00255a20.80209 20.80209 0 0 0 2.806 1.00979C14.05615 20.63706 12.99775 21.87146 12 21.87146Zm8.65175-4.87673c-.45914.79277-1.79257 1.10923-3.66667.86571c-.2348-.03057-.48971-.09788-.73369-.14455a19.97619 19.97619 0 0 0 .5471-2.93619A20.50419 20.50419 0 0 0 19.0999 12.827C20.58532 14.55335 21.156 16.12138 20.65177 16.99473Z"/><circle cx="-.5" cy="2" r="1.5" fill="currentColor"><animateMotion dur="2s" path="M14.75 14.1471C12.2277 15.6034 9.69019 16.4332 7.6407 16.6145C5.54599 16.7998 4.15833 16.3018 3.62324 15.375C3.08815 14.4482 3.35067 12.9974 4.55852 11.276C5.74031 9.59178 7.72768 7.80915 10.25 6.35289C12.7723 4.89662 15.3098 4.06682 17.3593 3.88549C19.454 3.70016 20.8417 4.1982 21.3768 5.125C21.9118 6.0518 21.6493 7.50256 20.4415 9.22397C19.2597 10.9082 17.2723 12.6909 14.75 14.1471Z" repeatCount="indefinite"/></circle></svg>