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.

This program was written by Scott Basinger, John Lou, and David Redding of Caltech for NASA's Jet Propulsion Laboratory. For further information, access the Technical Support Package (TSP) free on-line at www.nasatech.com/tsp  under the Software category.

This software is available for commercial licensing. Please contact Don Hart of the California Institute of Technology at (818) 393-3425. Refer to NPO-20848.


This Brief includes a Technical Support Package (TSP).
Multithreading Program for Retrieval of Optical Phase Fields

(reference NPO-20848) is currently available for download from the TSP library.

Don't have an account? Sign up here.