There are two approaches to running a simulation job on the available cores in a computer. These are Multi-processes; where several MPI processes are used to run the simulation job, and Multi-threading: a single process is used to run the simulation job using multiple cores/threads on a computer.
Either Microsoft MPI and Intel MPI is used on Windows, and MPICH2, Intel MPI, and OpenMPI may be used on Linux.
- In FDTD and varFDTD, the processes field is enabled and set according to the desired number of processes to run the simulation.
- While keeping threads to 1, each MPI process will utilize 1 core/thread on the computer.
- The number of MPI processes should not exceed the maximum number of cores/threads on the computer.
- Each MPI process can be locked to a specific core/thread when running the simulation with the pinning option for the MPI.
Example: On a 32 core computer where Processes=32, Threads=1, Capacity=1. This will run the simulation using 32 MPI processes where each process will utilize 1 core/thread.
- On the other Lumerical simulation tool and when running with ‘Local Computer’ as the ‘Job launching preset’, the processes field is disabled.
- Set 'Threads' to the number of cores/threads you want to use to run the simulation.
- The number of threads should not exceed the maximum number of cores/threads on the computer.
- Since the job is running on a single process, it is not bound to a specific core/thread. Rather the operating system will automatically distribute the job across multiple cores/threads on the computer as per the number of 'threads' in the resource configuration.
- CPU usage typically shows as a percent(%) utilization based on the total number of cores/threads on the computer.
Example: On a 16 core machine where Threads=8, Capacity=1. Will run the simulation job using 8 threads on the computer, utilizing 50% of the entire number of cores/threads.
Setting Capacity on your resources
- This is used to run parameter/optimization sweep on the local machine or remote computers.
- Setting 'Capacity' to more than 1, allows running sweeps concurrently.
Example: On a 48 core machine, Processes=6, Threads=1, and Capacity=6. This runs the 6 simulations concurrently using 6 MPI processes per sweep on a machine.
It can also be configured as 6 resource lines using 'localhost', Processes=6, Threads=1, and Capacity for each resource=1.
Advanced resource configuration
The advanced resource configuration for a specific resource is accessed by the 'Edit' button.
- The Job launching preset is changed from the options on the drop-down menu.
- Additional MPI and solver options can be specified here such as more detailed logs, MPI tuning, as well as other options.
Design environment configuration
Many calculations in the design environments are multi-threaded (e.g. fft's). By default, the software will attempt to use all available cores. Occasionally it may be desirable to restrict the number of cores, such as when other applications are running on the computer.
The 'Run Test' button is used to confirm if the resources are setup correctly.