The Resources configuration utility from within the simulator's CAD/GUI, is used to configure your computing resources. In many cases, this is just the local computer (localhost). In other situations, additional computers may be available to run simulations. Resources can be optimized in 2 distinct ways:
- Distributed: Running a single simulation at a time accross one or more machines. Note: Only FDTD and varFDTD support distributed computing accross multiple machines.
- Concurrent Simulations: Running multiple jobs at the same time on one or more machines. Eg. Sweeps and Optimizations.
Computing resources can be configured independently for each solver and design environment, by selecting the appropriate tab.
The Resources table provides a list of all available resources. By default, a single resource named localhost will be present. Additional resources can be added with the Add or Duplicate buttons.
If "True", the resource may be used to run jobs. If "False", the resource will be disabled.
User specified name for each resource.
The IP address or HostName of the computer. The name 'localhost' refers to the local computer. The first resource is always localhost. To prevent simulations running on the local computer, disable this entry. By changing the Active status to "False".
The number of MPI engines/processes to use.
The number of cores/threads to use for each engine/process.
Adding a new resource.
Removing a specific resource.
Copies and adds the selected resource.
Goes into the advance configuration settings for the selected resource.
The Name of the resource as specified in the resources tab above.
Status of the resource, either Tested or Untested.
Description or message of the test results.
- Run tests
Runs and internal tests to check the MPI settings for the resource.
- Stop tests
Allows cancellation of the current test.
- Check smpd
Checks the smpd status of the selected remote resource that is set to use MPICH2
- auto detect
Automatically detects the number of cores in the machine. If checked, it will use the detected cores as the max processes for the Host, when adding resources.
- max threads
If auto detect is checked, this field is disabled. Otherwise, manually enter desired maximum threads to use.
Resource advanced options
Advanced configuration of each resource can be accessed by selecting the resource line and going to Edit mode. The available options will depend on your operating system.
- Job launching preset:
- Local Computer
This will bypass any MPI settings on your local computer ans much of the other options will be disabled.
- Remote: MPICH2
Runs the simulation on the selected resource using MPICH2.
- Remote: Microsoft MPI
This will use Microsoft MPI on the selected resource to run the simulation.
- Remote: Intel MPI
This will use Intel MPI on the selected resource to run the simulation.
Manually specify the MPI component to use, indicating the MPI engine's path on the selected resource.
- Local Computer
The path for MPI to be used. Use the Custom Job launching option to specify a custom path.
- Extra command line options*
Allows the user to specify additional options to the MPI being used.
- No default options*
Removes any default MPI arguments.
- Use processor binding when available
On multi processor systems, it binds the MPI engine to a specific CPU/core to run the process on. Enabling this option may result in a significant speed increase on some high core-count workstations. This feature is currently only supported using Microsoft MPI. Please check with your MPI documentation if it supports this feature on your system.
- Bypass mpi on localhost*
Run the solver directly, rather than via the MPI engine. This is the default setting when using Local Computer as Job launching preset.
*These options are disabled when Local Computer is the job launching preset since it will run the solver directly without the use of MPI.
The path to the solver. Use the Custom Job launching preset to specify a custom path.
- Extra command line options
Allows the user to specify additional options to the solver.
- Create log for all processes
Each process will create a log file. Adds the –logall command line argument.
*logall function is not applicable for Charge, HEAT, FEEM and DGTD.
Command to execute
The final command that will be used to run the simulation. The simulation filename will be appended at the end of this command when it is executed.
This set of command can be copied and pasted into your command line interface or terminal and adding the simulation file at the end to run the simulation using the command line.
Processes vs Threads
Running simulations only on your local machine can be done using either of the job launching preset; Local Computer or any of the supported MPI variants.
1. Using MPI
All supported MPIs will have similar resource configuration settings. It will have both the Processes and Threads fields enabled.
- For a machine with 1 CPU with 6 Physical Cores with hyper threading enabled (x2), then the total number of logical cores or threads is equal to 12.
- When using MPI we can use the formula:
processes = cores, threads = 1
- Our resources will be set as: processes = 12, threads = 1
- This will run 12 fdtd-engine and will use all cores.
2. Using Local Computer
- The processes field in the resource configuration will be disabled.
- We will use the formula:
threads = cores
- Our resources will be set as: threads = 12
- Although only 1 fdtd-engine is running, it will be try to use all 12 cores in your machine.
- If you receive a 'license not configured' error from the resource test, you should Login to the 'Host' computer, then run the License configuration utility. Make sure that the license is configured for both your "user account" and the "system defaults".
- Open Configure license utility
- Set according to your license server's Host/IP and port used.
- Select "Apply settings to my user account only". Click OK, to save current settings.
- Open Configure license utility again.
- Select "Make these settings the system defaults" (admin privilege required)
- Click OK, to save these settings.
- Open Configure license utility
- Otherwise you can configure your license using the 'user' and 'system' preference.ini files.(Administrator privileges required)
Resource configuration scripting
Resource configuration script commands including addresource, deleteresource, getresource, and setresource can be used to configure resources without using the user interface. For more information about each script command, visit the corresponding script command page.
The following lines will add a 2nd resource to the list in FDTD's resources and configure its process to 4 and threads to 2.
The following lines will open an FDTD session via Lumerical Python API and do the exact operation as the example above:
f = lumapi.FDTD()