This commit is contained in:
2024-10-22 18:13:55 +08:00
commit b9352b8595
49 changed files with 1707 additions and 0 deletions

9
content/docs/_index.md Normal file
View File

@@ -0,0 +1,9 @@
---
linkTitle: "Documentation"
title: Documentation
---
{{< callout emoji="​🏗️" >}} 施工中 {{< /callout >}}
doc

View 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 >}}

View File

@@ -0,0 +1,139 @@
---
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 协议安全性可能不及其它两者。

193
content/docs/server/job.md Normal file
View File

@@ -0,0 +1,193 @@
---
weight: 4
title: "使用队列系统"
---
## 队列系统的作用
简而言之:排队。你告诉队列系统使用什么资源(例如多少核的 CPU运行某个程序轮到你的任务执行时队列系统会按照你的要求执行任务。
队列系统会考虑服务器的负载能力(不可以同时运行太多任务把服务器挤垮)、有多人使用服务器时公平分配资源,以及记录任务执行过程中的开销。
队列系统不与某个特定的计算软件(例如 VASP绑定。
也就是说,你可以脱离队列系统直接运行 VASP也可以把别的软件也放到队列系统里运行它们虽然经常在一起使用但本质上是两个分离的概念。[^1]
## 使用队列系统
队列系统与操作系统绑定很深。
* srv1使用 [Slurm](#slurm新)。
* srv1Windows请阅读 [Windows](#windows) 章节,了解相关注意事项。
* xmupc1 和 xmupc2使用 [Slurm](#slurm旧)。
* 厦大超算jykang使用 [LSF](#lsf)。
### Slurm
#### 使用图形界面快速开始
使用命令 `sbatch-tui` 或者 `sbatch` 不带任何参数,就可以看到一个图形界面[^3]。
按照提示,鼠标点选对应按钮,即可提交任务。这可以满足一多半的需求。
以下用一些例子来进一步介绍如何使用 Slurm。更多细节请参考[官方文档](https://slurm.schedmd.com/)。
例子中一些选项是可选的、一些是必写的,会详细说明。
#### 提交任务
使用 `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"
```
* `--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 并行的程序(包括 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#混合使用不同型号的节点)。
* `--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`
以下是一个提交 VASPGPU任务的例子这个例子适用于旧的打包方式会在下次服务器维护后更改
```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` 对于 VASPGPU来说一定要写且只能设置为 `1`,对于其它任务(例如 LAMMPS可以适当修改。[^4]
* `--cpus-per-task` 对于 VASPGPU来说通常不用指定[^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基本相同只是 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
```
### 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` 的另外一种写法。
VASPGPU限制每个 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 的核心数或者核心数的一半时,性能最好。
```

View 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 的安装目录中找到它。
![](pageant3.png)
2. 启动 Pageant<br/>
启动后可能没有任何反应,也可能有一个黑框闪过,这是正常的。只要右下角的系统托盘中出现了 Pageant 的图标就可以了。
![](pageant1.png)
3. 添加密钥<br/>
双击 Pageant 图标,打开 Pageant 窗口。选择“Add Key”然后选择您的密钥文件。
![](pageant2.png)
{{< 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 协议部分。
![](putty5.png)
2. 在 Connection->SSH->Auth勾选“Attempt authentication using Pageant”和“Allow agent forwarding”。
![](putty1.png)
3. 在 Connection->SSH->Auth->Credentials清空“Private key file for authentication”。
![](putty2.png)
4. (选做但推荐)在 Connection->Data中将“Auto-login username”设置为用户名这样每次登陆时就不需要手动输入用户名了。
各个服务器的用户名请参考[连接协议和参数](../config#连接协议和参数)。
5. 回到Session在“Saved Sessions”中输入任意一个名字例如 `jykang`并点击“Save”以保存配置。之后双击这个配置文件的名字即可登陆。
![](putty4.png)
{{< /details >}}
{{< details title="配置 WinSCP" closed="true" >}}
1. 在登陆界面,点击“新建站点”。
设置“文件协议”为 `SCP`,“主机名”(即地址)、“端口号”、“用户名”参考[连接协议和参数](../config#连接协议和参数)中的SSH协议部分密码为空。
然后点击右下角“高级”继续修改设置。
![](winscp3.png)
{{< callout type="info" >}}
文件协议设置为 `SFTP` 大多功能也可以使用,但相比于 SCP 协议SFTP 可用的功能较少(例如不能远程复制)。因此建议使用 SCP。
{{< /callout >}}
2. 在 SSH->Authentication勾选“使用 Pageant 进行认证”,勾选“允许代理转发”,清空“密钥文件”,然后点击“确定”,再点击“保存”。
![](winscp1.png)
3. (选做)如果您需要通过 WinSCP 打开 PuTTY 的话,需要在 WinSCP 主界面->工具->选项->集成->应用程序路径中,
在原来的基础上增加 `-A` 参数。
![](winscp2.png)
{{< 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 协议部分。
![](putty5.png)
2. 在 Connection->SSH->Auth->Credentials在“Private key file for authentication”中选择自己密钥文件。
如果之后把密钥文件移动到了别的地方,需要在这里重新选择。
![](putty6.png)
3. (选做但推荐)在 Connection->Data中将“Auto-login username”设置为自己的用户名这样每次登陆时就不需要手动输入用户名了。
用户名参考[服务器配置](../config#连接协议和参数)。
4. 回到 Session在“Saved Sessions”中输入任意一个名字例如 `jykang`并点击“Save”以保存配置。之后双击这个配置文件的名字即可登陆。
![](putty4.png)
{{< /details >}}
{{< details title="配置 WinSCP" closed="true" >}}
1. 在登陆界面,点击“新建站点”。
设置“文件协议”为 `SCP`,“主机名”(即地址)、“端口号”、“用户名”参考[服务器配置](../config#连接协议和参数)中的 SSH 协议部分,密码为空。
然后点击右下角“高级”继续修改设置。
![](winscp3.png)
{{< callout type="info" >}}
文件协议设置为 `SFTP` 大多功能也可以使用,但相比于 SCP 协议SFTP 可用的功能较少(例如不能远程复制)。因此建议使用 SCP。
{{< /callout >}}
2. 在 SSH->Authentication选择“密钥文件”然后点击“确定”再点击“保存”。如果之后把密钥文件移动到了别的地方需要在这里重新选择。
![](winscp4.png)
{{< /details >}}
### 连接 VASP 服务器,使用密码
接下来介绍在 Windows 上,使用 WinSCP 和 PuTTY 这两个软件,使用密码,通过 SSH 协议连接到远程服务器。
{{< details title="配置 PuTTY" closed="true" >}}
1. 在 Session 中设置“Host Name (or IP address)”和“Port”为对应服务器的地址和端口。
参考[服务器配置](../config#连接协议和参数)中的SSH协议部分。
![](putty5.png)
2. (选做但推荐)在 Connection->Data中将“Auto-login username”设置为自己的用户名这样每次登陆时就不需要手动输入用户名了。
用户名参考[服务器配置](../config#连接协议和参数)中的SSH协议部分。
3. 回到 Session在“Saved Sessions”中输入任意一个名字例如 `jykang`并点击“Save”以保存配置。之后双击这个配置文件的名字即可登陆。
输入密码的过程中,屏幕上既不会显示密码也不会显示星号,这是正常的,把密码输完回车就行。
![](putty4.png)
{{< /details >}}
{{< details title="配置 WinSCP" closed="true" >}}
在登陆界面,点击“新建站点”。
设置“文件协议”为 `SCP`,“主机名”(即地址)、“端口号”、“用户名”参考[服务器配置](../config#连接协议和参数)中的 SSH 协议部分,并填入密码。
再点击“保存”。
![](winscp3.png)
{{< callout type="info" >}}
文件协议设置为 `SFTP` 大多功能也可以使用,但相比于 SCP 协议SFTP 可用的功能较少(例如不能远程复制)。因此建议使用 SCP。
{{< /callout >}}
{{< /details >}}
### 连接 FDTD 服务器
接下来介绍在 Windows 上,使用 Windows 自带的远程桌面客户端,通过 RDP 协议,连接到 Windows 远程服务器的操作。
其它使用 RDP 连接的方法参考[使用 RDP 远程桌面](#使用-rdp-远程桌面)。
{{< details title="配置 Windows 自带远程桌面" closed="true" >}}
1. 在开始菜单中搜索“远程”,打开“远程桌面连接”。
![](rdp1.png)
1. 在“计算机”中输入服务器地址,然后点击“连接”。服务器地址参考[连接协议和参数](../config#连接协议和参数)中的 RDP 协议部分。
![](rdp2.png)
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 在服务器之间建立连接
待补充。

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
content/docs/server/link/rdp1.png LFS Normal file

Binary file not shown.

BIN
content/docs/server/link/rdp2.png LFS Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View 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。
![](rdp1.png)
<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

Binary file not shown.

BIN
content/docs/server/qa/rdp2.png LFS Normal file

Binary file not shown.

View 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)。

View 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 >}}

View File

@@ -0,0 +1,8 @@
---
weight: 2
title: "便民小工具"
---
{{< cards >}}
{{< card link="lottery" title="组会抽奖工具" subtitle="~~万恶之源~~" icon="present" >}}
{{< /cards >}}

View 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)。
* 别找我改概率/删名字,我不敢。

Binary file not shown.