- Home
- Installation and Troubleshooting
- Running ZEMAX on a Multi-CPU Computer
Running ZEMAX on a Multi-CPU Computer
- By Mark Nicholson
- Published 24 July 2007
- Installation and Troubleshooting
-
Rating:




ZEMAX Architecture
ZEMAX was written as a multi-threaded application from the very start. These means that every window in ZEMAX - including the main menu window - is actually a separate thread. Both ZEMAX-SE and EE are fully multi-threaded, and they will use all available CPUs without extra payment or licensing.
A thread, in this context, means a package of data required to complete a particular calculation. Its important to distinguish between threads, which are generated by an application, and the allocation of those threads to the available CPUs in the machine, which is handled by the operating system.
Because every window inside ZEMAX is its own thread, you can do things like updating one window while editing the Settings of another window, etc:

In this example, the FFT MTF window is recalculating, but the user is still able to access the Settings of the Field Curvature plot and update it independently. This is why you do not have to wait for one Analysis feature to finish calculating in order to start or modify another in ZEMAX!
If there is only one CPU in the machine, writing highly multi-threaded code has the advantage of very efficient execution. But when the machine has multiple CPUs, it gives a huge advantage: individual threads can be run on different CPUs! Even better, many ZEMAX Analysis windows and Tools are inherently multi-threaded, and so split up over multiple CPUs automatically. The Geometric Bitmap Image Analysis is one such, and we will discuss others in the pages to follow. Best of all, the utilization of the multiple CPUs in the machine is transparent to the user: ZEMAX and the operating system negotiate the optimum threading level to use.
A thread, in this context, means a package of data required to complete a particular calculation. Its important to distinguish between threads, which are generated by an application, and the allocation of those threads to the available CPUs in the machine, which is handled by the operating system.
Because every window inside ZEMAX is its own thread, you can do things like updating one window while editing the Settings of another window, etc:

In this example, the FFT MTF window is recalculating, but the user is still able to access the Settings of the Field Curvature plot and update it independently. This is why you do not have to wait for one Analysis feature to finish calculating in order to start or modify another in ZEMAX!
If there is only one CPU in the machine, writing highly multi-threaded code has the advantage of very efficient execution. But when the machine has multiple CPUs, it gives a huge advantage: individual threads can be run on different CPUs! Even better, many ZEMAX Analysis windows and Tools are inherently multi-threaded, and so split up over multiple CPUs automatically. The Geometric Bitmap Image Analysis is one such, and we will discuss others in the pages to follow. Best of all, the utilization of the multiple CPUs in the machine is transparent to the user: ZEMAX and the operating system negotiate the optimum threading level to use.