Satellite products computation with multiple GPU devices

Main Article Content

Chaiyasit Tanchotsrinon
Wongnaret Khantuwan
Noppadon Khiripet

Abstract

Over recent years, the number of earth observation satellites has increased dramatically. The satellite data gathering from various sources must be prepared and processed into satellite products (indexes), which takes computational time. Therefore, parallel computing techniques should be utilized in reducing time complexity. Graphic Processing Unit (GPU) devices are widely used to accelerate the computation process by massively parallel operations and, thus, are very suitable for this task. Although the index calculations were not complicated, the major drawback of the GPU process is data transfers between the host and the devices. Once data is transferred, it should be reused to calculate all related satellite indexes instead of beginning the transfer-compute cycle. In this paper, we investigate an efficacy way to produce satellite indexes and compare the computational times among many different approaches, i.e., Central Processing Unit (CPU) process executed based on NumPy and extended to multi-thread by Dask, single GPU device process performed with Numba, and multiple GPU device processes launched asynchronously. The experiments were carried out on three hardware environments, namely, the DGX workstation, the High-performance computing (HPC) High memory node, and the HPC-DGX node. The results revealed that the proposed GPU processes achieved more than ten times faster in overall. Furthermore, when compared with the CPU process, it found that its kernel computation could achieve more than 250 times faster.

Article Details

How to Cite
Tanchotsrinon, C., Khantuwan, W., & Khiripet, N. (2024). Satellite products computation with multiple GPU devices. Asia-Pacific Journal of Science and Technology, 29(02), APST–29. https://doi.org/10.14456/apst.2024.24
Section
Research Articles

References

Copernicus Sentinel-2 (processed by ESA). MSI Level-1C TOA Reflectance Product, Collection 0 [Internet]. European Space Agency; 2021 [cited 2022 May 15]. Available from: https://doi.org/10.5270/S2_-d8we2fl.

Townshend JRG, Goff TE, Tucker CJ. Multitemporal dimensionality of images of normalized difference vegetation index at continental scales. IEEE Trans Geosci Remote Sens. 1985;GE-23(6):888-895.

Gao BC. NDWI—A normalized difference water index for remote sensing of vegetation liquid water from space. Remote Sens Environ. 1996;58(3):257-266.

Liang S, Wang J. Chapter 10 - Leaf area index. In: Liang S, Wang J, editors. Advanced Remote Sensing. 2nd ed. London: Academic Press; 2020. p. 405-445.

Huete AR. A soil-adjusted vegetation index (SAVI). Remote Sens Environ. 1988;25(3):295-309.

Juan W, Jianchao S. A new type of NDVI algorithm based on GPU dividing block technology. International Conference on Computational and Information Sciences; 2013 Jun 21-23; Shiyang, China. USA: IEEE; 2013. p. 709-712.

NVIDIA. CUDA toolkit, release: 10.2.89 [Internet]. NVIDIA Corporation; 2020 [cited 2022 May 15]. Available from: https://developer.nvidia.com/cuda-toolkit.

Guerrouj FZ, Latif R, Saddik A. Evaluation of NDVI and NDWI parameters in CPU-GPU heterogeneous platforms based CUDA. 5th International Conference on Cloud Computing and Artificial Intelligence: Technologies and Applications (CloudTech); 2020 Nov 24-26; Marrakesh, Morocco. USA: IEEE; 2020. p. 1-6.

Zuo X, Qi T, Qiao B, Deng Z, Ge Q. Fast parallel extraction method of normalized vegetation index. 15th International Conference on Computer Science & Education (ICCSE); 2020 Aug 18-22; Delft, Netherlands. USA: IEEE; 2020. p. 433-437.

Harris CR, Millman KJ, Van der walt SJ, Gommers R, Virtanen P, Cournapeau D, et al. Array programming with NumPy. Nature. 2020;585:357-362.

Rocklin M. Dask: Parallel computation with blocked algorithms and task scheduling. Proceedings of the 14th Python in Science Conference; 2015 Jul 6-12; Austin, United States. p. 126-132.

Crist J. Dask & Numba: Simple libraries for optimizing scientific python code. IEEE International Conference on Big Data (Big Data); 2016 Dec 5-8; Washington, USA. USA: IEEE; 2016. p. 2342-2343.

Lam SK, Pitrou A, Seibert S. Numba: A LLVM-based python JIT compiler. Proceedings of the Second Workshop on the LLVM Compiler Infrastructure in HPC; 2015 Nov 15; Austin, United States. New York: ACM; 2015. p. 1-6.

de Groot C. The Concurrent. Futures Library. New York: Apress; 2020.

Bhangale UM, Durbha SS. Cloud detection in satellite imagery using graphics processing units. IEEE International Geoscience and Remote Sensing Symposium - IGARSS; 2013 Jul 21-26; Melbourne, Australia. USA: IEEE; 2013. p. 270-273.

Zhao B, Liu M, Wu J, Liu X, Liu M, Wu L. Parallel computing for obtaining regional scale rice growth conditions based on WOFOST and satellite images. IEEE Access. 2020;8:223675-223685.

Watkinson N, Tai P, Nicolau A, Veidenbaum A. NumbaSummarizer: A python library for simplified vectorization reports. IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW); 2020 May 18-22; New Orleans, USA. USA: IEEE; 2020. p. 1-7.

Oden L. Lessons learned from comparing C-CUDA and Python-Numba for GPU-Computing. 28th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP); 2020 Mar 11-13; Västerås, Sweden. USA: IEEE; 2020. p. 216-223.

ThaiSC – NSTDA Supercomputer Center [Internet]. 2022 [cited 2022 May 15]. Available from: https://thaisc.io/en/mainpage/.

Clarke L, Glendinning I, Hempel R. The MPI message passing interface standard. In: Decker KM, Rehmann RM, editors. Programming Environments for Massively Parallel Distributed Systems. Basel: Birkhäuser; 1994. p. 213-218.

Sentinel Online. Sentinel-2 MSI User Guide [Internet]. 2022 [cited 2022 May 15]. Available from: https://sentinel.esa.int/web/sentinel/user-guides/sentinel-2-msi.