Case Study: Clusters and Image Processing, Part I - page 3
The folks at ImageLinks were so pleased with their experiment's results that they then began converting all their image-processing and production operations to Linux. What I cover here is just a sample of the functionality that was moved from the SGI boxes to Linux:
- Each application that loads a specific image format into the processor
- Each sensor model specifically designed to emulate a particular satellite camera or digital camera used from a high-flying plane, including where the sensor was and how it was angled when the image was taken
- The component that builds the three-dimensional model of the earth and then projects the two-dimensional image onto it
- The application that does tonal and color balancing
- The application that translates pictures to map projections
- The image-sharpening application
- The application that takes images brought in from different kinds of sensors--satellite or aerial photography, for example--and merges these images into one
- The application that does brightness and contrast adjustments
- The application that adds text overlaid onto the images
- Each application that converts files and images to other formats
- The application that takes multiple images that contain the same area but from different orientations and merges them properly into a larger image
- The libraries (collections of source code that you can call from inside your own programs) used to implement parallel computing, such as clustering
Every single one of these applications now runs on Linux. In fact, the whole suite runs on a Beowulf cluster of 13 machines, built with the assistance of Dr. Salim AlAoui from Florida Tech University. This collection of programs is an ideal application for cluster technology. Performing floating-point calculations for every pixel in an image of these sizes and working within three-dimensional space is mightily CPU intensive. The software had to be adjusted so that it supported parallel computing using the aforementioned libraries.
The Beowulf cluster at ImageLinks consists of 12 single-processor 650MHz PIII slave machines, each with 384MB of RAM and 36GB SCSI hard drives, and a master machine identical to these except that it has two 650MHz PIII processors. A cluster must be interconnected so that all the machines can work together. This particular setup is networked with 100BT Ethernet switching.
Once again, experimentation paid off for ImageLinks. With each processor added to the cluster, they get another level of speed improvement. Think of the improvement in terms of how long it would take to do the job on one computer. If it would take 10 hours to process an image on one of the computers in the cluster, that same image can be processed in just one hour on a 10-computer cluster.