The Magellan Project

Parallel Image Processing of the Surface of Venus

Within the Austrian Joint Research Programme on Theory and Applications of Digital Image Processing and Pattern Recognition, VCPC collaborated with the Institute for Computer Graphics (ICG) in Graz, Austria, and the Jet Propulsion Laboratory (JPL) in Pasadena, California, USA, to parallelize the Magellan SAR processor, a program which performs image analysis on the data collected by the Magellan spacecraft.

Magellan used a sophisticated imaging radar to pierce the cloud cover enshrouding the planet Venus and map its surface. The spacecraft was carried into Earth orbit in May 1989 by space shuttle Atlantis, and was then propelled by a booster engine toward Venus, where it arrived in August 1990. During its 243 day primary mission, referred to as Cycle 1, the spacecraft mapped well over 80 percent of the planet with its high-resolution Synthetic Aperture Radar (SAR). The spacecraft returned more digital data in the first cycle than all previous U.S. planetary missions combined. It completed its third 243~day period mapping the planet in September 1992.

The motivation for parallelizing the code was to facilitate reanalysis of the data, since when it was first analyzed there were ephemeris errors of the order of 1 kilometer, as well as radiometric errors, which meant that the processed data was not good enough for stereoscopic analysis. However, the data was originally analyzed using a program running on special hardware, optimized for the task, and even then it took around 1000 hours of processing, which is about six weeks, running 24 hours a day. A parallel version of the code that could reduce the analysis time would clearly make reanalysis of the data a more practical proposition.

Magellan orbited Venus approximately once every 3.5 hours, passing over the poles, and mapped the surface of the planet in thin north-south strips about 25 km wide and 16000 km long. These strips were nicknamed noodles, and some 4000 of them were mapped during the whole mission, 1800 per cycle. The radar operated in burst mode, sending out trains of pulses and listening for echoes in between the pulses. Each noodle contained data from around 5000 bursts, each of which can be analyzed independently, except for the final stage, called "look buildup", which merges results from overlapping observations in neighboring bursts, and produces the final output from the program, a bitmap image of the planet's surface.

The parallelization strategy that was adopted was to re-code the radar burst processing loop so that part of each iteration could be executed as a task on a separate processor. In order to do this, it was necessary to understand code's data dependences, and due to its complexity (approximately 125 thousand lines of Fortran, in around 450 subroutines, plus about 6500 lines of C), and the limited amount of documentation available for it, program analysis tools were needed. The FORESYS, IDA and FORGExplorer tools were evaluated, and it was found that the most effective approach was to use FORGExplorer's variable trace and common block usage facilities, in conjunction with FORESYS as a preprocessor to clean up the code. The parallelization was performed in the message-passing style of programming, using the portable MPI message passing interface, with the 128 node QSW CS-2 machine at VCPC as a development platform. A paper containing technical details of this work was presented at the ACPC'99 conference, and was published in the proceedings.

Some related images from the JPL public image archive
magellan.gif 46K Model depicting Magellan at Venus. P-31020Bc
venustop.gif 158K Topographic map of surface of Venus 3/15/93
venpole.gif 125K Venus centered on north pole P42384 5/26/93
vengrav.gif 83K Magellan Venus gravity data P42356Ac 5/26/93
mgngrav.gif 150K Image/Magellan Venus gravity maps 4/6/94
venglobe.gif 133K Magellan Venus global view P42383 5/26/93
venus090.gif 119K Magellan Hemisphere view of Venus at 90 degrees 5/16/95