init
This commit is contained in:
9
content/docs/_index.md
Normal file
9
content/docs/_index.md
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
linkTitle: "Documentation"
|
||||
title: Documentation
|
||||
---
|
||||
|
||||
{{< callout emoji="🏗️" >}} 施工中 {{< /callout >}}
|
||||
|
||||
doc
|
||||
|
||||
24
content/docs/server/_index.md
Normal file
24
content/docs/server/_index.md
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
weight: 1
|
||||
title: "使用服务器"
|
||||
---
|
||||
|
||||
初次使用,可以看这里:
|
||||
|
||||
{{< cards >}}
|
||||
{{< card link="start" title="快速开始" subtitle="没有废话,只有必要的操作步骤" icon="rocket" >}}
|
||||
{{< /cards >}}
|
||||
|
||||
或者,选择下面的主题深入了解:
|
||||
|
||||
{{< cards >}}
|
||||
{{< card link="config" title="服务器配置" subtitle="了解服务器的硬件配置和连接参数,选择合适的服务器" icon="server" >}}
|
||||
{{< card
|
||||
link="link" title="连接到服务器" icon="connect"
|
||||
subtitle="在 Windows 上设置 WinSCP 和 PuTTY,或使用其它支持的连接方式"
|
||||
>}}
|
||||
{{< card title="使用 Linux" subtitle="Linux 上常见的概念和最常用的命令(咕咕咕)" icon="terminal" >}}
|
||||
{{< card link="job" title="使用队列系统" subtitle="提交任务、查看任务详情、取消任务等" icon="queue" >}}
|
||||
{{< card link="qa" title="Q & A" subtitle="常见问题解答" icon="question-mark-circle" >}}
|
||||
{{< card link="stat" title="厦大超算(jykang)使用统计" icon="chart-bar" >}}
|
||||
{{< /cards >}}
|
||||
139
content/docs/server/config.md
Normal file
139
content/docs/server/config.md
Normal file
@@ -0,0 +1,139 @@
|
||||
---
|
||||
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 协议安全性可能不及其它两者。
|
||||
193
content/docs/server/job.md
Normal file
193
content/docs/server/job.md
Normal file
@@ -0,0 +1,193 @@
|
||||
---
|
||||
weight: 4
|
||||
title: "使用队列系统"
|
||||
---
|
||||
|
||||
## 队列系统的作用
|
||||
|
||||
简而言之:排队。你告诉队列系统使用什么资源(例如多少核的 CPU)运行某个程序,轮到你的任务执行时,队列系统会按照你的要求执行任务。
|
||||
队列系统会考虑服务器的负载能力(不可以同时运行太多任务把服务器挤垮)、有多人使用服务器时公平分配资源,以及记录任务执行过程中的开销。
|
||||
|
||||
队列系统不与某个特定的计算软件(例如 VASP)绑定。
|
||||
也就是说,你可以脱离队列系统直接运行 VASP,也可以把别的软件也放到队列系统里运行,它们虽然经常在一起使用,但本质上是两个分离的概念。[^1]
|
||||
|
||||
## 使用队列系统
|
||||
|
||||
队列系统与操作系统绑定很深。
|
||||
|
||||
* srv1:使用 [Slurm(新)](#slurm新)。
|
||||
* srv1(Windows):请阅读 [Windows](#windows) 章节,了解相关注意事项。
|
||||
* xmupc1 和 xmupc2:使用 [Slurm(旧)](#slurm旧)。
|
||||
* 厦大超算(jykang):使用 [LSF](#lsf)。
|
||||
|
||||
### Slurm(新)
|
||||
|
||||
#### 使用图形界面快速开始
|
||||
|
||||
使用命令 `sbatch-tui` 或者 `sbatch` 不带任何参数,就可以看到一个图形界面[^3]。
|
||||
按照提示,鼠标点选对应按钮,即可提交任务。这可以满足一多半的需求。
|
||||
|
||||
以下用一些例子来进一步介绍如何使用 Slurm。更多细节请参考[官方文档](https://slurm.schedmd.com/)。
|
||||
例子中一些选项是可选的、一些是必写的,会详细说明。
|
||||
|
||||
#### 提交任务
|
||||
|
||||
使用 `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"
|
||||
```
|
||||
|
||||
* `--ntasks=2 --cpus-per-task=4` 两者的乘积指定使用多少 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` 指定队列的名字,不写时使用默认队列。
|
||||
* `--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#混合使用不同型号的节点)。
|
||||
* `--mem=28G` 指定只使用内存大于等于 28 G 的节点,不设置则没有这个限制。
|
||||
由于 Slurm 看到的内存大小比物理内存小一些[^14](例如 32 G 内存的节点,Slurm 可能会认为它只有 31.5 G),因此指定时也需要略小一些。
|
||||
* `--wrap="vasp-intel srun --mpi=pmix vasp-std"` 指调用 std 版本的 VASP[^7]。
|
||||
要使用 gam 或 ncl 版本,将最后的 `vasp-std` 改为 `vasp-gam` 或 `vasp-ncl`。
|
||||
|
||||
以下是一个提交 VASP(GPU)任务的例子(这个例子适用于旧的打包方式,会在下次服务器维护后更改):
|
||||
|
||||
```bash
|
||||
sbatch --gpus=1 --ntasks-per-gpu=1 --nodes=1-1 --job-name="my great job" --output=output.txt vasp-nvidia-std
|
||||
```
|
||||
|
||||
* `--gpus` 指定使用哪个 GPU:
|
||||
* 要占用任意一个 GPU(排到这个任务时哪个空闲就使用哪个),写 `--gpus=1`。要占用任意两个就写 `--gpus=2`,以此类推。
|
||||
对于 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`。
|
||||
|
||||
要把其它程序提交到队列里,也是类似的写法。请自行举一反三。
|
||||
|
||||
#### 查看任务
|
||||
|
||||
要列出正在等待和正在运行的任务:
|
||||
|
||||
```bash
|
||||
squeue -l
|
||||
```
|
||||
|
||||
要列出已经提交(包括已经完成、取消、失败)的任务:
|
||||
|
||||
```bash
|
||||
squeue -t all -l
|
||||
```
|
||||
|
||||
要显示还没有完成的任务的详细信息,或刚刚完成的任务的详细信息:
|
||||
|
||||
```bash
|
||||
scontrol show job 114514
|
||||
```
|
||||
|
||||
要在数据库中查找某一段时间内(例如 2024 年 8 月)提交的所有任务的详细信息[^10]:
|
||||
|
||||
```bash
|
||||
sacct --units M --format=ALL --starttime 2024-08-01T00:00:00 --endtime 2024-09-01T00:00:00 | bat -S
|
||||
```
|
||||
|
||||
#### 调整和取消任务
|
||||
|
||||
取消一个任务:
|
||||
|
||||
```bash
|
||||
# 按任务的 id 取消
|
||||
scancel 114514
|
||||
# 按任务的名字取消
|
||||
scancel -n my_great_job
|
||||
# 取消一个用户的所有任务
|
||||
scancel -u chn
|
||||
```
|
||||
|
||||
如果自己已经提交了许多任务,现在想要把一个任务调整到自己的其它任务前面(不会影响整体的优先级),可以使用:
|
||||
|
||||
```bash
|
||||
scontrol top 114514
|
||||
```
|
||||
|
||||
要无条件将一个任务优先级设置为最高或最低(需要管理员权限):
|
||||
|
||||
```bash
|
||||
# 最高
|
||||
sudo scontrol update JobId=3337 Nice=-2147483645
|
||||
# 最低
|
||||
sudo scontrol update JobId=3337 Nice=2147483645
|
||||
```
|
||||
|
||||
### 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
|
||||
```
|
||||
|
||||
### LSF
|
||||
|
||||
待补充。
|
||||
|
||||
### Windows
|
||||
|
||||
Windows 没有通用的队列系统程序,通常手动控制任务依次执行。~~我曾经在2024年暑假答应鹏岗帮他写一个,但事实是我把他鸽了,有空一定写,咕咕咕。~~
|
||||
|
||||
你可以使用 FDTD Solutions 自带的一个单用户的队列系统。
|
||||
在 FDTD Solutions 内的控制台使用 `addjob` 命令将要模拟的文件加入队列,然后它就会依次运行。
|
||||
文档见[这里](https://optics.ansys.com/hc/en-us/articles/360034410714-addjob-Script-command)。
|
||||
|
||||
{{< callout type="warning" >}}
|
||||
不要同时启动过多的计算任务。
|
||||
<br/>
|
||||
例如,如果一个任务需要一个小时跑完,那么按顺序运行两个任务需要两个小时,但是同时运行两个任务需要的时间往往远大于两个小时。
|
||||
若同时运行 10 个任务,可能连系统都没有反应了。
|
||||
{{< /callout >}}
|
||||
|
||||
{{% details title="一个简易的队列系统的实现" closed="true" %}}
|
||||
待补充
|
||||
{{% /details %}}
|
||||
|
||||
[^1]: 实际上队列系统与要运行的软件还是有许多耦合的,尤其是使用 MPI 并行的程序(包括绝大多数成熟的大型科学计算软件)。
|
||||
如何让队列系统与这些软件对接好有时会很麻烦,只是普通用户不需要关心(我替你们搞定了)。
|
||||
[^3]: 其实这个不能叫“图形用户界面(gui)”,应该叫“文本用户界面(tui)”。但后者会让不熟悉的人误解,所以这里还是叫“图形界面”。
|
||||
[^4]: 这个参数指定的通常是 MPI 进程数(为这个参数指定的数值乘以 GPU 数量),其实就是 `--ntasks` 的另外一种写法。
|
||||
VASP(GPU)限制每个 GPU 必须对应且只能对应一个 MPI 进程,不满足这个条件就会报错或者只使用 CPU 计算,因此只能用一个。
|
||||
[^5]: 通常来说,`--ntasks` 对应 MPI 进程数,`--cpus-per-task` 对应 OpenMP 线程数。
|
||||
这个对应关系并不是一定的,比如你先请求 10 个 task,然后用 `srun` 运行 10 个不相关的程序也是可以的,这个过程中可以根本没有 MPI 和 OpenMP。
|
||||
[^6]: 这个选项用于忽略 CPU 的超线程,即认为物理核心和对应的虚拟核心总共算一个核心。
|
||||
Slurm 默认会把超线程核心和物理核各算成一个核,但做科学计算时一般要关掉超线程。
|
||||
[^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 实现)。
|
||||
[^14]: 实际上是在 Slurm 的配置文件中手动指定的。具体每个节点指定了多少,见[系统配置文件](https://github.com/CHN-beta/nixos)。
|
||||
[^15]: 按照经验,OpenMP 线程数等于单个 CPU 或单个 ccx 的核心数或者核心数的一半时,性能最好。
|
||||
```
|
||||
222
content/docs/server/link/_index.md
Normal file
222
content/docs/server/link/_index.md
Normal file
@@ -0,0 +1,222 @@
|
||||
---
|
||||
weight: 3
|
||||
title: "连接到服务器"
|
||||
---
|
||||
|
||||
关于“如何连接到服务器”,最常见的情况有两种:
|
||||
|
||||
* 使用 FDTD Solutions 做计算时,通常是在 Windows 上,使用 Windows 自带的远程桌面,通过 RDP 协议,连接到远程服务器操作。
|
||||
参考[连接 FDTD 服务器](#连接-fdtd-服务器)。
|
||||
* 使用 VASP 做计算时,通常是在 Windows 上,使用 WinSCP 和 PuTTY 这两个软件,通过 SSH 协议,连接到远程服务器操作。这可以进一步分为:
|
||||
* 使用学校超算上的 jykang 用户时,使用密钥连接,并且需要在使用 SSH 协议连接时额外开启名为“SSH 代理转发”的功能。
|
||||
参考[连接 VASP 服务器,开启 SSH 代理转发](#连接-vasp-服务器开启-ssh-代理转发)。
|
||||
* 吴志明老师的学生使用 srv1 时,使用密码连接,不使用“SSH 代理转发”(“SSH 代理转发”必须使用密钥才可能开启)。
|
||||
参考[连接 VASP 服务器,使用密码](#连接-vasp-服务器使用密码)。
|
||||
* 其它情况,使用密钥连接,是否开启“SSH 代理转发”都可以连接(不开启时操作起来更简单,开启后可以方便服务器之间互相连接、对拷文件)。
|
||||
参考[连接 VASP 服务器,不开启 SSH 代理转发](#连接-vasp-服务器不开启-ssh-代理转发)。
|
||||
|
||||
以下先分别介绍这四种最常见情况下的操作,再介绍其它不常用的内容。
|
||||
|
||||
## 四种最常见情况
|
||||
|
||||
### 连接 VASP 服务器,开启 SSH 代理转发
|
||||
|
||||
接下来介绍在 Windows 上,使用 WinSCP 和 PuTTY 这两个软件,使用密钥,通过 SSH 协议连接到远程服务器,并且开启“SSH 代理转发”的操作。
|
||||
|
||||
你需要做下面三件事情:
|
||||
1. 启动 Pageant 并添加密钥。**每次登陆服务器前都需要做这个事情。**
|
||||
2. 配置 PuTTY,使 PuTTY 在每次登陆时不直接使用密钥,而是利用 Pageant 完成认证。这一步骤只需要执行一次,之后打开 PuTTY 后不用重新配置。
|
||||
3. 配置 WinSCP,使 WinSCP 在每次登陆时不直接使用密钥,而是利用 Pageant 完成认证。这一步骤只需要执行一次,之后打开 WinSCP 后不用重新配置。
|
||||
|
||||
接下来将分别说明这三件事怎么做。
|
||||
|
||||
{{< details title="配置 Pageant" closed="true" >}}
|
||||
1. 找到 Pageant 程序<br/>
|
||||
Pageant 会随着 PuTTY 一起安装,一般来说您可以直接在开始菜单中搜索“pageant”找到它,也可以在 PuTTY 的安装目录中找到它。
|
||||

|
||||
2. 启动 Pageant<br/>
|
||||
启动后可能没有任何反应,也可能有一个黑框闪过,这是正常的。只要右下角的系统托盘中出现了 Pageant 的图标就可以了。
|
||||

|
||||
3. 添加密钥<br/>
|
||||
双击 Pageant 图标,打开 Pageant 窗口。选择“Add Key”,然后选择您的密钥文件。
|
||||

|
||||
|
||||
{{< callout type="info" >}}
|
||||
无论是使用 WinSCP 还是 PuTTY,每次使用前,都需要如此启动 Pageant 并添加密钥。
|
||||
如果您希望 Pageant 启动后自动添加密钥或开机时自动启动 Pageant,参见:[自动启动 Pageant 并添加密钥](../qa#自动启动-pageant-并添加密钥)
|
||||
{{< /callout >}}
|
||||
{{< /details >}}
|
||||
|
||||
{{< details title="配置 PuTTY" closed="true" >}}
|
||||
1. 在 Session 中设置“Host Name (or IP address)”为服务器的地址和端口。
|
||||
各个服务器的地址和端口请参考[连接协议和参数](../config#连接协议和参数)中的 SSH 协议部分。
|
||||

|
||||
2. 在 Connection->SSH->Auth,勾选“Attempt authentication using Pageant”和“Allow agent forwarding”。
|
||||

|
||||
3. 在 Connection->SSH->Auth->Credentials,清空“Private key file for authentication”。
|
||||

|
||||
4. (选做但推荐)在 Connection->Data中,将“Auto-login username”设置为用户名,这样每次登陆时就不需要手动输入用户名了。
|
||||
各个服务器的用户名请参考[连接协议和参数](../config#连接协议和参数)。
|
||||
5. 回到Session,在“Saved Sessions”中输入任意一个名字(例如 `jykang`)并点击“Save”,以保存配置。之后双击这个配置文件的名字即可登陆。
|
||||

|
||||
{{< /details >}}
|
||||
|
||||
{{< details title="配置 WinSCP" closed="true" >}}
|
||||
1. 在登陆界面,点击“新建站点”。
|
||||
设置“文件协议”为 `SCP`,“主机名”(即地址)、“端口号”、“用户名”参考[连接协议和参数](../config#连接协议和参数)中的SSH协议部分,密码为空。
|
||||
然后点击右下角“高级”继续修改设置。
|
||||

|
||||
{{< callout type="info" >}}
|
||||
文件协议设置为 `SFTP` 大多功能也可以使用,但相比于 SCP 协议,SFTP 可用的功能较少(例如不能远程复制)。因此建议使用 SCP。
|
||||
{{< /callout >}}
|
||||
2. 在 SSH->Authentication,勾选“使用 Pageant 进行认证”,勾选“允许代理转发”,清空“密钥文件”,然后点击“确定”,再点击“保存”。
|
||||

|
||||
3. (选做)如果您需要通过 WinSCP 打开 PuTTY 的话,需要在 WinSCP 主界面->工具->选项->集成->应用程序路径中,
|
||||
在原来的基础上增加 `-A` 参数。
|
||||

|
||||
{{< callout type="info" >}}
|
||||
如果难以直接在文本框中修改,就把它复制到记事本里修改,然后再复制回去。
|
||||
{{< /callout >}}
|
||||
{{< /details >}}
|
||||
|
||||
{{< callout type="info" >}}
|
||||
如果您确认已经按照教程设置好了却仍然不能连接,可以尝试将 WinSCP 和 PuTTY 都更新到最新。已知非常旧的版本在设置过程中会出现问题。
|
||||
我测试使用的版本是:PuTTY 0.78 和 WinSCP 6.3.3。
|
||||
{{< /callout >}}
|
||||
|
||||
### 连接 VASP 服务器,不开启 SSH 代理转发
|
||||
|
||||
接下来介绍在 Windows 上,使用 WinSCP 和 PuTTY 这两个软件,使用密钥,通过 SSH 协议连接到远程服务器,并且不开启“SSH 代理转发”的操作。
|
||||
|
||||
{{< details title="配置 PuTTY" closed="true" >}}
|
||||
1. 在 Session 中设置“Host Name (or IP address)”和“Port”为对应服务器的地址和端口。
|
||||
参考[服务器配置](../config#连接协议和参数)中的 SSH 协议部分。
|
||||

|
||||
2. 在 Connection->SSH->Auth->Credentials,在“Private key file for authentication”中选择自己密钥文件。
|
||||
如果之后把密钥文件移动到了别的地方,需要在这里重新选择。
|
||||

|
||||
3. (选做但推荐)在 Connection->Data中,将“Auto-login username”设置为自己的用户名,这样每次登陆时就不需要手动输入用户名了。
|
||||
用户名参考[服务器配置](../config#连接协议和参数)。
|
||||
4. 回到 Session,在“Saved Sessions”中输入任意一个名字(例如 `jykang`)并点击“Save”,以保存配置。之后双击这个配置文件的名字即可登陆。
|
||||

|
||||
{{< /details >}}
|
||||
|
||||
{{< details title="配置 WinSCP" closed="true" >}}
|
||||
1. 在登陆界面,点击“新建站点”。
|
||||
设置“文件协议”为 `SCP`,“主机名”(即地址)、“端口号”、“用户名”参考[服务器配置](../config#连接协议和参数)中的 SSH 协议部分,密码为空。
|
||||
然后点击右下角“高级”继续修改设置。
|
||||

|
||||
{{< callout type="info" >}}
|
||||
文件协议设置为 `SFTP` 大多功能也可以使用,但相比于 SCP 协议,SFTP 可用的功能较少(例如不能远程复制)。因此建议使用 SCP。
|
||||
{{< /callout >}}
|
||||
2. 在 SSH->Authentication,选择“密钥文件”,然后点击“确定”,再点击“保存”。如果之后把密钥文件移动到了别的地方,需要在这里重新选择。
|
||||

|
||||
{{< /details >}}
|
||||
|
||||
### 连接 VASP 服务器,使用密码
|
||||
|
||||
接下来介绍在 Windows 上,使用 WinSCP 和 PuTTY 这两个软件,使用密码,通过 SSH 协议连接到远程服务器。
|
||||
|
||||
{{< details title="配置 PuTTY" closed="true" >}}
|
||||
1. 在 Session 中设置“Host Name (or IP address)”和“Port”为对应服务器的地址和端口。
|
||||
参考[服务器配置](../config#连接协议和参数)中的SSH协议部分。
|
||||

|
||||
2. (选做但推荐)在 Connection->Data中,将“Auto-login username”设置为自己的用户名,这样每次登陆时就不需要手动输入用户名了。
|
||||
用户名参考[服务器配置](../config#连接协议和参数)中的SSH协议部分。
|
||||
3. 回到 Session,在“Saved Sessions”中输入任意一个名字(例如 `jykang`)并点击“Save”,以保存配置。之后双击这个配置文件的名字即可登陆。
|
||||
输入密码的过程中,屏幕上既不会显示密码也不会显示星号,这是正常的,把密码输完回车就行。
|
||||

|
||||
{{< /details >}}
|
||||
|
||||
{{< details title="配置 WinSCP" closed="true" >}}
|
||||
在登陆界面,点击“新建站点”。
|
||||
设置“文件协议”为 `SCP`,“主机名”(即地址)、“端口号”、“用户名”参考[服务器配置](../config#连接协议和参数)中的 SSH 协议部分,并填入密码。
|
||||
再点击“保存”。
|
||||

|
||||
{{< callout type="info" >}}
|
||||
文件协议设置为 `SFTP` 大多功能也可以使用,但相比于 SCP 协议,SFTP 可用的功能较少(例如不能远程复制)。因此建议使用 SCP。
|
||||
{{< /callout >}}
|
||||
{{< /details >}}
|
||||
|
||||
### 连接 FDTD 服务器
|
||||
|
||||
接下来介绍在 Windows 上,使用 Windows 自带的远程桌面客户端,通过 RDP 协议,连接到 Windows 远程服务器的操作。
|
||||
其它使用 RDP 连接的方法参考[使用 RDP 远程桌面](#使用-rdp-远程桌面)。
|
||||
|
||||
{{< details title="配置 Windows 自带远程桌面" closed="true" >}}
|
||||
1. 在开始菜单中搜索“远程”,打开“远程桌面连接”。
|
||||

|
||||
1. 在“计算机”中输入服务器地址,然后点击“连接”。服务器地址参考[连接协议和参数](../config#连接协议和参数)中的 RDP 协议部分。
|
||||

|
||||
2. (选做)打开“显示选项”,填入用户名,之后就不需要每次输入了。
|
||||
{{< /details >}}
|
||||
|
||||
## 其它内容
|
||||
|
||||
### 使用 OpenSSH
|
||||
|
||||
支持 SSH 协议的有好多好多客户端(不论命令行还是图形界面),最常用的是 OpenSSH。
|
||||
现在的系统大概已经自带了 OpenSSH 客户端,所以可以直接在命令行中使用。
|
||||
|
||||
连接到服务器的命令是:
|
||||
|
||||
```bash
|
||||
ssh -p 端口 用户名@服务器地址
|
||||
```
|
||||
|
||||
要传输文件,可以使用 `scp`:
|
||||
|
||||
```bash
|
||||
# 上传文件
|
||||
scp -rP 端口 本地路径 用户名@服务器地址:远程路径
|
||||
# 下载文件
|
||||
scp -rP 端口 用户名@服务器地址:远程路径 本地路径
|
||||
```
|
||||
|
||||
传输文件时如果要断点续传,可以使用 `rsync`:
|
||||
|
||||
```bash
|
||||
# 下载
|
||||
rsync -rlP -e "ssh -p 端口" 用户名@服务器地址:远程路径 本地路径
|
||||
# 端口为 22 时可以省略一些参数
|
||||
rsync -rlP 用户名@服务器地址:远程路径 本地路径
|
||||
# 上传就是反过来
|
||||
rsync -rlP -e "ssh -p 端口" 本地路径 用户名@服务器地址:远程路径
|
||||
```
|
||||
|
||||
要使用 SSH agent forwarding,稍微麻烦一点。
|
||||
|
||||
1. 在本地运行一个 SSH agent,并导出对应的环境变量:`eval $(ssh-agent)`
|
||||
2. 将要使用的密钥添加到 agent 中:`ssh-add 密钥文件`
|
||||
3. 在连接服务器时把 agent 转发出去:`ssh -o ForwardAgent=yes -p 端口 用户名@服务器地址`
|
||||
|
||||
后两步可以写到 `~/.ssh/config` 中来自动完成,例如:
|
||||
|
||||
```conf
|
||||
Host jykang
|
||||
ForwardAgent yes
|
||||
User jykang
|
||||
HostName hpc.xmu.edu.cn
|
||||
AddKeysToAgent yes
|
||||
```
|
||||
|
||||
然后 `ssh jykang` 就可以了。
|
||||
|
||||
|
||||
### 使用 RDP 远程桌面
|
||||
|
||||
没什么好说的,草履虫都会用。
|
||||
只有一个事情:服务端为 Linux 时(无论客户端是什么),连接时需要手动设置连接类型为“LAN”,详见 [RDP 设置连接类型](../qa#rdp-设置连接类型)。
|
||||
|
||||
### 使用 SMB 协议
|
||||
|
||||
SMB 就是 Windows 共享文件夹或者共享打印机的那个协议,客户端和服务端通常会有另外一个名字叫“samba”。
|
||||
|
||||
主要优势是在 Windows 上使用方便:
|
||||
* 可以直接在资源管理器中输入 `\\` 加上服务器地址访问,例如 `\\xmupc1.chn.moe`。
|
||||
服务器地址参考[服务器配置](../config#连接协议和参数)中的 SMB 协议部分。
|
||||
* 也可以将它作为一个网络驱动器添加(地址同样是 `\\` 加上服务器地址)。
|
||||
|
||||
### 使用 SSH 在服务器之间建立连接
|
||||
|
||||
待补充。
|
||||
BIN
content/docs/server/link/pageant1.png
LFS
Normal file
BIN
content/docs/server/link/pageant1.png
LFS
Normal file
Binary file not shown.
BIN
content/docs/server/link/pageant2.png
LFS
Normal file
BIN
content/docs/server/link/pageant2.png
LFS
Normal file
Binary file not shown.
BIN
content/docs/server/link/pageant3.png
LFS
Normal file
BIN
content/docs/server/link/pageant3.png
LFS
Normal file
Binary file not shown.
BIN
content/docs/server/link/putty1.png
LFS
Normal file
BIN
content/docs/server/link/putty1.png
LFS
Normal file
Binary file not shown.
BIN
content/docs/server/link/putty2.png
LFS
Normal file
BIN
content/docs/server/link/putty2.png
LFS
Normal file
Binary file not shown.
BIN
content/docs/server/link/putty4.png
LFS
Normal file
BIN
content/docs/server/link/putty4.png
LFS
Normal file
Binary file not shown.
BIN
content/docs/server/link/putty5.png
LFS
Normal file
BIN
content/docs/server/link/putty5.png
LFS
Normal file
Binary file not shown.
BIN
content/docs/server/link/putty6.png
LFS
Normal file
BIN
content/docs/server/link/putty6.png
LFS
Normal file
Binary file not shown.
BIN
content/docs/server/link/rdp1.png
LFS
Normal file
BIN
content/docs/server/link/rdp1.png
LFS
Normal file
Binary file not shown.
BIN
content/docs/server/link/rdp2.png
LFS
Normal file
BIN
content/docs/server/link/rdp2.png
LFS
Normal file
Binary file not shown.
BIN
content/docs/server/link/winscp1.png
LFS
Normal file
BIN
content/docs/server/link/winscp1.png
LFS
Normal file
Binary file not shown.
BIN
content/docs/server/link/winscp2.png
LFS
Normal file
BIN
content/docs/server/link/winscp2.png
LFS
Normal file
Binary file not shown.
BIN
content/docs/server/link/winscp3.png
LFS
Normal file
BIN
content/docs/server/link/winscp3.png
LFS
Normal file
Binary file not shown.
BIN
content/docs/server/link/winscp4.png
LFS
Normal file
BIN
content/docs/server/link/winscp4.png
LFS
Normal file
Binary file not shown.
94
content/docs/server/qa/_index.md
Normal file
94
content/docs/server/qa/_index.md
Normal file
@@ -0,0 +1,94 @@
|
||||
---
|
||||
weight: 5
|
||||
title: "Q & A"
|
||||
---
|
||||
|
||||
## 使用 SSH X11 forwarding
|
||||
|
||||
远程桌面非常笨重。在 Linux 系统上连接到 Linux 服务器时,可以使用 SSH X11 forwarding 代替之:
|
||||
|
||||
```bash
|
||||
ssh chn@srv1.chn.moe -X -Y
|
||||
```
|
||||
|
||||
之后在服务器上运行图形化程序时,就会在本地显示,就像在本地运行那样,只不过有明显的延迟。例如:
|
||||
|
||||
```bash
|
||||
ovito POSCAR
|
||||
```
|
||||
|
||||
## RDP 设置连接类型
|
||||
|
||||
连接到 Linux 远程桌面时,需要手动设置连接类型为“LAN”,不然会很卡,我也不知道为什么。似乎是 xrdp 的 bug。
|
||||
|
||||

|
||||
<img src="rdp2.png" style="zoom: 50%;" />
|
||||
|
||||
## 混合使用不同型号的节点
|
||||
|
||||
不建议这样做,如果你非要这样做再往下看。
|
||||
|
||||
计算软件(例如 VASP)在编译时需要针对不同的硬件进行优化得到不同的二进制程序,以此发挥硬件的最大性能。
|
||||
也就是说,针对不同型号的 CPU 优化的 VASP 其实并不是同一个程序,运行过程中 CPU 收到的指令也不相同。
|
||||
大多情况下,越新的 CPU 支持的指令集越多,
|
||||
针对新 CPU 优化的程序在旧 CPU 上不能运行(因为旧 CPU 看不懂这些新指令),针对旧 CPU 优化的程序在新 CPU 上运行效率不高。
|
||||
|
||||
以下面提交任务的命令为例:
|
||||
```bash
|
||||
sbatch --ntasks=64 --cpus-per-task=1 --export=ALL,OMP_NUM_THREADS=1 --wrap="vasp-intel srun --mpi=pmix vasp-std"
|
||||
```
|
||||
任务会在某一个节点上先启动、再与其它节点通信并在其它节点上启动;具体启动哪一个 VASP,取决于最先启动的那个节点[^1]。
|
||||
例如,你可以使用下面的命令查看当前节点上最终会启动哪一个 VASP:
|
||||
```bash
|
||||
vasp-intel which vasp-std
|
||||
```
|
||||
|
||||
要跨不同型号的节点使用 VASP,可以按照以下步骤操作:
|
||||
1. 准备一个优化得足够“弱”的 VASP,可以在所有节点上运行。对于 srv1,可以使用 `srv1-node1` 上的 VASP,使用下面的命令计算它的路径:
|
||||
```bash
|
||||
echo $(nix eval --raw nixos#nixosConfigurations.srv1-node1.pkgs.localPackages.vasp.intel)/bin/vasp-intel
|
||||
```
|
||||
现在的计算结果是 `/nix/store/xlxz74mppn76iwk2y2njh7gjncwsx7r8-vasp-intel/bin/vasp-intel`。
|
||||
随着更新,将来的路径会发生变化。
|
||||
2. 使用这个 VASP 提交任务,例如:
|
||||
```bash
|
||||
sbatch -n64 --cpus-per-task=1 --export=ALL,OMP_NUM_THREADS=1 -pall --wrap="/nix/store/xlxz74mppn76iwk2y2njh7gjncwsx7r8-vasp-intel/bin/vasp-intel srun --mpi=pmix vasp-std"
|
||||
```
|
||||
|
||||
对于其它的计算软件,不一定能这样做。因为还有别的针对 CPU 优化的方案(例如,编译多个版本的二进制库,在运行时动态检测 CPU 型号并加载最合适的版本)。
|
||||
|
||||
并行使用不同型号的 CPU 时,队列系统或 MPI 往往并不会根据型号平衡各个 CPU 的负载,也就是算得快的 CPU 会等着算得慢的 CPU。
|
||||
|
||||
## BtrFS 是什么
|
||||
|
||||
它是一个比较现代的文件系统。相比于常用的其它文件系统(例如 Windows 的 NTFS),它的好处有:
|
||||
|
||||
* 同样的内容只占用一份空间;以及内容会被压缩存储,在读取时自动解压。这样大致可以节省一多半的空间。
|
||||
* 每小时自动备份,放置在 `/nix/persistent/.snapshots` 中,大致上会保留最近一周的备份。如果你误删了什么文件,可以去里面找回。
|
||||
|
||||
## 查看文件或文件夹的大小
|
||||
|
||||
Windows 下不用教。Linux 下分两种情况:
|
||||
|
||||
* 对于厦大超算(jykang),使用 `du -ah --max-depth=0 文件或目录名`。
|
||||
* 对于其它服务器(使用了 BtrFS):由于压缩和 CoW,实际占用空间会小于大小,因此 `du` 得到的结果不准确。
|
||||
使用 `compize 文件或目录名` 命令。
|
||||
得到的结果中,`TOTAL` 行 `Disk Usage` 列为实际占用的空间,`TOTAL` 行 `Referenced` 列为文件或文件夹的大小。
|
||||
|
||||
## 查看硬盘剩余空间
|
||||
|
||||
Windows 下不用教。Linux 下分两种情况:
|
||||
|
||||
* 对于厦大超算(jykang):硬盘空间实际上是比较大的,紧张的是 `jykang` 这个用户的限额(quota)。
|
||||
似乎没有 root 权限没法看。按照经验大概是 800 G 多一点。
|
||||
如果你知道怎样不用 root 用户看,请务必教教我。
|
||||
* 对于其它服务器:`df -h`。
|
||||
|
||||
## 自动启动 Pageant 并添加密钥
|
||||
|
||||
待补充。
|
||||
|
||||
[^1]: MPI 是按照绝对路径来搜索可执行文件的。
|
||||
NixOS 的特性导致不同参数编译的 VASP 会被放在不同的目录下,因此会在其它节点上启动与最先启动的节点相同、但不是针对这些节点优化的 VASP。
|
||||
如果通过一些手段将不同参数编译的 VASP 放在同一个位置,它们是否能正常通信,我觉得应该是可以的。
|
||||
但我觉得这样做意义不大,因为算得快的 CPU 还是需要等着算得慢的 CPU。
|
||||
BIN
content/docs/server/qa/rdp1.png
LFS
Normal file
BIN
content/docs/server/qa/rdp1.png
LFS
Normal file
Binary file not shown.
BIN
content/docs/server/qa/rdp2.png
LFS
Normal file
BIN
content/docs/server/qa/rdp2.png
LFS
Normal file
Binary file not shown.
142
content/docs/server/start.md
Normal file
142
content/docs/server/start.md
Normal file
@@ -0,0 +1,142 @@
|
||||
---
|
||||
weight: 1
|
||||
title: "快速开始"
|
||||
---
|
||||
|
||||
根据你的目的(要用 VASP 还是 FDTD Solutions),按照不同步骤操作:
|
||||
|
||||
## 我要使用 VASP
|
||||
|
||||
### 1. 获取密钥或密码
|
||||
|
||||
如果你是吴志明老师的学生,要使用 srv1,那么你应该已经有了用户名(形如 `GROUPIII-1`)和密码。
|
||||
如果不是这种情况,你需要一个密钥。密钥是一个文件,以 `.ppk` 为后缀,用于连接到服务器。
|
||||
|
||||
* **如果你在康老师直属的小组里,或者要使用的服务器不是厦大超算(jykang)**:密钥是每人一把,所有服务器通用。如果没有的话直接找我要。
|
||||
* **如果你不在康老师直属的小组里,并且要使用的服务器是厦大超算(jykang)**:
|
||||
密钥是每个老师一把,找你的导师或者学长学姐要,如果你们小组都没有的话找项磊磊要(有什么技术问题再找我)。
|
||||
|
||||
### 2. 准备试错
|
||||
|
||||
* **如果使用的是厦大超算(jykang)**:不会用的命令别瞎敲,不要擅自安装软件。
|
||||
由于多人共用一个账号、没有合适的权限管理机制,环境非常脆弱,所以操作不要太随意,除非你很自信,即使全部弄坏也能自己从头搭建。
|
||||
需要安装什么软件的话找我。
|
||||
* **如果吴志明的学生,使用 srv1**:我已经装好的软件(例如 VASP)你不可能弄坏。
|
||||
但我不确定他是否会把一个账号共享给很多人使用,如果会的话,不要删除或者修改别人的文件。
|
||||
* **如果是其它情况**:请随意尝试,你能弄坏算我输。
|
||||
|
||||
### 3. 安装软件
|
||||
|
||||
在自己电脑上下载安装 [PuTTY](https://www.putty.org/) 和 [WinSCP](https://winscp.net/eng/index.php),并按照下面的步骤配置:
|
||||
|
||||
* **如果你要使用厦大超算(jykang)**:参照“连接到服务器”中“连接 VASP 服务器,开启 SSH 代理转发”这一节的内容,配置 PuTTY 和 WinSCP。
|
||||
[点此传送](../link#连接-vasp-服务器开启-ssh-代理转发)
|
||||
* **如果是吴志明老师的学生,要使用 srv1**:参照“连接到服务器”中“连接 VASP 服务器,使用密码”这一节的内容,配置 PuTTY 和 WinSCP。
|
||||
[点此传送](../link#连接-vasp-服务器使用密码)
|
||||
* **如果是其它情况**:参照“连接到服务器”中“连接 VASP 服务器,不开启 SSH 代理转发”这一节的内容,配置 PuTTY 和 WinSCP。
|
||||
[点此传送](../link#连接-vasp-服务器不开启-ssh-代理转发)
|
||||
|
||||
如果你想要使用其它 SSH 客户端也可以,连接用到的参数见[连接协议和参数](../config#连接协议和参数)。
|
||||
|
||||
### 4. 学习 Linux 基础操作
|
||||
|
||||
* **如果你之前没有接触过 Linux**:请找学长学姐要以前人写的教程(我还没写,咕咕咕)。
|
||||
* **如果你之前出于兴趣接触过 Linux(不需要做过科学计算)**:跳过这一步,你知道的已经太多了。
|
||||
|
||||
### 5. 准备一个测试任务
|
||||
|
||||
和学长学姐要一个最基础的自洽或弛豫的 VASP 输入文件(包括`INCAR` `POSCAR` `POTCAR` `KPOINTS`)。
|
||||
|
||||
**如果你要使用的是厦大超算(jykang)**:在服务器上导师的目录下新建一个文件夹,命名为你的名字。
|
||||
例如我的是 `linwei/chn`。之后你的计算都在这个目录下进行。新建一个目录(比如可以叫 `test`),把这四个文件放进去,也就是:
|
||||
|
||||
{{< filetree/container >}}
|
||||
{{< filetree/folder name="导师名字" >}}
|
||||
{{< filetree/folder name="君の名前" >}}
|
||||
{{< filetree/folder name="test" >}}
|
||||
{{< filetree/file name="INCAR" >}}
|
||||
{{< filetree/file name="KPOINTS" >}}
|
||||
{{< filetree/file name="POSCAR" >}}
|
||||
{{< filetree/file name="POTCAR" >}}
|
||||
{{< /filetree/folder >}}
|
||||
{{< /filetree/folder >}}
|
||||
{{< /filetree/folder >}}
|
||||
{{< /filetree/container >}}
|
||||
|
||||
**如果是吴志明老师的学生,要使用 srv1**:按照你导师的要求来放置文件(我也不知道他计划如何安排)。
|
||||
|
||||
**如果是其它情况**:登陆后看到的目录就是你的“家目录”,你随便在里面放东西,不影响别人,别人也看不到。
|
||||
新建一个目录(比如可以叫 `test`),把这四个文件放进去,也就是:
|
||||
|
||||
{{< filetree/container >}}
|
||||
{{< filetree/folder name="test" >}}
|
||||
{{< filetree/file name="INCAR" >}}
|
||||
{{< filetree/file name="KPOINTS" >}}
|
||||
{{< filetree/file name="POSCAR" >}}
|
||||
{{< filetree/file name="POTCAR" >}}
|
||||
{{< /filetree/folder >}}
|
||||
{{< /filetree/container >}}
|
||||
|
||||
### 6. 投递测试任务
|
||||
|
||||
**如果你要使用的是厦大超算(jykang)**:
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
之后可以利用空闲时间,浏览一下[使用服务器](..)中的其它内容。
|
||||
|
||||
### 7. 学习 VASP 的使用
|
||||
|
||||
每个小组、每个人使用 VASP 的侧重点不同,请找学长学姐要学习资料,或者自己在网上学习。
|
||||
|
||||
当然也有一些基础和共通的,但我还没写(咕咕咕)。
|
||||
|
||||
## 我要使用 FDTD Solutions
|
||||
|
||||
### 1. 确定要使用哪台服务器
|
||||
|
||||
大多数用于 FDTD Solutions 的 Windows 服务器都不是我管理的。
|
||||
如果你确定你要用的是我管理的唯一那一台(吴志明学生,要使用小组里的服务器),那么请继续。
|
||||
|
||||
### 2. 获取账号
|
||||
|
||||
吴志明老师应该会把账号(形如 `GROUPIII-4`)和密码都发给你。
|
||||
|
||||
### 3. 连接到服务器
|
||||
|
||||
使用 Windows 自带的远程桌面连接到服务器。懂的都懂,不懂的看[连接 FDTD 服务器](../link#连接-fdtd-服务器)。
|
||||
|
||||
### 4. 运行任务
|
||||
|
||||
运行 FDTD Solutions 的任务并不需要什么特殊操作,但有一些注意事项务必知晓,详见[使用队列系统-Windows](../job#windows)。
|
||||
68
content/docs/server/stat.md
Normal file
68
content/docs/server/stat.md
Normal file
@@ -0,0 +1,68 @@
|
||||
---
|
||||
weight: 6
|
||||
title: 厦大超算(jykang)使用统计
|
||||
---
|
||||
|
||||
每个月的结果仅包含当月完成的任务(无论什么时候提交)。
|
||||
更详细的信息(例如,每个任务所用核时)见[这里](https://git.chn.moe/chn/jykang-statistics)。
|
||||
|
||||
## 2024 年
|
||||
|
||||
{{< tabs items="5 月,6 月,7 月,8 月" >}}
|
||||
{{< tab >}}
|
||||
注:
|
||||
* 每个密钥统计的核时仅包括 5 月 10 日后提交(即正式启用这个系统后才提交)的任务。
|
||||
* 5 月 10 日之前提交但在正式启用这个系统后才完成的任务被统计到 `unknown` 账号下。
|
||||
|
||||
| 账号 | 使用核时 | 登陆次数(总计/交互式/非交互式) | 完成任务(总计/成功/失败) | SSH 密钥编号::指纹 |
|
||||
| :--: | :--: | :--: | :--: | :--: |
|
||||
| Yaping Wu | 37178.79 | 840/245/595 | 1038/683/355 | `00::SHA256:7bmG24muNsaAZkCy7mQ9Nf2HuNafmvUO+Hf1bId9zts` |
|
||||
| Jing Li | 0.00 | 4/3/1 | 0/0/0 | `01::SHA256:dtx0QxdgFrXn2SYxtIRz43jIAH6rLgJidSdTvuTuews` |
|
||||
| Huahan Zhan | 2393.33 | 87/51/36 | 38/19/19 | `02::SHA256:8crUO9u4JiVqw3COyjXfzZe87s6XZFhvi0LaY0Mv6bg` |
|
||||
| Na Gao | 1935.25 | 88/39/49 | 20/17/3 | `03::SHA256:QkmIYw7rmDEAP+LDWxm6L2/XLnAqTwRUB7B0pxYlOUs` |
|
||||
| Duanjun Cai | 405.78 | 25/7/18 | 8/3/5 | `04::SHA256:WfUP4s0BzEspDweDIrOIed4MbW4v9W1spbp0EN6O5dk` |
|
||||
| Xu Li | 39.17 | 5/1/4 | 19/9/10 | `05::SHA256:VmVTvYnOOXOFcw+RH2AuUcj7hioieIJhwGOCDCfm0/w` |
|
||||
| Haonan Chen | 46685.25 | 419/133/286 | 1186/588/598 | `chn::SHA256:LNoYfq/SM7l8sFAy325WpC+li+kZl3jwST7TmP72Tz8` |
|
||||
| Bin Gong | 261.12 | 60/12/48 | 37/28/9 | `gb::SHA256:VJT5wgkb2RcIeVNTA+/NKxokctbYnJ/KgH6IxrKqIGE` |
|
||||
| Leilei Xiang | 3118.69 | 53/17/36 | 11/4/7 | `xll::SHA256:umC3/RB1vS8TQBHsY3IzhOiyqVrOSw2fB3rIpDQSmf4` |
|
||||
| (unknown) | 22930.42 | 0/0/0 | 92/42/50 | `(unknown)` |
|
||||
{{< /tab >}}
|
||||
{{< tab >}}
|
||||
| 账号 | 使用核时 | 登陆次数(总计/交互式/非交互式) | 完成任务(总计/成功/失败) | SSH 密钥编号::指纹 |
|
||||
| :--: | :--: | :--: | :--: | :--: |
|
||||
| Yaping Wu | 74726.21 | 844/258/586 | 1553/925/628 | `00::SHA256:7bmG24muNsaAZkCy7mQ9Nf2HuNafmvUO+Hf1bId9zts` |
|
||||
| Huahan Zhan | 2916.42 | 63/27/36 | 92/77/15 | `02::SHA256:8crUO9u4JiVqw3COyjXfzZe87s6XZFhvi0LaY0Mv6bg` |
|
||||
| Na Gao | 1256.11 | 31/10/21 | 34/31/3 | `03::SHA256:QkmIYw7rmDEAP+LDWxm6L2/XLnAqTwRUB7B0pxYlOUs` |
|
||||
| Duanjun Cai | 21889.09 | 185/73/112 | 166/114/52 | `04::SHA256:WfUP4s0BzEspDweDIrOIed4MbW4v9W1spbp0EN6O5dk` |
|
||||
| Xu Li | 257.32 | 16/5/11 | 65/41/24 | `05::SHA256:VmVTvYnOOXOFcw+RH2AuUcj7hioieIJhwGOCDCfm0/w` |
|
||||
| Haonan Chen | 28311.28 | 290/157/133 | 923/755/168 | `chn::SHA256:LNoYfq/SM7l8sFAy325WpC+li+kZl3jwST7TmP72Tz8` |
|
||||
| Leilei Xiang | 12133.32 | 37/8/29 | 7/3/4 | `xll::SHA256:umC3/RB1vS8TQBHsY3IzhOiyqVrOSw2fB3rIpDQSmf4` |
|
||||
| Linyang Xie | 0.00 | 9/4/5 | 0/0/0 | `xly::SHA256:C52EURGhRHtf+odfmE2qofh7NO24MnGB3Q8GhRQhHiM` |
|
||||
| (unknown) | 319.22 | 0/0/0 | 8/3/5 | `(unknown)` |
|
||||
{{< /tab >}}
|
||||
{{< tab >}}
|
||||
| 账号 | 使用核时 | 登陆次数(总计/交互式/非交互式) | 完成任务(总计/成功/失败) | SSH 密钥编号::指纹 |
|
||||
| :--: | :--: | :--: | :--: | :--: |
|
||||
| Yaping Wu | 102727.87 | 716/187/529 | 1663/993/670 | `00::SHA256:7bmG24muNsaAZkCy7mQ9Nf2HuNafmvUO+Hf1bId9zts` |
|
||||
| Huahan Zhan | 213.24 | 32/11/21 | 27/21/6 | `02::SHA256:8crUO9u4JiVqw3COyjXfzZe87s6XZFhvi0LaY0Mv6bg` |
|
||||
| Na Gao | 287.33 | 31/12/19 | 28/15/13 | `03::SHA256:QkmIYw7rmDEAP+LDWxm6L2/XLnAqTwRUB7B0pxYlOUs` |
|
||||
| Duanjun Cai | 24.42 | 18/6/12 | 4/2/2 | `04::SHA256:WfUP4s0BzEspDweDIrOIed4MbW4v9W1spbp0EN6O5dk` |
|
||||
| Haonan Chen | 135923.95 | 160/44/116 | 366/246/120 | `chn::SHA256:LNoYfq/SM7l8sFAy325WpC+li+kZl3jwST7TmP72Tz8` |
|
||||
| Bin Gong | 0.00 | 14/0/14 | 0/0/0 | `gb::SHA256:VJT5wgkb2RcIeVNTA+/NKxokctbYnJ/KgH6IxrKqIGE` |
|
||||
| Leilei Xiang | 56213.51 | 131/49/82 | 202/126/76 | `xll::SHA256:umC3/RB1vS8TQBHsY3IzhOiyqVrOSw2fB3rIpDQSmf4` |
|
||||
| Linyang Xie | 372.31 | 17/7/10 | 12/6/6 | `xly::SHA256:C52EURGhRHtf+odfmE2qofh7NO24MnGB3Q8GhRQhHiM` |
|
||||
| Junqi Yao | 1156.36 | 17/7/10 | 5/1/4 | `yjq::SHA256:fdq5k13N2DAzIK/2a1Mm4/ZVsDUgT623TSOXsVswxT8` |
|
||||
| (unknown) | 5160.49 | 0/0/0 | 27/7/20 | `(unknown)` |
|
||||
{{< /tab >}}
|
||||
{{< tab >}}
|
||||
| 账号 | 使用核时 | 登陆次数(总计/交互式/非交互式) | 完成任务(总计/成功/失败) | SSH 密钥编号::指纹 |
|
||||
| :--: | :--: | :--: | :--: | :--: |
|
||||
| Yaping Wu | 166182.58 | 571/169/402 | 1058/733/325 | `00::SHA256:7bmG24muNsaAZkCy7mQ9Nf2HuNafmvUO+Hf1bId9zts` |
|
||||
| Huahan Zhan | 0.00 | 5/2/3 | 0/0/0 | `02::SHA256:8crUO9u4JiVqw3COyjXfzZe87s6XZFhvi0LaY0Mv6bg` |
|
||||
| Duanjun Cai | 0.00 | 6/3/3 | 7/0/7 | `04::SHA256:WfUP4s0BzEspDweDIrOIed4MbW4v9W1spbp0EN6O5dk` |
|
||||
| Haonan Chen | 38110.55 | 133/50/83 | 701/440/261 | `chn::SHA256:LNoYfq/SM7l8sFAy325WpC+li+kZl3jwST7TmP72Tz8` |
|
||||
| Bin Gong | 22.98 | 11/2/9 | 18/13/5 | `gb::SHA256:VJT5wgkb2RcIeVNTA+/NKxokctbYnJ/KgH6IxrKqIGE` |
|
||||
| Leilei Xiang | 0.00 | 1/0/1 | 0/0/0 | `xll::SHA256:umC3/RB1vS8TQBHsY3IzhOiyqVrOSw2fB3rIpDQSmf4` |
|
||||
| (unknown) | 1474.90 | 0/0/0 | 10/7/3 | `(unknown)` |
|
||||
{{< /tab >}}
|
||||
{{< /tabs >}}
|
||||
8
content/docs/stuff/_index.md
Normal file
8
content/docs/stuff/_index.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
weight: 2
|
||||
title: "便民小工具"
|
||||
---
|
||||
|
||||
{{< cards >}}
|
||||
{{< card link="lottery" title="组会抽奖工具" subtitle="~~万恶之源~~" icon="present" >}}
|
||||
{{< /cards >}}
|
||||
15
content/docs/stuff/lottery/_index.md
Normal file
15
content/docs/stuff/lottery/_index.md
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
weight: 2
|
||||
title: "组会抽奖工具"
|
||||
---
|
||||
|
||||
<div class="hx-mt-6"></div>
|
||||
|
||||
<div class="hx-mb-6">
|
||||
{{< hextra/hero-button text="立即下载" link="幸运抽奖.exe" >}}
|
||||
</div>
|
||||
|
||||
* 按照项磊磊的要求,翔安的同学(导师为卢卫芳或黄凯)以及年龄 35 岁以上的同学免抽奖。
|
||||
* 报毒是正常的,实际上没有毒。要想不报毒,[要么给微软交钱,要么主动给微软汇报(我嫌麻烦)](https://stackoverflow.com/questions/76002121/stop-windows-defender-antivirus-from-detecting-myapp)。
|
||||
* 源代码:[GitHub](https://github.com/CHN-beta/group-meeting-lottery)。
|
||||
* 别找我改概率/删名字,我不敢。
|
||||
BIN
content/docs/stuff/lottery/幸运抽奖.exe
LFS
Normal file
BIN
content/docs/stuff/lottery/幸运抽奖.exe
LFS
Normal file
Binary file not shown.
Reference in New Issue
Block a user