☰ Contents
Computing Resources
  • Configuration of Computing Resources
  • Cloud
  • GPU

Resource Overview

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.

  • Cloud Computing: Built on Alibaba Cloud servers, it supports High-Performance Computing (HPC) and Elastic Compute Service (ECS), providing enterprise-level computing power for on-demand simulations.
  • Local Acceleration: Supports utilizing the user’s local hardware resources, enabling multi-threaded CPU and multi-GPU parallel computing. It also leverages OpenMP multi-threading technology and AVX instruction sets to further accelerate computations, maximizing the efficiency of local hardware.
  • Remote Parallel Computing: Supports connecting to multi-node computing resources, compatible with various parallel computing architectures such as Open MPI and Intel MPI, suitable for large-scale distributed simulations.

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.

Computing Resources

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:

  • SimWorks Cloud FDTD users click the Cloud button;

  • SimWorks FD Solutions users click the Resource button at the same location.

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.

Cloud Resource

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.

Resource Type

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.

adv_resources_new

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.

cloud_resource_refresh

Network File Stream Type

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.

Local Resource

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 Resource Settings

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.

  • CPU Computational Resource Configuration

  • GPU Computational Resource Configuration

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.

File Storage

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.

Remote Resource

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.

MPI Environment Configuration

When using Remote resources, users must configure the same MPI environment on all compute nodes and ensure the following conditions:

  • All remote nodes must install and configure the same version of MPI;
  • The same local account must be used to log in to all nodes;
  • Software must be installed in the same directory on all nodes;
  • If using CUDA-aware Open MPI, ensure that GPU drivers and CUDA versions are compatible.

SimWorks currently supports the following mainstream MPI implementations. Please refer to the MPI Environment Configuration page for detailed setup instructions.

  • Open MPI (for Linux and macOS): Open-source, high-performance MPI that supports CUDA-aware functionality, significantly reducing GPU memory exchange latency across nodes and improving FDTD simulation efficiency in multi-node, multi-GPU architectures.
  • Intel MPI (for Windows, Linux, and macOS): Developed by Intel, this high-performance MPI is optimized for Intel hardware and networks, providing efficient multi-node communication.
  • Microsoft MPI (for Windows): Officially developed by Microsoft, this MPI is optimized for Windows platforms.

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.

Remote Resource Settings

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.

  • CPU Computational Resource Configuration

  • GPU Computational Resource Configuration

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.

File Storage

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

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.

Advanced

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.

adv_precision

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:

  1. 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.

  2. FP16 has a limited numerical range (±6.5×104\pm 6.5 \times 10^4) 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.

  3. 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 5×1055 \times 10^{-5} to balance efficiency and precision.

  4. The conformal VP-EP 1 scheme for dispersive materials is not supported in FP16 computation.

  5. The use of FP16 is not recommended in the following scenarios, as it may lead to computational errors:

  • FDTD simulations involving complex fields, such as those using Bloch periodic boundaries;
  • Simulations of 2D materials (e.g., graphene, RLC) or TFSF sources crossing different materials.

MPI

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.

GPU and CPU

This section mainly describes differences between CPU and GPU processors, and users can choose appropriate computing resources based on their actual simulation requirements.

  • GPUs have more cores than CPUs; however, each core in a GPU has lower computing power than a CPU core.
  • CPUs excel at logical processing, making them well-suited for sequential and complex decision-making tasks. In contrast, GPUs excel at parallel processing, which makes them ideal for large-scale floating-point computations.
  • CPUs are primarily utilized to execute system and application programs, while GPUs are predominantly employed for rendering graphics and images.