整理文档
This commit is contained in:
@@ -1,139 +0,0 @@
|
||||
---
|
||||
weight: 2
|
||||
title: "服务器配置"
|
||||
---
|
||||
|
||||
## 基本情况
|
||||
|
||||
下面列出服务器放置的位置和主要用途,方便读者区分。当然主要用途之外也可以有“次要用途”,只要不影响他人。
|
||||
|
||||
| 服务器 | 地址(物理意义上) | 操作系统 | 主要用途 |
|
||||
|:-:|:-:|:-:|:-:|
|
||||
| 厦大超算<br/>(jykang) | 我也不知道<br/>好像在嘉庚三地下室<br/>反正这个肯定丢不了 | Linux CentOS | VASP(CPU) |
|
||||
| srv1 | 物机大楼 351 隔间内机架上<br/>很吵的那四台就是 | Linux NixOS | VASP(CPU) |
|
||||
| srv1<br/>(Windows) | 虚拟机<br/>对应宿主为 srv1-node2 <br/>即从上往下数第三个节点 | Windows | FDTD Solutions |
|
||||
| xmupc1 | 物机大楼457我桌子右边 | Linux NixOS | VASP(GPU) |
|
||||
| xmupc2 | 物机大楼457我桌子右边 | Linux NixOS | VASP(GPU) |
|
||||
|
||||
## 软件
|
||||
|
||||
待补充(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` |
|
||||
| srv1(Windows) | `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 年)最好的笔记本 CPU(R9-7945HX)性能约为 125 GFLOPS,整机大约七千可以买到,可以据此估计各个服务器的 CPU/GPU 性能。
|
||||
|
||||
{{< tabs items="厦大超算(jykang),srv1,srv1(Windows),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(即srv1(Windows))。
|
||||
同时使用 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 协议安全性可能不及其它两者。
|
||||
22
content/docs/server/config/_index.md
Normal file
22
content/docs/server/config/_index.md
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
weight: 2
|
||||
title: "服务器配置"
|
||||
---
|
||||
|
||||
下面是各个服务器放置的位置和主要用途,方便读者区分。当然主要用途之外也可以有“次要用途”,只要不影响他人。
|
||||
|
||||
| 服务器 | 地址(物理意义上) | 操作系统 | 主要用途 |
|
||||
|:-:|:-:|:-:|:-:|
|
||||
| 厦大超算<br/>(jykang) | 我也不知道<br/>好像在嘉庚三地下室<br/>反正这个肯定丢不了 | Linux CentOS | VASP(CPU) |
|
||||
| srv1 | 物机大楼 351 隔间内机架上<br/>很吵的那四台就是 | Linux NixOS | VASP(CPU) |
|
||||
| srv1<br/>(Windows) | 虚拟机<br/>对应宿主为 srv1-node2 <br/>即从上往下数第三个节点 | Windows | FDTD Solutions |
|
||||
| srv2 | 物机大楼457后门旁边 | Linux NixOS | VASP(GPU) |
|
||||
|
||||
继续了解:
|
||||
|
||||
{{< cards >}}
|
||||
{{< card link="link" title="连接参数" icon="link" >}}
|
||||
{{< card link="hardware" title="硬件和队列" icon="cpu" >}}
|
||||
{{< card title="安装的软件" subtitle="咕" icon="atom" >}}
|
||||
{{< /cards >}}
|
||||
|
||||
87
content/docs/server/config/hardware.md
Normal file
87
content/docs/server/config/hardware.md
Normal file
@@ -0,0 +1,87 @@
|
||||
---
|
||||
weight: 2
|
||||
title: "硬件和队列"
|
||||
---
|
||||
|
||||
以下表格总结了各个服务器的硬件配置。浮点性能均指双精度浮点性能(而不是衡量 AI 算力常用的单精度浮点性能)。
|
||||
|
||||
2024 年最好的笔记本 CPU(R9-7945HX)性能约为 125 GFLOPS,整机大约六七千可以买到;
|
||||
最好的服务器 CPU(EPYC 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(即srv1(Windows))。
|
||||
同时使用 Windows 虚拟机和宿主机做计算会严重影响性能,占用内存过高还有可能会导致节点崩溃,你的任务就白算了(倒是也没有什么更严重后果)。
|
||||
如果你不知道这段时间内有没有人在使用 Windows 虚拟机,建议干脆不要使用这个节点。
|
||||
{{< /details >}}
|
||||
|
||||
|
||||
## srv1(Windows)
|
||||
|
||||
用于存储计算数据的硬盘空间约 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` |
|
||||
23
content/docs/server/config/link.md
Normal file
23
content/docs/server/config/link.md
Normal 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` |
|
||||
| srv1(Windows) | `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 协议安全性可能不及其它两者。
|
||||
@@ -16,13 +16,12 @@ title: "使用队列系统"
|
||||
不同的服务器使用不同的队列系统。
|
||||
|
||||
* 厦大超算(jykang):使用 LSF。
|
||||
* srv1:使用 Slurm。
|
||||
* srv1 和 srv2:使用 Slurm。
|
||||
* srv1(Windows):没有队列系统,但请阅读 [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(新)基本相同,只是 VASP(CPU)的打包方式不同,使得提交任务的命令略有不同。
|
||||
下一次服务器维护时,xmupc1 和 xmupc2 计划合并为一个集群,并且应用新的打包方式。
|
||||
|
||||
提交 VASP(CPU)任务的例子:
|
||||
|
||||
```bash
|
||||
sbatch --ntasks=2 --cpus-per-task=4 --hint=nomultithread --job-name="my great job" --output=output.txt vasp-intel-std
|
||||
```
|
||||
|
||||
[^1]: 实际上队列系统与要运行的软件还是有许多耦合的,尤其是使用 MPI 并行的程序(包括绝大多数成熟的大型科学计算软件)。
|
||||
如何让队列系统与这些软件对接好有时会很麻烦,只是普通用户不需要关心(我替你们搞定了)。
|
||||
|
||||
@@ -13,54 +13,56 @@ title: "Slurm"
|
||||
|
||||
## 提交任务
|
||||
|
||||
{{< callout type="warning" >}}
|
||||
近期服务器正在陆续升级,这里记录的命令不一定适用。请以 tui 的提示为准。
|
||||
{{< /callout >}}
|
||||
|
||||
使用 `sbatch` 命令提交任务。当加上参数时,会直接提交任务;当不加任何参数时,会调用 `sbatch-tui` 让你选。
|
||||
|
||||
提交一个 VASP(CPU)任务的例子:
|
||||
|
||||
```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 并行的程序(包括 VASP(CPU),但不包括 VASP(GPU)),`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`。
|
||||
|
||||
以下是一个提交 VASP(GPU)任务的例子(这个例子适用于旧的打包方式,会在下次服务器维护后更改):
|
||||
以下是一个提交 VASP(GPU)任务的例子:
|
||||
|
||||
```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` 对于 VASP(GPU)来说一定要写且只能设置为 `1`,对于其它任务(例如 LAMMPS)可以适当修改。[^4]
|
||||
* `--cpus-per-task` 对于 VASP(GPU)来说通常不用指定[^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` 对于 VASP(GPU)来说一定要写且只能设置为 `1`,对于其它任务(例如 LAMMPS)可以适当修改。[^4]
|
||||
* `--cpus-per-task` 对于 VASP(GPU)通常来说设置为 `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
|
||||
VASP(GPU)限制每个 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 的核心数或者核心数的一半时,性能最好。
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
|
||||
之后可以利用空闲时间,浏览一下[使用服务器](..)中的其它内容。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user