- 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:




Running ZEMAX on an 8 CPU machine
The author recently took delivery of a Dell 690 workstation, which contains 8 Xeon CPUs:

These are 'real' CPUs, not hyper-threaded ones (hyper threading is an older technology in which spare CPU cycles were scavenged and made to appear like a second processor. While some performance gains are available via hyperthreading, it does not compare to having real CPUs inside the box!)
The machine has 8 GB of RAM, and runs Windows XP64. ZEMAX has a built in Performance Test feature, found under Tools...Miscellaneous...Performance Test. Performance Test runs a check on the number of ray-surfaces per second and the number of system updates per second the computer hardware/lens combination is capable of. The ray surfaces per second performance number is measured by tracing a large number of random skew rays through the current optical system, and then dividing the number of rays times the number of surfaces traced through by the elapsed time in seconds. It is the most pertinent measurement of 'ray-tracing speed'.
The system updates per second is calculated by performing many system updates and then dividing the number of system updates performed by the elapsed time in seconds. System updating includes recomputing the pupil positions, field data (such as ray aiming coordinates), lens apertures, index of refraction, solves, and other fundamental checks on the lens that must be performed prior to any ray tracing.
The speed will vary tremendously depending upon the system processor, clock speed, and lens complexity. For no particular reason, within ZEMAX Development Corporation we have settled on using the double Gauss sample file provided with ZEMAX (see {ZEMAXroot}\Samples\Sequential\Objectives\Double Gauss 28 degree field.zmx) as the test file for comparing performance on different machines. With the 8 CPU machine and the July 25 2007 release of ZEMAX I obtained:

More than 93 million ray-surfaces per second! This is an amazing ray tracing speed. What's more, it is extremely linear with the number of CPUs used to perform the calculation:


These are 'real' CPUs, not hyper-threaded ones (hyper threading is an older technology in which spare CPU cycles were scavenged and made to appear like a second processor. While some performance gains are available via hyperthreading, it does not compare to having real CPUs inside the box!)
The machine has 8 GB of RAM, and runs Windows XP64. ZEMAX has a built in Performance Test feature, found under Tools...Miscellaneous...Performance Test. Performance Test runs a check on the number of ray-surfaces per second and the number of system updates per second the computer hardware/lens combination is capable of. The ray surfaces per second performance number is measured by tracing a large number of random skew rays through the current optical system, and then dividing the number of rays times the number of surfaces traced through by the elapsed time in seconds. It is the most pertinent measurement of 'ray-tracing speed'.
The system updates per second is calculated by performing many system updates and then dividing the number of system updates performed by the elapsed time in seconds. System updating includes recomputing the pupil positions, field data (such as ray aiming coordinates), lens apertures, index of refraction, solves, and other fundamental checks on the lens that must be performed prior to any ray tracing.
The speed will vary tremendously depending upon the system processor, clock speed, and lens complexity. For no particular reason, within ZEMAX Development Corporation we have settled on using the double Gauss sample file provided with ZEMAX (see {ZEMAXroot}\Samples\Sequential\Objectives\Double Gauss 28 degree field.zmx) as the test file for comparing performance on different machines. With the 8 CPU machine and the July 25 2007 release of ZEMAX I obtained:

More than 93 million ray-surfaces per second! This is an amazing ray tracing speed. What's more, it is extremely linear with the number of CPUs used to perform the calculation:
