Multithreading Program for Retrieval of Optical Phase Fields
TBMG-7302
04/01/2001
- Content
A multithreading computer program performs phase-retrieval and -unwrapping calculations to extract accurate image phase maps from noisy image magnitude fields generated by adaptive optics. [As used here, "phase retrieval" signifies the calculation of phase map modulo 2µ, while "unwrapping" signifies the elimination of the integer-multiple-of-2µ phase ambiguity.] The program includes a MATLAB front-end script integrated with a multithreaded computing kernel in a set of C routines. The MATLAB script controls the flow of computations and provides a graphical user interface. Major computations are performed in C routines, wherein multiple computing threads are generated to parallelize the computations. The MATLAB script starts the C routines through a function call using MATLAB's MEX interface, and the results of the computations are returned from C routines to the MATLAB script. The program parallelizes the computations whenever multiple central processing units (CPUs) are available; this feature reduces the execution time significantly. Because MATLAB is popular in engineering computing, and increasing numbers of computers are equipped with multiple CPUs and multithreading software libraries, this program has significance beyond the original adaptive-optics application as an example of how to do high-performance engineering computing at relatively low cost.
- Citation
- "Multithreading Program for Retrieval of Optical Phase Fields," Mobility Engineering, April 1, 2001.