noaa.gov

Computing Applications for Satellite Temperature Datasets: A Performance Evaluation of Graphics Processing Units

Computing Applications  for Satellite Temperature Datasets: A Performance Evaluation of Graphics Processing Units

The Coral Reef Watch program of NOAA develops and provides remote sensing tools for the conservation of coral reef ecosystems. Reef managers and other stakeholders have expressed a desire for higher resolution monitoring tools than those currently available. In moving to higher resolution global products, Coral Reef Watch faces the challenge of orders of magnitude increase in the size of datasets. Traditionally this would mean simply upgrading to faster x86 Intel-based systems however Intel performance per processor has peaked due to frequency scaling issues. Newer Central Processing Unit (CPU) development has adopted a path of multiple cores rather than increasing an individual CPU's performance. To take advantage of newer hardware, a change to parallel programming methods is required and fortunately satellite datasets are relatively well suited to parallel algorithms. However, a newer form of commodity parallel hardware, the Graphic Processing Unit (GPU) is significantly advancing in both speed and performance, pushed hard by the demand of consumer gaming enthusiasts. Companies such as AMD(ATI) and NVIDIA, recognizing the applicability of the latest hardware for high performance and scientific computing, have provided tools to allow programmers to develop software for these numeric computing engines. For tasks that lend themselves to parallel processing, this type of program, known as General Purpose GPU (GPGPU) computing is providing improved performance compared to solely using traditional CPUs. We compare the performance of a current high-end quad core Intel CPU and a 480 core NVIDIA GPU with two representative algorithms on a well-known climate record quality dataset - the Pathfinder SST dataset. This dataset currently consists of 29 years of global daily SST measurements at 4 km resolution - approximately 33 million pixels for each day. Two algorithms representing a very simple (SST persistence gap fill) and a more complex (SST exponential decay over time) gap filling algorithm were used to assist with the comparative assessment. Although comparing computational performance, I/O (input/output) performance is also important due to the large quantity of data and so we optimize I/O with advanced filesystems and a solid-state drive (SSD). The GPU processing shows a marked improvement (2.4-times faster) over the CPU for the simple algorithm. For the more complex algorithm, the performance increase improves to a factor of 3.3. It is of note that the time required to input and output data is significant in the context of the gap filling algorithms employed. The disadvantages of utilizing GPU for computing are the requirement of using a more rigorous programming language (e.g., 'C') rather than a high-level programming language such as IDL, which is widely used in the field of satellite remote sensing, and being familiar with the programming techniques and constraints related to the GPU software development tools. However the performance benefits are significant, demonstrating that using GPU tools can reduce computation time several-fold.

Citation: Burgess TFR., Heron SF. 2011. Computing Applications for Satellite Temperature Datasets: A Performance Evaluation of Graphics Processing Units. NOAA Technical Report NESDIS 139. NOAA/NESDIS. Silver Spring, MD. 14pp

Computing Applications for Satellite Temperature Datasets: A Performance Evaluation of Graphics Processing Units (pdf, 436KB)

For more information contact:

coralreefwatch@noaa.gov