Computing Resources
  • Computing Resources
  • General Settings

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

In the Network File Stream Type section, user can select the type of network file stream. The types of network file streams are divided into Minimum size and Full size. Compared to Full size, minimum size will delete the stored simulation results in the project when uploading the simulation project to the cloud server for simulation.

When selecting Full size, checking the Optimizations and Sweep download children projects option allows user to download the optimized and sweep sub-projects after the simulation is completed.

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
Computing Resources Select the type of computation resources: CPU or GPU (CUDA) supported.
CPU This option becomes available when selecting CPU resources, allowing users to set the number of threads for CPU.
MPI Settings Set up a multi-machine parallel computing environment. When local resources are selected, no configuration is required.
Executable Settings Set the directory for client executable files.
GPU - 1 Devices When selecting GPU resources, this option allows users to either manually choose specific GPUs or click the All GPU Devices button to automatically utilize all available GPU resources for computation.
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 creates a multi-host computing environment using the user's server infrastructure, enabling parallel computing across multiple nodes. It relies on the user's existing server resources, offering scalability to flexibly deploy compute nodes based on different simulation requirements. This model is ideal for enterprises and research institutions with high-performance computing capabilities that need resource sharing and team collaboration.

Remote Resource Settings

To utilize Remote computational resources, users must manually configure the MPI environment by installing compatible implementations from the official MPI website. Regardless of whether users use the CPU or GPU, users need to actively set the mpi host. In the mpi host field, specify the target host addresses, separating multiple hosts with English commas. For CPU resources: Users may define the number of processes and threads per host. For GPU resources: Users must enter the GPU IDs (e.g., 0,1) of the host to select the corresponding physical GPU devices for computation. Separate multiple IDs with English commas.

  • CPU Computational Resource Configuration

  • GPU Computational Resource Configuration

The meanings of the above options are as follows:

Name Description
Computing Resources Computation Resources Type Selection:Supported compute types: CPU or GPU (CUDA).
CPU This option becomes available when CPU is selected as the compute type, allowing user to set the number of processes and threads per CPU host for resource computation.
MPI Settings The three options in the settings are: setting a MPI executable directory, configuring a list of MPI hosts, and defining command-line arguments (some mpiexec tools require extra parameters).
Executable Settings Configure client executable file directory.
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.
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 and acceleration algorithms 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 Cloud FDTD.

adv_precision

Name Description
FDTD-passive Select either single precision or double precision by drop-down.
FDFD Select either single precision or double precision by drop-down.
FDE Select either single precision or double precision by drop-down.
Mode-matching It is double precision and read-only by default.

Acceleration is used to set the type of acceleration algorithm.

Name Description
AVX Advanced Vector Extensions (AVX), select either AVX2 or AVX512.

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.