Scalable algorithm and workload execution for geo locating satellite imagery
Creators: name: Al-Saadi, Aymen
Publisher: name: No Publisher Supplied
Year: 2020

description: Climate change is having an impact on the polar regions, causing the retreat of sea ice and mountain glaciers as well as mass loss from the Greenland and Antarctic ice sheets. A better and deeper understanding of these changes requires processing large volumes of imagery data. Efficient analysis of these increasingly large volumes of data requires scalable computing, advanced and efficiently implemented algorithms and petabytes of dedicated storage on high-performance computing (HPC) platforms.Image geolocation is the process of estimating the geographic location of a single image using previously geolocated aerial and satellite imagery. The Scale-invariant feature transform (SIFT) algorithm is used to geolocate images by finding the similarities with other images in the database. The SIFT algorithm is invariant to image resizing and rotation, and partially invariant to changes in brightness and camera viewpoint.In Chapter 3 we evaluate the accuracy in terms of the number of matched key points of two SIFT implementations: (a) CPU-SIFT, and (b) CUDA-SIFT. CPU-SIFT is an implementation of the SIFT algorithm on CPU; CUDA-SIFT is an implementation of the SIFT algorithm on GPU using CUDA parallel framework.A performance characterization showed a number of limitations for CUDA-SIFT, such as low matching accuracy and run one CUDA kernels on a single GPU device while it is possible to run two. We addressed these limitations by increasing the size of image tiles that can be processed, the number of kernels of the CUDA implementation that can be concurrently run on the same GPU device, and improved the number and type of image features that can be concurrently evaluated.We also evaluated the throughput of CPU-SIFT and CUDA-SIFT in terms of image size in Megabytes per second (MB/s) and their memory consumption. Chapter 3 showed the performance evaluation of both implementations in matching multispectral and satellite imagery. In our evaluation, geolocating two 1 GB satellite images with no geolocation information took 15 minutes using the CPU-SIFT implementation with an accuracy level of 89% and 4 GB of memory on one CPU (Intel Xeon E5-8860 v3). CUDA-SIFT matched the same images, taking 3.5 minutes on one GPU (NVIDIA Tesla P100), with an accuracy of 56.81%, and 7.1 GB of GPU memory on the XSEDE Bridges supercomputer. An analysis of the current CUDA-SIFT showed that both accuracy and throughput could be improved. Motivated by possible enhancements, we implemented GPU-SIFT, which is an implementation of the SIFT algorithm, for GPUs implemented and based on the previous implementation of CUDA-SIFT. GPU-SIFT offers three major improvements over the previous implementation: (i) we implemented the MPS CUDA parallel framework to enable concurrent matching of multiple image tiles via multiple GPUs; (ii) we doubled the amount of dynamic memory that can be allocated per GPU from 2 to 4 GB. In this way, we increased the size of the images that can be tiled and processed from a maximum of 3000 x 3000 to 5000 x 5000 pixels; and (iii) we implemented an adaptive contrast enhancement, increasing the number of extracted and matched keypoints for each image. GPU-SIFT offers a significant increase in the number of extracted features with an accuracy of 74.18% by applying histogram contrast enhancement.Finally, we compared the tradeoffs between the accuracy of CPU-SIFT, CUDA-SIFT and GPU-SIFT in terms of the number of matches between a pair of images and the execution time for the entire matching process. The tradeoffs between SIFT matching accuracy and SIFT execution time can create performance variance and can lead to different resource requirements. Characterizing the performance and understanding the performance tradeoffs between GPU-SIFT, CUDA-SIFT and CPU-SIFT can help to predict the performance of these algorithms and their applications with large-scale workloads. Chapter 4 presents a workflow to run hundreds of image geolocating workflows concurrently on HPC using algorithms, and software tools that support the scalable and automated computation of image geolocation. We present a scalable image geolocating workflow with two different kernels (CPU or GPU) and evaluates the requirement of large-scale ensemble-based technique to run image geolocating pipelines.The contributions of this thesis are: (i) Compare and characterize the performance between CPU-SIFT, CUDA-SIFT and implement GPU-SIFT as an improvement to serve the image geolocating use case; (ii) The design, implementation and concurrent execution of scalable image geolocating workflows as a set of pipelines to enable concurrent execution for ~200 images with near-linear scalability on 224/8 CPUs/GPUs.This thesis is a part of the Imagery Cyberinfrastructure and Extensible Building-Blocks to Enhance Research in the Geosciences (ICEBERG) project. Our work has an impact on the domain scientist that will help move geoscience studies of image analysis to a new infrastructure linking scientists, satellite imagery, and high-performance computers. This new imagery-computing superhighway will make it easier for scientists to study processes at much larger spatial scales than has been previously possible.