GPU 加速的 Abaqus

现在,开始阅读此《GPU Ready Apps Guide》(GPU Ready 应用程序指南)。

Abaqus Standard

对于极其注重高精确度压力解决方案的静态和低速动态事件,Abaqus/Standard 所采用的解决方案技术是其理想选择。其中的部分使用案例包括:将压力密封在接口垫圈中、轮胎的稳态旋转以及复合材料飞机机身中的裂纹扩展。利用 Abaqus,可以在单次模拟中从时间和频率范围来分析模型。

相对于单纯采用 CPU 的系统,Abaqus/Standard 在由 NVIDIA GPU 加速的系统中可快 3.7 倍,使用户可以在工作中运行更多的有限元模拟,从而提供生产率。

阅读有关采用 NVIDIA GPU 加速 Abaqus 模拟的白皮书。 如需了解 NVIDIA GPU 如何加速 Dassault Systèmes SIMULIA 的 Abaqus/Standard FEA Solver,请单击此处

Abaqus 采用 GPU 之后速度可以提升 3.7 倍

安装

下载和安装说明

您可以从 3ds SIMULIA 网站下载Abaqus Standard(R2017x 版本),下面详细介绍简洁安装说明:

1.下载“tar”文件,tar 文档中的内容必须解压到同一个目录。解压操作将会生成一个名为“AM_SIM_Abaqus_Extend.AllOS”的子目录,其中包含安装软件。

2.运行 shell 脚本,并有选择地安装文档、许可证和其余应用程序,安装顺序请参考《安装指南》

Abaqus 许可令牌 - 节约成本

Abaqus 许可基于令牌,因此用户可以非常灵活地运行各种 Abaqus 分析,并使用 Abaqus/CAE 来构建模拟模型或查看结果。令牌数量由用于运行模拟的 CPU 核心数量而计算。Abaqus 使用以下递减函数公式来确定令牌数量。在此公式中,N 是 CPU 核心数。

下图中的这个等式,说明了Abaqus 许可令牌的数量如何随着核心数的增加而增加。

Abaqus 许可令牌的数量如何随着核心数的增加而增加。

蓝色曲线表示仅使用 CPU 的案例,而绿色曲表表示同时使用 CPU 和 GPU 的案例。曲线中的阶梯形状说明了所需令牌数量如何随着 CPU 核心数的增加呈现递减式增加。在此模拟采用 GPU 后,可以将其作为单个 CPU 核心来计算所需令牌的数量。这种将 GPU 考虑在内的方式表现为绿色阶梯状曲线,并在顶部的辅助 X 轴上显示相应的 CPU+GPU 核心计数。

使用 GPU 进行模拟时的成本优势用图中表示为虚线
的两组计算配置进行展示:

  • 在主 X 轴的 8 核心标记处显示的第一条曲线表明 8 个 CPU 核心需要 12 个令牌。如果在运行模拟时采用了 GPU,则 CPU 核心数量为 9,但令牌数量仍然是 12 个,如图中的一条红色虚线所示。
  • 主 X 轴的 16 核心标记处显示的第二条虚线表明 16 个 CPU 核心需要 16 个令牌。将 1 或 2 个 GPU 添加到 16 个 CPU 核心会将 CPU 核心计数增加到 17 个或 18 个,但令牌数量仍然保持在 16 个,如图中的一对红色虚线所示。

这种阶梯形状显示出两条曲线的核心数量增加幅度更大,证明了更多 CPU 核心即代表更具成本效益的事实。当使用 GPU 而非更多的 CPU 时,这种优势更加明显。

运行作业

要在 GPU 上运行 Abaqus 模拟,必须在命令行中加入 -gpus 标志。从 6.14 版本开始,将 -threads 标志或 -mp_host_split 标志添加到 -gpus 标志,则 DMP 分割功能(DMP 和 SMP)能够与 GPU 加速合并运行。

$Abaqus_2017 -interactive -j $job_name -inp $input_file_name -cpus $no_of_cpu_cores -gpus
$no_of_gpus_per_dmp -mp_host_split $no_of_dmp_per_node >& $output_file

标志和函数

1.–cpus:指定作业的 CPU 核心数量。

2.–gpus:指定每个 DPM 进程的 GPU 数量。

3.–mp_host_split:指定每个节点的 DPM 进程数量。

4.–thread:此标志可以取代 -mp_host_split 标志来指定每个 DMP 进程的线程数。

从 Abaqus 2016 版本开始,不再需要将 GPU 设为独占模式。但是,仍然建议在运行多个 Abaqus 作业时检查 GPU 是否被过度申请。如果是,请针对 DMP 进程将 GPU 设置为独占模式,以便转到单独的 GPU。通过运行以下 nvidia-smi 命令能够将 GPU 设为独占模式:

$nvidia-smi -c 3

对于双 GPU 插槽机器,请创建两个 DMP 进程并使用两个 GPU:每个 DMP 进程一个 GPU。

此外,请将包含以下内容的本地 abaqus_v6.env 放到 project/run 目录,以覆盖和指定用于提升性能的其他命令。

# Overwrite files without questions
ask_delete=OFF
# Modify the Host List based on the number of Compute Nodes Used and
specify the CPU cores per node accordingly
# Set mpi CPU affinity mode at socket granularity
mp_mpirun_options = “-prot -aff:automatic:bandwidth:socket”
import os
os.environ['ABA_SRM_BALANCED']='ON'

基准

每块 Tesla P100 卡都具有单个 Pascal GPU,每块 Tesla K80 卡都具有两个 Kepler GPU。此运行可以使用不同 Abaqus 版本的命令行/环境变体完成。请参阅有关使用 NVIDIA GPU 进行 Abaqus 计算的白皮书,以了解环境设置和其他配置。

CPU 和 NVIDIA GPU 系统上的 Abaqus/Standard 2017 性能

推荐的系统配置

硬件配置

工作站

参数
规格

CPU 架构

x86

系统内存

48 GB 或更大

磁盘

最低 500 GB

CPU 数

2 个 CPU 插槽(8 核以上,2 GHz 以上)

GPU 型号

适用于双精度计算的 Quadro GP100

GPU 数

1

服务器

参数
规格

CPU 架构

x86

系统内存

96-192 GB

CPU 数/节点数

2(8 核以上,2 GHz 以上)

总节点数

1-10 个以上

GPU 型号

Tesla P100

GPU 数/节点数

1

互联

Infiniband

立即构建理想的 GPU 解决方案。