ENGINEERING: OPTICS
OPTIS capability integrates directly into SolidWorks, CATIA 5 and Pro/Engineer The type of integration is the same
for all three packages, and it goes by the name ‘single window integration’. If a user has a licence for one of those three CAD packages and then purchases a licence for the corresponding OPTIS CAD-integrated software, the OPTIS functionality appears in the menus of the CAD program. OPTIS functions adapt themselves to the existing CAD architecture, terminology and way of thinking – it’s a tight, high level of integration. For users, the integration is seamless. They don’t need to learn a new package, because the CAD interface is already familiar and so they become operational very quickly. CAD integration also gives users easy
access to the other physical simulations offered by other partners that work with those popular CAD packages; this includes capabilities such as computational fluid dynamics, thermal analysis, acoustics and finite element analysis. CAD integration also enables engineers to collaborate transparently on the same CAD file throughout the design process. Surrounding mechanical parts are automatically updated when optical components are changed. FRED software from Photon Engineering currently supports import and export of CAD models in IGES and STEP formats. And while there is no direct link to a particular CAD program, the program’s next release will support Boolean operations on solid geometries natively, which will add another level of support for integration with CAD programs. As for other places to speed up operations, ‘like many other
www.scientific-computing.com
software vendors, we are pursuing software development for GPU processors,’ says Ryan Irvin, technical support for the FRED software, ‘and we are much more excited about the results of GPU processing when compared to cluster computing.’
Working in parallel While GPU support hasn’t yet become widely supported in optics software, a major trend is the move towards parallelisation. Addressing this aspect, Mark Nicholson, VP of operations at ZEMAX Development Corp, says, ‘We’ve looked at clusters and GPGPUs and not found them very convincing. We parallelise at the core level, and our 64-bit software can support up to 32 CPUs. Currently, 24-core machines are
‘We are much more excited about the results of GPU processing when compared to cluster computing’
readily available. However, none of this is very new. We’ve supported multi-threading since Windows 3.1 – although, admittedly, multi-core machines have only become readily available in the last four years or so.’ ZEMAX software
automatically
divides most lengthy calculations, such as ray-tracing, diffraction analysis, and optimisation, into multiple parallel tasks. For example, the software can trace one ray on one processor while tracing another
on a second processor, and so on, and then combine the results. Consider the geometric bitmap image analysis feature, which takes a .jpg or .bmp bitmap image and traces rays from each pixel through the optical system to the detector. On a computer with a single CPU, ZEMAX would start at pixel one and trace all rays, then go to pixel two, etc. until all pixels have been traced. On a four- processor machine, however, the task can be cut up – as in the nearby figure. This calculation would run four times faster than the single CPU case, minus a small amount for the overhead of splitting the image up, launching the threads, receiving the thread data when the threads return, and stitching the data back into a single image. Good software engineering can minimise, but not eliminate entirely, this overhead. ZEMAX was written as a multi-threaded application from the very start. Every window in the package, including the main menu window, is actually a separate thread. In this context, a thread means a package of data required to complete a particular calculation. It’s 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. Thus, you don’t have to wait for one analysis feature to finish calculating in order to start or modify another one.
SCIENTIFIC COMPUTING WORLD DECEMBER 2010/JANUARY 2011 25
➤
Page 1 |
Page 2 |
Page 3 |
Page 4 |
Page 5 |
Page 6 |
Page 7 |
Page 8 |
Page 9 |
Page 10 |
Page 11 |
Page 12 |
Page 13 |
Page 14 |
Page 15 |
Page 16 |
Page 17 |
Page 18 |
Page 19 |
Page 20 |
Page 21 |
Page 22 |
Page 23 |
Page 24 |
Page 25 |
Page 26 |
Page 27 |
Page 28 |
Page 29 |
Page 30 |
Page 31 |
Page 32 |
Page 33 |
Page 34 |
Page 35 |
Page 36