本节是关于计算资源配置的介绍。
SimWorks 提供了灵活的计算资源配置选项,支持多种软件加速和并行计算技术,能够满足不同用户的仿真需求。SimWorks Finite Difference Solutions支持 Cloud 、 Local 和 Remote 三种资源模式,帮助用户充分利用现有计算资源。
在运行工程仿真前,用户可通过主界面选项卡中的 Resources 进入资源配置界面,根据实际需求灵活选择并设置计算资源。
上述资源模式构建在统一的高性能计算技术之上,其优异的仿真效率由以下核心加速技术驱动:
在 x86 CPU 平台上,我们构建了“线程级+指令级”双重并行架构,充分发挥了每个计算节点的单机算力。
针对GPU计算,我们采用设备特定后端分离的设计,采用 CUDA-aware MPI 等并行技术,为从本地多GPU到多节点GPU集群的应用场景提供了强大且可扩展的并行计算能力。
此为远程并行模式的核心构成,旨在支持大规模仿真问题的求解。系统采用“域分解+消息传递”策略,天然适配分布式内存架构。
综上,SimWorks的 FDTD 不仅是一个求解器,更是一个面向现代异构高性能计算架构的综合计算平台。无论用户使用单台工作站、企业级多GPU服务器,还是千核级计算集群,均可获得一致、高效且可扩展的仿真体验,为电磁、光子、天线及生物电磁等领域的前沿研究与工程设计提供坚实算力支持。
本节是关于计算资源配置的介绍。
在运行工程仿真前,需要用户配置计算资源。在软件的 Home 选项卡中,用户可以按照以下方式打开计算资源配置窗口:


资源配置页面如下,可以为FDTD、FDFD、FDE三种求解器设置各自使用的计算资源,以及高级选项卡中的计算精度。该页面的按钮功能如下:

| Name | Description |
|---|---|
| Add | 添加一个新的计算资源; |
| Remove | 移除选中的计算资源; |
| Edit | 编辑选中的计算资源。 |
用户需要点击Edit进一步配置计算资源。需要注意的是,目前有三种计算资源可以进行设置:云计算(Cloud)、本地计算(Local)和远程计算(Remote)。云客户端仅支持调用云计算资源(Cloud),而完整版客户端可同时支持三种计算资源。以下是对这三种计算资源配置的简要说明:

| Name | Description |
|---|---|
| Local | 使用用户本地计算机算力,不支持多机并行计算,SimWorks FD Solutions支持; |
| Remote | 可以选择多台计算机算力,支持多机并行计算,SimWorks FD Solutions支持; |
| Cloud | 直接调用云计算资源,SimWorks Cloud FDTD与SimWorks FD Solutions均支持。 |
SimWorks的Cloud资源依托阿里云服务器进行构建,最高可使用64核CPU与8卡NVIDIA A10 GPU计算资源,为用户提供企业级算力支持。用户通过注册SimWorks账号即可实现即开即用,系统无需本地环境部署维护,也不依赖用户端设备性能,用户仅需网络连接即可实现跨地域实时进行仿真操作。针对工程数据传输环节,SimWorks通过阿里云安全防护体系与SimWorks加密技术的双重保障,确保全流程数据安全。
Cloud资源类型分为高性能计算(High Performance Computing, HPC)和弹性云服务器(Elastic Compute Service, ECS)。高性能计算中的实例为共享资源,当多用户选择同一个实例进行仿真时,该实例将按需分配算力给用户。弹性云服务器则实现计算资源的即开即用和弹性伸缩,其中的实例为独享实例,用户的仿真任务可以使用该实例的全部算力。

| Name | Description |
|---|---|
| ID | 实例的序号。 |
| Select | 用于选择实例的勾选框。 |
| Instance Specification | 实例的规格。 |
| CPUs | 实例的CPU核心数。 |
| Memory(GiB) | 实例的内存大小。 |
| Clock Speed(GHz) | 实例CPU核心的主频。 |
| GPU/FPGA | 实例的GPU/FPGA的类型。 |
| Theoretical FDTD Speed (Megacells/s) | 实例的理论FDTD速度。 |
| Price(CNY/Hour) | 实例计算一小时的单价。 |
由于高性能计算中的实例是由云计算按需分配,可能会出现同一时间有大量仿真任务导致资源短缺的情况。用户可以点击refresh查看当前实例是否可用(资源变灰则不可用),避免因资源暂时不足而长时间排队等候。

网络文件流(Network File Stream Type)选项卡用于选择网络传输文件流的类型,默认为最小尺寸(Minimum size)。用户可以点击账户中的 History 按钮查看并下载仿真结果文件。

Local资源基于本地计算资源运行,其性能上限直接受限于终端设备的硬件规格。针对对仿真效率有严苛要求的场景,建议通过升级CPU/GPU算力、增加内存容量等硬件优化手段提升运行效能。该模式适用于具备高频仿真需求且拥有高性能计算设备的用户选择。
Local资源可选择本地CPU/GPU算力:CPU支持多线程并行计算,可设置线程数;GPU可勾选不同的GPU ID使用本地的GPU资源进行计算。


以上各选项意义如下:
| Name | Description | Example |
|---|---|---|
| Computing Resources | 算力类型选择,支持CPU/GPU (CUDA)两种类型 | GPU (CUDA) |
| CPU | 选择CPU资源时可设置,可以设置CPU计算的线程数 | |
| Executable Settings | 配置客户端执行文件目录 | D:/Program Files/SimWorks/SimWorks FD Solutions/bin |
| GPU - 1 Devices | 在选择GPU资源时,用户可根据实际需求勾选对应的GPU设备ID进行计算;若希望使用全部GPU资源,也可点击All GPU Devices按钮一键启用。界面中显示的GPU参数依次为:设备ID、名称、显存容量、显存带宽、计算能力、SM核心数以及是否支持TCC模式。 | GPU 0 |
| Preview - test command | 实时显示资源测试命令 |
使用Local资源的工程由用户选择文件路径进行保存,相关扫描以及优化工程将自动保存在对应文件目录下。

Remote 资源基于用户自建的服务器基础设施,构建多主机计算环境,实现多节点并行计算。该模式直接利用用户现有的服务器资源,具备良好的扩展性,可根据仿真需求灵活部署计算节点,适用于需要跨节点资源共享与团队协作的企业或科研机构。
使用 Remote 资源时,用户需在各计算节点上配置相同的 MPI 环境,同时确保以下条件:
当前 SimWorks 支持以下主流 MPI,可以参考MPI环境配置页面进行具体的配置操作。
用户需从对应的 MPI 官方网站下载并安装相关软件,具体链接可在MPI友情链接中找到。在Remote资源配置完成后,建议使用 Resource Test 功能测试Remote资源的可用性。
无论使用何种MPI,均需要用户主动设置mpi host,选择对应的算力资源,多个算力资源的主机名称之间用英文逗号分隔。CPU算力资源支持设置每个主机中的进程数、线程数,GPU算力资源支持选择每个主机所拥有的GPU资源(GPU ID之间使用英文逗号分隔)。


以上各选项意义如下:
| Name | Description | Example |
|---|---|---|
| Computing Resources | 算力类型选择,支持CPU/GPU(CUDA)两种类型 | GPU (CUDA) |
| CPU | 选择CPU算力时可设置,可以设置每个主机CPU资源计算的进程数以及线程数 | |
| MPI Settings | MPI设置。 MPI implementation :选择MPI类型,软件支持Open MPI、Intel MPI以及Microsoft MPI三种MPI类型,不同操作系统支持类型不同。 Mpiexec path :设置自定义MPI执行文件目录。 Mpi hosts :配置多个MPI主机列表。 Extra command line options :自定义命令行参数(部分mpiexec需要额外的参数)。 | "Intel MPI" "C:/Program Files (x86)/Intel/oneAPI/mpi/2021.16/bin/mpiexec.exe" "127.0.0.1,192.168.1.74" "-idb" |
| Executable Settings | 配置客户端执行文件目录 | D:/Program Files/SimWorks/SimWorks FD Solutions/bin |
| GPU | 在选择GPU算力时可选,设置每个MPI主机所使用的GPU资源,当该主机拥有多个GPU资源时,GPU ID使用英文逗号进行分隔 | "127.0.0.1: 0" "192.168.1.74: 0,1" |
| Preview - test command | 实时显示资源测试命令 |
使用Remote资源的工程同样由用户选择文件路径进行保存,相关扫描以及优化工程也将自动保存在对应文件目录下。
对于Cloud资源,Resource Test功能默认不启用,软件会直接跳过该测试过程。
Resource Test功能主要对Local以及Remote所配置资源的MPI与CUDA环境进行测试。资源配置完成后,点击Run tests按钮,系统会依次对已配置资源进行测试,并显示该资源是否能正常运行。在测试过程中,可以点击Stop tests停止测试。
测试完成后,测试成功在Result中显示Test completed successfully,如若测试失败,鼠标悬浮于Result列对应单元格内会显示具体失败原因,如下图。

Advanced标签页用于设置计算机资源的计算精度,Precision Setting用于设置计算机资源的计算精度。下图为完整版客户端Advanced标签页。

| Name | Description |
|---|---|
| FDTD | 下拉选择FP16(半精度)、FP32(单精度)或FP64(双精度)。 |
| FDFD | 下拉选择FP32(单精度)或FP64(双精度)。 |
| FDE | 下拉选择FP32(单精度)或FP64(双精度)。 |
| Mode-matching | 默认为FP64(双精度),只读参数。 |
当FDTD求解器在NVIDIA GPU上运行时,支持使用FP16(半精度)计算。相比于FP32(单精度),FP16可显著减少显存占用并提升计算效率。
具体FP16算力请查阅您的GPU型号相关资料,如当前GPU不支持FP16计算或FP16计算速度较慢,则不建议使用FP16进行计算。例如,在NVIDIA Tesla V100上,FP16的理论计算能力约为FP32的两倍。在实际SimWorks仿真中的对比如下所示:


FP16适用范围与注意事项:
FP16支持介质和色散材料仿真,尤其在对精度要求不高且仿真耗时较长的任务中优势明显。
FP16数值范围有限(),不适用于能量极大或光源振幅远大于1的场景(如非线性光学仿真),以避免数值溢出导致的仿真发散。
FP16的有效精度为0.00097,对数值精度敏感的工程(如谐振器)需谨慎使用,防止数值下溢引起结果的不稳定。对于其他仿真时间较长的工程中,建议将提前截止率设置为 以平衡效率与精度。
软件中针对色散材料使用的 VP-EP 1 共形网格划分暂不支持FP16计算。
在以下情况中,使用FP16可能导致计算错误,目前不建议用户使用:
使用MPI可以把FDTD计算区域分为几份,每个进程负责一个计算区域。MPI负责多进程之间的通信。目前仅在使用Remote资源时需要进行配置MPI环境,该资源的正常使用需要用户正确配置本地电脑的MPI环境。
本部分主要介绍CPU和GPU两种处理器的差异,用户可根据实际仿真需求选择合适的运算资源。