This section introduces the configuration of computing resources.
SimWorks provides flexible computing resource configuration options, supporting various software acceleration and parallel computing technologies to meet the simulation needs of different users. The full version of the software supports three types of resources: Cloud, Local, and Remote, helping users fully utilize existing computing resources and significantly improve simulation efficiency.
Before running a simulation project, click the Resources button in the solver tab to open the resource configuration. Users can set the computing resource configuration method.
The section describes configuration of computing resources.
Before running project simulation, users need to configure computing resources. In the Home tab of the software, users can open the computing resource configuration window as follows:
The resource configuration page is as follows, where you can set the computing resources used by the FDTD, FDFD, and FDE solvers, as well as the computational precision in the advanced options tab. The button functions on this page are as follows:
Name | Description |
---|---|
Add | Add a new resource; |
Remove | Remove the selected resources; |
Edit | Edit the selected resources. |
Users need to click Edit to further configure computational resources. It should be noted that there are currently three types of resources available for configuration: Cloud, Local, and Remote. SimWorks Cloud FDTD only supports Cloud resources, while SimWorks FD Solutions supports all three types. Below is a brief description of the three resources:
Name | Description |
---|---|
Local | Use the computational power of the user's local computer and does not support multi-machine parallel computing. SimWorks FD Solutions supports this resource. |
Remote | Enables the use of multiple computers. SimWorks FD Solutions supports this resource. |
Cloud | Directly accesses cloud computing resources. Both SimWorks Cloud FDTD and SimWorks FD Solutions support. |
SimWorks’ Cloud resources are built on Alibaba Cloud Server, delivering enterprise-grade computing power with support for up to 64-core CPUs and 8 NVIDIA A10 GPUs. Users gain instant access by registering a SimWorks account; no local setup or maintenance is required, and there is no dependency on device performance. All that’s needed is an internet connection to run real-time simulations across different locations. For project data transmission, SimWorks ensures end-to-end data security through the combined protection of Alibaba Cloud Security and our encryption technology.
The Cloud resource types are categorized into High Performance Computing (HPC) and Elastic Compute Service (ECS). Instances in HPC are shared resources; when multiple users select the same instance for simulation, the instance allocates computing power to users as needed. The ECS services enable ready-to-use and elastic scaling of computing resources. Instances in ECS service are dedicated, allowing users' simulation tasks to utilize the full computing power of the instance.
Name | Description |
---|---|
ID | The serial number of the instance. |
Select | The checkbox used to select the instance. |
Instance Type | The type of the instance. |
CPUs | The number of CPU cores of the instance. |
Memory (GiB) | The memory size of the instance. |
Clock Speed (GHz) | The frequency of the CPU clock. |
GPU/FPGA | The type of GPU/FPGA of the instance. |
Theoretical FDTD Speed (Megacells/s) | Theoretical speed of FDTD simulations for cloud instances. |
Price (CNY/Hour) | The price of the instance per hour for calculation. |
Because the instance in HPC allocates computing power to users as needed, there may be a shortage of resources caused by a large number of simulation tasks at the same time. Users can click refresh to check the availability of the current instance (If resources turn gray, they will be unavailable.) and avoid long waiting queues.
The Network File Stream tab is used to select the type of network file stream. The default option is Minimum size. Users can click the History button in their account to view and download simulation result files.
The Local resource utilizes on-premises computing capabilities, with its performance strictly governed by the hardware specifications of the local device. For applications demanding high simulation efficiency, performance can be enhanced by upgrading CPU/GPU compute power or increasing memory capacity. This resource is best suited for users who require frequent simulations and own high-performance computing hardware.
Local resources allow selection of CPU/GPU computational power. CPU: Enables multi-threaded parallel computing, allowing users to configure the number of threads. GPU: Users can select different GPU IDs to leverage local GPU resources for calculations.
The meanings of the above options are as follows:
Name | Description | Example |
---|---|---|
Computing Resources | Select the type of computation resources: CPU or GPU (CUDA) supported. | GPU (CUDA) |
CPU | This option becomes available when selecting CPU resources, allowing users to set the number of threads for CPU. | |
Executable Settings | Set the directory for client executable files. | D:/Program Files/SimWorks/SimWorks FD Solutions/bin |
GPU - 1 Devices | When selecting GPU resources, users can check the corresponding GPU device IDs based on actual needs for computation. If all GPU resources are to be used, the All GPU Devices button can be clicked to enable them with one click. The GPU parameters displayed in the interface include: Device ID, Name, Memory Capacity, Memory Bandwidth, Compute Capability, Number of SM Cores, and whether TCC mode is supported. | GPU 0 |
Preview - test command | Real-time display of resource testing commands. |
For projects using Local resources, users select the file path for saving. The related sweep and optimization projects will be automatically saved in the corresponding file directory.
The Remote resource is based on user-built server infrastructure, creating a multi-host computing environment to enable multi-node parallel computing. This mode directly utilizes the user's existing server resources, offering excellent scalability. It allows flexible deployment of compute nodes according to simulation requirements, making it ideal for enterprises or research institutions that require cross-node resource sharing and team collaboration.
When using Remote resources, users must configure the same MPI environment on all compute nodes and ensure the following conditions:
SimWorks currently supports the following mainstream MPI implementations. Please refer to the MPI Environment Configuration page for detailed setup instructions.
Users need to download and install the relevant MPI software from the official MPI websites. Specific links can be found in the MPI Links section. After completing the resource configuration, it is recommended to use the Resource Test feature to verify the availability of Remote resources.
Regardless of the MPI implementation used, users must manually configure the mpi host and select the corresponding computational resources. Multiple hostnames for computational resources should be separated by commas. CPU resources allow users to set the number of processes and threads per host, while GPU resources allow users to select the GPU resources (GPU IDs) available on each host, with GPU IDs separated by commas.
The meanings of the above options are as follows:
Name | Description | Example |
---|---|---|
Computing Resources | Computation Resources Type Selection: Supported compute types: CPU or GPU (CUDA). | GPU (CUDA) |
CPU | This option becomes available when CPU is selected as the compute type, allowing users to set the number of processes and threads per CPU host for resource computation. | |
MPI Settings | MPI configuration options: MPI implementation: Select the type of MPI (Open MPI, Intel MPI, or Microsoft MPI). Mpiexec path: Set the directory of the MPI executable file. Mpi hosts: Configure the list of MPI hosts. Extra command line options: Add custom command-line parameters (some mpiexec tools may require additional parameters). | "Intel MPI" "C:/Program Files (x86)/Intel/oneAPI/mpi/latest/bin/mpiexec.exe" "127.0.0.1,192.168.1.74" "-idb" |
Executable Settings | Configure client executable file directory. | D:/Program Files/SimWorks/SimWorks FD Solutions/bin |
GPU | When selecting GPU resources, this option allows users to specify the GPU resources allocated to each MPI host, with GPU IDs separated by commas if the host has multiple GPUs available. | "127.0.0.1: 0" "192.168.1.74: 0,1" |
Preview - test command | Real-time display of resource testing commands. |
For projects using Remote resources, users also select a file path for saving. The related sweep and optimization projects will be automatically saved in the corresponding file directory.
Resource test is disabled and will be skipped directly for the Cloud resource.
The Resource Test feature is designed to validate whether the configured resources (Local and Remote) are correctly set up and fully functional, including their MPI and CUDA environments. After completing resource configuration, click the Run tests button to sequentially test all configured resources, and the system will display whether each resource can function properly. During testing, user may click Stop tests to terminate the process.
Upon completion, successful tests will show the message "Test completed successfully" in the Result column. If a test fails, hovering over the corresponding cell in the Result column will display detailed error messages, as shown below.
The Advanced tab is used to configure computational precision for computing resources. The Precision Setting is used to configure the computational precision of the computing resources. The following figure shows the Advanced tab of the SimWorks FD Solutions.
Name | Description |
---|---|
FDTD | Select FP16 (half precision), FP32 (single precision), or FP64 (double precision) from the drop-down. |
FDFD | Select FP32 (single precision) or FP64 (double precision) from the drop-down. |
FDE | Select FP32 (single precision) or FP64 (double precision) from the drop-down menu. |
Mode-matching | It is FP64 (double precision) and read-only by default. |
When the FDTD solver runs on NVIDIA GPUs, FP16 (half precision) computation is supported. Compared to FP32 (single precision), FP16 significantly reduces memory usage and improves computational efficiency.
For specific FP16 performance capabilities, please refer to the documentation of your GPU model. If your current GPU does not support FP16 or exhibits slow FP16 performance, it is not recommended to use FP16 for computation. For example, on the NVIDIA Tesla V100, the theoretical computational capability of FP16 is approximately twice that of FP32. A performance comparison of FP16 vs. FP32 in SimWorks is shown below.
Scope and Notes:
FP16 is supported for simulations of dielectric and dispersive materials, offering notable advantages in scenarios where high precision is not critical and simulation times are long.
FP16 has a limited numerical range () and is not suitable for scenarios with extremely high energy or source amplitudes significantly greater than 1 (e.g., nonlinear optical simulations), as this may cause numerical overflow and simulation divergence.
The effective precision of FP16 is 0.00097. For precision-sensitive projects (e.g., resonators ), FP16 should be used cautiously to prevent numerical underflow and instability. For other long-running simulations, it is recommended to set the early-shutoff rate to to balance efficiency and precision.
The conformal VP-EP 1 scheme for dispersive materials is not supported in FP16 computation.
The use of FP16 is not recommended in the following scenarios, as it may lead to computational errors:
With MPI, FDTD computation domain is divided into multiple parts, where each process is responsible for a specific computation part. MPI handles communication between multiple processes. Currently, configuring the MPI environment is only required when using Remote resources. For these resources to function properly, users must correctly set up the MPI environment on their local computer.
This section mainly describes differences between CPU and GPU processors, and users can choose appropriate computing resources based on their actual simulation requirements.