使用HPC优化电磁仿真性能

CST Installation Guide

目录

介绍,动机

让仿真运行更快……

算法

选择最有效的算法⬆️

这个可以通过SIMULIA CST Studio Suite®轻松完成,因为在前端提供了许多数值算法。

使用先进的工作流程和模型耦合策略,例如SAM,场源耦合等。

通常结合

硬件

当出现瓶颈的时候使用更好(更快)的硬件

仿真过程

► 预求解 – 时域矩阵计算;FD,IE,A求解器:网格划分和方程建立

► 求解:TD时间步进;FD – Direct Solver矩阵求逆

► 后处理;结果可视化

 

使用HPC的动机

情况A

用户有小型/中等尺度模型,要求更高运算性能

情况A

添加GPU卡显著提升性能

情况B

用户需要运行具备很多参数扫描的实验设计

情况B

使用分布式计算,一次性提交多个参数扫描

情况C

用户有大型模型,需要大量内存

情况C

将任务提交到HPC集群,使用MPI计算

CST Studio Suite® 加速技术

CPU 多线程

GPU 计算

分布式计算

MPI 计算

CPU多线程技术适用于所有加速方案,可与GPU计算、分布式计算及MPI计算并行使用。

对多种求解器而言,在GPU显卡上运行任务可实现最优性能提升。GPU提供的显存带宽远超CPU内存带宽。

目前GPU仅影响仿真的求解计算环节。

CPU多线程

SIMULIA CST Studio Suite CPU术语
 
 

► CPU设备:指的是插入到主板CPU卡槽的总处理器。

► Cores/threads:/线程:每个处理器通常有许多核。大多数SIMULIA CST Studio Suite求解器将任务并行到多个核上。

► Hyper threading:超线程:指的是“虚拟”核。SIMULIA CST Studio Suite仅使用物理核即可获得最佳性能。

理想情况下,SIMULIA CST Studio Suite任务应该运行在双处理器Intel Xeon系统上

 
 
 
 
 
 
 
 
 
 
 
 
 
 
Frequency Domain Solver性能量化

算法是受CPU限制,针对多核处理进行了优化并提供了非常好的性能。

频域(有限元方法)求解器主要受计算资源限制。

这意味着其计算量与数据访问量的比值非常高。如图所示,此类算法在多CPU核心上具有良好的扩展性。

本次基准测试使用FD直接求解器在双路16核系统上运行单频点计算,实现了良好的多核扩展效果。

测试未在集群上运行,所有CPU核心均位于同一系统内。

Asymptotic Solver性能量化

随着核数增多,有效性能提升。

渐进式(射线追踪)求解器同样受计算资源限制。

这是一项战斗机雷达截面计算的基准测试。该A求解器的多核扩展性能表现优异,在32核心配置下实现了22倍的性能提升!

Transient Solver性能量化

Time Domain Solver是受内存限制。提升性能的最佳技术是增加内存带宽。

时域求解器的性能受内存带宽限制。由于需要频繁读写主内存,所有核心都需通过内存控制器访问DIMM模块。提升内存带宽比增加核心数量更能有效提高时域求解器的计算性能。

CPU加速设置

在 SIMULIA CST Studio Suite 图形界面中,选择加速设置即可进入此窗口。

默认情况下,系统 CPU 设备上的所有核心均会用于 SIMULIA CST Studio Suite 任务。只要多线程数值等于或高于总核心数,通常无需调整该设置。

在双路 CPU 设备系统上使用全部核心运行任务时,无需消耗加速令牌

CPU许可

计算用于SIMULIA CST Studio Suite作业的总CPU设备数。

加速令牌是用于激活高性能计算功能的授权机制。下表说明了CPU设备的授权规则:

加速令牌数量取决于CPU设备总数。例如,支持四路CPU系统需要1个加速令牌。

GPU计算

求解器支持的加速方法
 

 

以下求解器支持GPU计算:

时域求解器(包含有限积分技术与传输线矩阵算法)、粒子网格法、积分方程求解器(包含矩量法与多层快速多极子算法)。此外,渐进式求解器与共轭传热求解器也可在GPU显卡上运行。

支持的NVIDIA硬件加速设备

 

该图表列出了所有受支持的 NVIDIA GPU 显卡,包括较早的型号。最新软件版本已不再支持 Tesla 10 和 Tesla 20(Fermi)系列 GPU 显卡。

Kepler 和 Maxwell 架构的显卡仍可在旧硬件上使用。

Tesla 系列显卡推荐用于服务器,而 Quadro 系列则推荐用于工作站,以满足高端图形处理与 GPU 计算的双重需求。

SIMULIA CST Studio Suite 2019 版本新增了对 Volta 系列的支持,CST Studio Suite 2020 版本则新增了对 Turing 系列显卡的支持。

支持最新的NVIDIA GPU设备

 

该表格列出了最新支持的 NVIDIA GPU 显卡型号。

推荐使用性能最强、显存容量最高的 Volta 系列显卡。该系列显卡的显存带宽远超前代产品。

请注意,Quadro RTX(Turing)系列显卡的双精度计算性能弱于 CPU,因此不推荐将其用于粒子网格法、I 求解器或 A 求解器的 GPU 仿真,因为这些求解器均需双精度计算精度。

GPU计算——典型性能
 

需要最大GPU内存的模型:

  • 色散材料
  • 有损耗的金属
  • 开放边界

左侧展示了时域求解器、渐进式求解器及粒子网格法GPU求解器的典型性能曲线:

对于非常小的模型,在CPU上运行任务速度较快,因为CPU能高效利用本地缓存(本地缓存带宽远高于常规内存访问带宽)。

当模型规模增大至占满100% GPU显存时,性能达到最优。对于更大的模型,GPU显存耗尽会导致GPU与CPU间频繁数据交换,从而降低性能。若模型GPU显存使用量达到150%,GPU计算将被禁用,任务将仅在CPU上运行。

对GPU显存使用影响最大的特性包括:色散材料、有损金属及开放边界条件。

GPU性能—量化
 
 

Time Domain Solver

RJ45连接器

160M网格

Volta 100 GPU

这是一个包含1.6亿网格单元的RJ45连接器模型,分别在双路至强金牌CPU及1至8块Volta 100 GPU上运行测试。

使用最多4块GPU时性能扩展效果显著。扩展效率受GPU显存利用率百分比影响,其中”3令牌-4 GPU”配置为最佳性能点。

在8 GPU配置下,每块GPU在执行任务时利用率较低,导致扩展性能下降。

 
 
 
 
GPU计算性能

这里展示的是各求解器在GPU计算中获益最大的各类模型基准测试结果。

较简单的模型所能获得的加速比低于更复杂的模型。对于时域求解器和渐进式求解器而言,其复杂模型相较于双路至强金牌CPU配置,能提供高达10倍的求解循环加速。

GPU计算加速设置

为使任务能在GPU显卡上运行,需要启用硬件加速选项并选择系统中的GPU数量。

输入双CPU设备以优化性能——因为矩阵计算仍需在CPU上单独执行。在配备双CPU和1块GPU显卡的系统上运行任务需要1个加速令牌。

GPU Computing Licensing GPU计算许可

计算系统(或集群)上用于作业的GPU口令总数。

要确定所需的加速令牌数量,请统计仿真所使用的GPU显卡总数。

2块GPU显卡需要2个令牌,3个令牌可支持3至4块显卡。随着系统或集群中GPU显卡数量的增加,加速令牌授权的性价比会更高。

分布式计算

求解器支持的加速方法

几乎所有 SIMULIA CST Studio Suite 求解器均支持分布式计算。

Tasks which can be Distributed可分发的任务

以下列出了支持分布式计算的任务类型:

时域求解器的激励(端口)任务

参数扫描与优化——所有支持分布式计算的求解器均可执行

频点计算——适用于频域求解器与积分方程求解器

 
分布式计算概述

分布式计算主控制器是整个系统的核心组件,负责管理作业队列。它采用先进先出技术,将前端提交的任务分发给各求解器服务器。

例如:第一名用户提交3个任务,由前3台分布式求解器服务器执行。第二名用户提交4个任务,其中1个由第4台求解器服务器执行,其余3个由主控制器暂存队列,待其他任务完成后执行。

连接各分布式计算组件的网络应具备足够带宽。仿真结束时可能产生大量数据传输,因此建议尽可能采用10Gb以太网连接。

分布式计算 – 优点
  • 用于独立任务非常有效的并行策略。
  • 分布式仿真的进程和中间结果显示在CST前端。
  • 在多用户环境中共享计算资源的简单方法。
  • 该系统是跨平台的。
 
 
 
分布式计算 — 共享存储

传统的分布式计算配置是将包含独立任务的 CST 项目副本发送至各分布式求解器服务器。对于大型项目,将结果从分布式求解器服务器传回前端节点可能耗时显著。

可采用共享存储方案。假设 CST 项目存储在文件服务器的共享驱动器上,分布式求解器服务器可直接连接该共享驱动器。这省去了传输分布式计算结果的工作,从而缩短了整体仿真时间。

传统DC设置

将CST项目的副本传送到所有计算节点

共享存储

CST项目在文件服务器上;无需数据传输

4个参数扫描的分布设置

用户需要提交4个并行运行的参数扫描任务,且当前有4台分布式求解器服务器可用。每台服务器均配备双路CPU设备。图表显示了在各独立求解器上运行单个参数扫描任务的相对加速效果,仿真时间几乎呈现线性提升。

使用2个加速口令,仿真性能比1个节点提高4倍

该任务仅需消耗2个加速令牌即可完成,相比在单节点上运行,性能提升约达4倍。

分布式计算许可

如果计算节点包含GPU卡,那么令两列的总口令数相加

比如:2个端口分布到两个系统,每个系统有2个CPU,2个GPU

  • 2×2 CPU 设备 = 1个口令
  • 2×2 GPU 设备 = 3个口令
  • 总数 = 4个加速口令

此表为分布式计算的加速令牌授权对照表。若计算节点配备GPU显卡,则需将CPU列和GPU列所需的令牌数相加。

现举例说明:需要将2个端口任务分发至2个系统执行,每个系统均配备双路CPU和双GPU显卡。总计4个CPU设备需要1个令牌,4个GPU设备需要3个令牌,因此所需加速令牌总数为4个。

MPI计算

求解器支持的加速算法
 
 

以下求解器支持MPI计算:

  • 时域(有限积分技术)求解器

  • 积分方程(多层快速多极子算法、矩量法)求解器

这两类求解器均支持MPI计算与GPU计算的协同使用。

MPI 计算 – 工作原理

基于仿真域的域分解

这张飞机上的图解显示的是双节点MPI任务的领域分解网络视图。

MPI计算技术使用一组机器紧密配合解决单一问题,领域分解用于将工作负载分配给集群节点。

图中展示的是一架飞机上的双节点MPI任务领域分解网络视图。

所需的高速低延迟互连网络需要1微秒或更低的延迟,这就是为什么所有计算节点在整个任务期间都在共享结果。千兆以太网的延迟太高了。

MPI 计算 – 负载平衡

自动负载平衡可确保最佳性能

默认启用自动负载平衡:基于仿真工作量评估

如果禁用:负载平衡基于网格数

MPI 计算 – 应用范围

电尺寸非常大的结构仿真(RCS, 天线布局,复杂PCB)

MPI计算是一种高效处理电尺寸非常大且复杂的模型的方法。

以下是适合采用MPI计算的大规模网格模型典型案例:

  1. 模型本身在目标频段具有极大电尺寸(常见于天线布局、雷达散射截面分析),如图示飞机或公交车模型。

  2. 模型几何结构极其复杂(如右侧芯片模型),需要大量网格单元才能准确解析几何细节。

MPI 计算 – 性能
飞机雷击效应模拟图——FZA1原创作品

模型大小为800万网格,该图显示求解器的(强大)性能(仿真计算最密集部分和集群节点数的关系)

2026-01-16_172137_920

MPI计算是一种高效处理电尺寸非常大且复杂的模型的方法。

该仿真针对一个包含8亿网格单元的飞机模型,分别在1至8个计算节点上运行。所用集群配置为RHEL7系统,搭载Broadwell架构CPU,每个节点配备256GB内存。

并行扩展效率取决于每个节点的内存使用量。若模型内存占用量较小,则扩展效果有限。

本模型约需200GB内存,因此在4节点配置中,每个节点需分配约50GB内存。

 
MPI 机器文件

# CSTMachineFile 20130527

# DefaultInstallationFolder “/opt/cst/CST_STUDIO_SUITE_2019”

# DefaultTempFolder “/temp”

# DefaultMachineArchitecture Linux AMD64

Host1 #  ; “/tmp/RMS-scratch/” ; “/opt/cst/CST_STUDIO_SUITE_2019” ; Linux AMD64 ; Active

Host2 #  ; “/tmp/RMS-scratch/” ; “/opt/cst/CST_STUDIO_SUITE_2019” ; Linux AMD64 ; Active

Host3 #  ; “/tmp/RMS-scratch/” ; “/opt/cst/CST_STUDIO_SUITE_2019” ; Linux AMD64 ; Active

Host4 #  ; “/tmp/RMS-scratch/” ; “/opt/cst/CST_STUDIO_SUITE_2019” ; Linux AMD64 ; Active

需要准备机器配置文件,其中需列出参与MPI任务的计算节点。以下是包含4个Linux节点的机器配置文件示例。

该配置文件需包含以下信息:主机名、安装目录、临时文件夹(用于存储各节点的临时结果)以及系统架构。

MPI集群—交互界面

MPI任务可通过交互会话方式提交。

此例展示的是使用包含4个Windows节点的机器配置文件。

可直接通过此窗口运行集群检查功能。

集群系统检查

在提交MPI任务前,需在集群上运行系统检查程序。

集群节点间需配置免密码SSH互访

所有节点必须采用相同的操作系统

网络故障——通常由Infiniband设置问题引起

检查程序会为任何失败的测试提供详细信息

本例中,问题出在对临时目录的写入操作。

原因是机器配置文件中列出了错误的系统临时目录。

 
MPI计算加速设置

MPI任务的加速设置,需要启用MPI计算选项。并行在4个节点上的MPI任务需要2个加速令牌。

4个MPI节点*2个CPU设备 = 8个CPU设备,需要2个加速卡

MPI计算许可

如果计算节点包含GPU卡,则将两列总口令相加

比如:作业并行到4个节点上。每个系统有2个CPU,2个GPU

  • 4×2 CPU 设备 = 2 加速口令
  • 4×2 GPU 设备 = 4 加速口令
  • 总数 = 6个加速口令

此表为MPI计算的加速令牌授权对照表。若计算节点配备GPU显卡,则需将CPU列和GPU列所需的令牌数相加。

现举例说明:任务在4个系统上运行,每个系统均配备双路CPU和双GPU显卡。总计8个CPU设备需要2个令牌,8个GPU设备需要4个令牌,因此所需加速令牌总数为6个。

 

在作业调度程序管理下的集群上运行模拟

HPC系统集成和可用性

►计算资源正在集中化

►HPC环境通常很复杂,可以远程访问,访问由作业调度程序控制。

  • 仿真不能直接启动,但必须提交给具有正确选项的调度程序。

高性能计算系统正逐步集中在由作业调度器管理的大型集群中。

用户需将作业提交至集群头节点或集群管理器,通常以批处理模式完成此操作。

SIMULIA CST Studio Suite 的 Linux 安装镜像中已包含用于高性能计算集群的集群集成脚本。

 
 
 
 

支持的作业调度程序

经 SIMULIA CST Studio Suite 验证的作业调度器,目前使用最广泛的调度器包括 LSF、PBS Pro 和 SLURM。

►IBM® Spectrum LSF

►Altair PBS Professional™

►Univa® Grid Engine®

►Slurm®

►HTCondor™

►Microsoft® Windows® HPC

►Torque™

Linux集群脚本

SIMULIA CST Studio Suite 集群集成脚本为用户提供了指定在 HPC 集群上运行任务的方法。

图示为在 LSF 集群上提交作业的设置选项。

该作业将在 “短时任务” 队列中运行,最长运行时间为 5 小时,使用瞬态求解器,并在 4 个节点上采用 MPI 计算模式。

总结

了解求解器的工作原理并优化其使用方式至关重要。可用的加速技术包括:CPU多线程计算、GPU计算、分布式计算和MPI计算。这些技术可在单个任务中组合使用,作业可通过作业调度器提交至受管理的集群运行。

最后为您提供一份快速查询速查表作为本部分结尾。

针对不同求解器,在多数情况下哪种加速技术最为合适?

  • 时域求解器:单个中等规模任务 → 使用GPU计算

  • 频域求解器:多个频点计算 → 采用分布式计算

  • 多参数扫描​ → 采用分布式计算

  • 瞬态求解器:超大规模任务 → 采用MPI计算

 
 
 
 
 
 
 
 
 
 
 
 

相关 安装部署 文章