update --hint doc

This commit is contained in:
2025-03-04 18:26:03 +08:00
parent 0d73fc16c3
commit f2c624dae6

View File

@@ -34,7 +34,7 @@ sbatch -p localhost -N 1-1 -n 2 -c 4 -J "my great job" -o output.txt --wrap="sru
* 对于 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]。
* `--hint=nomultithread` 一般建议设置[^6]。
* `--job-name``-J` 指定任务的名字,可以不写。
* `--output``-o` 指定输出文件的名字,可以不写。
* `--export=ALL,OMP_NUM_THREADS=4,OMP_STACKSIZE=512m` 指定环境变量。完全不写这个参数时,相当于 `--export=ALL`
@@ -123,7 +123,6 @@ sudo scontrol update JobId=3337 Nice=2147483645
这个对应关系并不是一定的,比如你先请求 10 个 task然后用 `srun` 运行 10 个不相关的程序也是可以的,这个过程中可以根本没有 MPI 和 OpenMP。
[^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)。