Check simulation memory requirements
The simulation and memory requirements utility provide an overview of the size and key properties of your simulation. It breaks down the amount of system memory (RAM) required to run a given simulation, the system memory required to collect all results from different MPI ranks, and the amount of disk space needed to save the results.
Memory requirements are different for CPU and GPU simulations, which will be detailed in separate sections below.
CPU check memory requirements
The CPU button in the “Check” group under the FDTD Tab will check current simulation requirements for running on the CPU.
The check will generate a report informing you about the hardware requirements for the simulation, and any potential errors with the simulation setup. Warnings and errors will be shown near the top of the report window.
Notes
- The recommended memory is the maximum of the total memory requirements for each part of the memory usage in the report.
GPU check memory requirements
The GPU button in the “Check” group under the FDTD Tab will check current simulation requirements for running on the GPU.
The check will generate a report informing you about the hardware requirements for the simulation, and any potential errors with the simulation setup. Warnings and errors will be shown near the top of the report window. This check does not check if a compatible GPU is installed. For further information on the requirements of running FDTD on GPU, see Getting started with running FDTD on GPU.
Notes
- Memory estimation is accurate only for single GPU. If multiple GPUs are in use, the total required memory will be larger than those stated in the report.
- GPU memory estimates only provide a range of memory needed for the simulation. The precise value is in between the two values. The precise memory used will be recorded in the log.
- Because meshing is still done using the CPU even in GPU engine, the approximate memory requirements contains both requirements for RAM and video RAM (VRAM). The required RAM is listed as the “Host memory” in the requirement list, and the required VRAM is listed as the “GPU memory” in the requirement list.
- Memory estimate details for the GPU are broken down into components in the “GPU memory details” section in the report, as shown below. All values refer to VRAM, and the required memory is the sum of all components. This sum is an analog to the “Running simulation” component in the CPU checker.
-
Automatic memory check feature in FDTD
- When running your simulation job from the Finite Difference IDE (CAD/GUI) on your local computer, by default FDTD will check your simulation to verify if you have enough system memory to run the job. If there is not enough memory you will be prompted with a warning: "Warning: Insufficient Memory" and "There is not enough system memory to run the simulation". From here you can choose to try and run the simulation anyways, or to abort the run.
- You can disable the automatic memory check either through the warning window or by opening "Check memory requirements", and unchecking "Auto check simulation memory".
- For GPU simulations, if the installed GPU memory is substantially lower than the minimum, the engine will be automatically aborted before meshing is conducted.
Resolving insufficient memory issue
- Run the simulation job on a machine with a sufficient amount of RAM.
- Run distributed computing using multiple machines/nodes in your network/cluster
(note: MPI Rank 0 will need enough memory to collect the results from all the other nodes/ranks).
Simulation checkpoint
- Enable the simulation checkpoint feature in the "Advanced Options" of the FDTD Solver object.
- You can use the script commands, pause, resume, or resumejobs to stop/pause and resume your simulation job.
Note: The option of resuming the simulation job when running from Terminal in Linux is available. Please refer to this KB guide for more information.
Running simulation with MPI on Linux
- See this KB guide for more information.
See also
Compute resource configuration use cases
Resource configuration elements and controls
Resource configuration for Lumerical solvers running with a single process