Linux工作站指南
前言
从 2021 年 5 月 20 日起,工作站的操作系统从 Windows 10 迁移至 Ubuntu 20.04。Linux 作为最流行的服务器系统,广泛应用于 HPC 集群等高性能计算机设备。其主要优势包括:
1. 可靠的稳健性。 Linux 的操作基于 Linux shell,这意味着所有对 Linux 的操作实际上由命令行完成,包括桌面图形在内的所有上层设施都基于底层的脚本,这确保 Linux 在图形崩溃时仍能使用底层的 tty 执行命令行或恢复。大部分 7×24 小时开启的服务器均采用 Linux 系统。
2. 良好的性能。 Linux 系统的内存占用普遍低于 Windows,这得益于没有针对 Linux 的流氓软件,以及 Linux 良好的进程管理。由于采用 ext4 格式硬盘,Linux 在小文件 IO 的性能方面也具备显著优势。
3. 强大的开源生态链。 在计算机仿真领域,几乎所有的开源程序都更偏向 GNU/Linux 生态。事实上,包括 ANSYS,LSTC 在内的商软在测试性能时也偏向使用 Linux(比如 RHEL)。
4. 便利的网络配置。 Linux 几乎是组建计算机集群的唯一选择。
5. 以上都是编的。 主要原因是逼格够高。
工作站配置介绍
系统的基本操作
本系统安装了 Gnome 桌面,也就是你们现在看到的这个图形界面。尽管很多软件像 win10 一样能用双击的方式打开,但这并不是一个很好的选择。因为使用这种方式打开的软件默认采用后台运行的方式,当后台运行的软件报错时,我们可能需要进入任务管理器才能强制中断并退出。Linux 系统更推荐使用终端(Terminal)直接输入命令行进行操作。使用 Ctrl+Alt+T 或在资源管理器的空白位置 右键->Open in Terminal 可以快速打开一个终端窗口。
注意事项
-
请务必在运行程序时注意终端命令的执行路径!错误的路径很可能会覆盖其他人的工作成果!在终端中执行
pwd命令可以快速查看当前路径。 -
在运行大规模的计算时,请注意系统资源的占用情况!在终端中执行
top或htop可以快速查看当前的 CPU 和内存使用情况。
主要CAE软件的使用方法
ANSYS Fluent
ANSYS LS-DYNA
目前,支持从 LS-Run 启动和从命令行启动两种执行方法。
I. 从LS-Run启动
在终端执行 lsrun &,之后操作与 Windows 类似,在 Preset 选项中选择 MPP/SMP 和精度选项来指定求解器(请不要直接更改 SOLVER 路径!)。点击 LSPP 按钮执行后处理。
II. 从命令行启动
1. 配置项目路径
将你想要执行的 k 文件放到你的工作路径,打开终端,进入你的工作路径,例如
cd /media/workstationData/lsdyna_example/
当然,如果你在资源管理器界面,在当前文件目录下采用右键的方式打开 Terminal 的话,Terminal 默认的路径就会在当前路径下,可以执行 pwd 命令核实。
2. 执行LS-DYNA求解器
LS-DYNA 的求解器命令为 lsdyna,其通过不同的可选命令来实现求解的设置,如:
-mpp 使用 MPP 求解器,不附加该词条则使用 SMP 求解器
-np X 使用 X 个计算节点启动 MPP 求解器
-dp 使用双精度求解器,不附加该词条则使用单精度求解器
i=xxx.k 指定需要执行的 k 文件,应确保 k 文件位于当前路径
memory=xxxxxx 指定求解器占用内存,默认单位是字节,一般情况下不需要使用
ncpus=X 使用 X 个线程启动 SMP 求解器。需要注意,按照官方文档的说明,当并行线程数大于 5 时,SMP 的并行加速比可能会显著下降,此时更推荐使用 MPP 求解器。
以下给出一些实际运行案例:
- 使用
1个线程运行单精度SMP求解器
lsdyna i=test.k
- 使用
4个并行节点运行单精度MPP求解器
lsdyna -mpp -np 4 i=test.k
- 使用
4个线程运行双精度SMP求解器
lsdyna -dp i=test.k ncpus=4
- 使用
8个并行节点运行双精度MPP求解器
lsdyna -mpp -dp -np 8 i=test.k
- 使用
8个并行节点运行双精度MPP求解器,并指定 2000M 内存
lsdyna -mpp -dp -np 8 i=test.k memory=2000M
或
lsdyna -mpp -dp -np 8 i=test.k memory=2000000000
3. 使用LS-PrePost后处理
在当前路径执行 lsprepost 即可,后续操作和 Windows 下一致。
4. 常见问题
重启工作站后 MPP 程序卡住
这个问题可能是由于 INTELMPI 没有获取足够的权限导致的,可以尝试执行以下命令(如不了解管理员权限,请事先告知我!)
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope