Abstract
During recent years, big data explosion and the increase in main memory capacity, on the one hand, and the need for faster data processing, on the other hand, have caused the development of various in-memory processing tools to manage and analyze data. Engaging the speed of the main memory and advantaging data locality, these tools can process a large amount of data with high performance. Apache Ignite, as a distributed in-memory platform, can process massive volumes of data in parallel. Currently, this platform is CPU-based and does not utilize the GPU’s processing resources. To address this concern, we introduce Ignite-GPU that uses the GPU’s massively parallel processing power. Ignite-GPU handles a number of challenges in integrating GPUs into Ignite and utilizes the GPU’s available resources. We have also identified and eliminated time-consuming overheads and used various GPU-specific optimization techniques to improve overall performance. Eventually, we have evaluated Ignite-GPU with the Genetic Algorithm, as a representative of data and compute-intensive algorithms, and gained more than thousands of times speedup in comparison with its CPU version.
Similar content being viewed by others
Notes
Java Virtual Machine.
Application Program Interface.
Compute Unified Device Architecture.
Nvidia CUDA Compiler.
Parallel Thread Execution.
Java Native Interface.
References
Apache Hadoop. http://hadoop.apache.org/. Accessed 01 Nov 2019
Dean Jeffrey, Ghemawat Sanjay (2008) Mapreduce: simplified data processing on large clusters. Commun ACM 51(1):107–113
Konstantin S, Hairong K, Sanjay R, Robert C (2010) The hadoop distributed file system. In: 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST), IEEE, pp 1–10
Vasiliki K, Vladimir V (2013) Mapreduce: limitations, optimizations and open issues. In: 2013 12th IEEE International Conference on Trust, Security and Privacy in Computing and Communications, IEEE, pp 1031–1038
Apache Spark \(^{TM}\)-unified analytics engine for big data. http://spark.apache.org/. Accessed 01 Nov 2019
Stateful Computations over Data Streams, Apache Flink. http://flink.apache.org/. Accessed 01 Nov 2019
Xiangrui M, Joseph B, Burak Y, Evan S, Shivaram V, Davies L, Jeremy F, Tsai DB, Manish A, Sean O et al (2016) Mllib: machine learning in apache spark. J Mach Learn Res 17(1):1235–1241
Open Source In-Memory Computing Platform: Apache Ignite\(^{TM}\). http://ignite.apache.org/. Accessed 04 Jun 2020
Eric M, Roger B (2017) Introduction to GPUs for data analytics. O’Reilly, 1005 Gravenstein Highway North, Sebastopol, CA
Apache Storm. http://storm.apache.org/. Accessed 01 Nov 2019
Dieudonne M, David T (2016) Exploring GPU acceleration of apache spark. In: 2016 IEEE International Conference on Cloud Engineering (IC2E), IEEE, pp 222–223
Peilong L, Yan L, Ning Z, Yu C (2015) Heterospark: a heterogeneous CPU/GPU spark platform for machine learning algorithms. In: 2015 IEEE International Conference on Networking, Architecture and Storage (NAS), IEEE, pp 347–348
Mazhar Rathore M, Hojae S, Awais A, Anand P, Gwanggil J (2018) Real-time big data stream processing using GPU with spark over hadoop ecosystem. Int J Parallel Program 46(3):630–646
Ryo A, Masao O, Fumihiko I, Kenichi H (2018) Transparent avoidance of redundant data transfer on GPU-enabled apache spark. In: Proceedings of the 11th Workshop on General Purpose GPUs, ACM, pp 22–30
IBMSparkGPU, GitHub. http://github.com/IBMSparkGPU/. Accessed 01 Nov 2019
Yuan Y, Fathi SM, Yin H, Kaibo W, Rubao L, Xiaodong Z (2016) Spark-GPU: an accelerated in-memory data processing engine on clusters. In: 2016 IEEE International Conference on Big Data (Big Data), IEEE, pp 273–283
Matei Z, Mosharaf C, Tathagata D, Ankur D, Justin M, Murphy M, Franklin Michael J, Scott S, Ion S (2012) Resilient distributed datasets: a fault-tolerant abstraction for in-memory cluster computing. In: Proceedings of the 9th USENIX Conference on Networked Systems Design and Implementation, USENIX Association, p 2
Zhenhua C, Jielong X, Jian T, Kevin K, Charles K (2015) G-storm: GPU-enabled high-throughput online data processing in storm. In: 2015 IEEE International Conference on Big Data (Big Data), IEEE, pp 307–312
Chen C, Li K, Ouyang A, Zeng Z, Li K (2018) Gflink: an in-memory computing architecture on heterogeneous CPU-GPU clusters for big data. IEEE Trans Parallel Distrib Syst 29(6):1275–1288
Lunga D, Gerrand J, Yang L, Layton C, Stewart R (2020) Apache spark accelerated deep learning inference for large scale satellite image analytics. IEEE J Sel Top Appl Earth Observ Remote Sens 13:271–283
Carol M (2020) Accelerating apache spark 3.X leveraging NVIDIA GPUs to power the next era of analytics and AI, vol 01. NVIDIA Corporation, 2788 San Tomas Expressway, Santa Clara
CUDA Zone|NVIDIA Developer. https://developer.nvidia.com/cuda-zone. Accessed 06 Jun 2020
ACID Transactions. https://ignite.apache.org/features/transactions/. Accessed 01 Nov 2019
Apache Ignite Documentation. https://apacheignite.readme.io/docs. Accessed 06 Jun 2020
Spring Boot With Apache Ignite: Fail-Fast Distributed MapReduce Closures. https://dzone.com/articles/spring-boot-with-apache-ignite-fail-fast-distribut. Accessed 06 Jun 2020
OpenCL|NVIDIA Developer. https://developer.nvidia.com/opencl. Accessed 06 Jun 2020
NVCC: CUDA Toolkit Documentation. https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html. Accessed 06 Jun 2020
PTX ISA: CUDA Toolkit Documentation. https://docs.nvidia.com/cuda/parallel-thread-execution/index.html. Accessed 06 Jun 2020
Yonghong Y, Max G, Vivek S (2009) Jcuda: a programmer-friendly interface for accelerating java programs with CUDA. In: European Conference on Parallel Processing, Springer, pp 887–899
Craig B (1999) A reasonable c\(++\) wrappered java native interface
Jie Z, Juanjuan L, Erikson H, Hai J, Kuan-Ching J (2014) Gpu-in-hadoop: enabling mapreduce across distributed heterogeneous platforms. In: 2014 IEEE/ACIS 13th International Conference on Computer and Information Science (ICIS), IEEE, pp 321–326
Van Werkhoven B, Maassen J, Seinstra Frank J, Bal Henri E (2014) Performance models for CPU-GPU data transfers. In: 2014 14th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing
JCuda Documentation. http://www.jcuda.org/documentation/Documentation.html. Accessed 29 Jun 2020
Shah R, Narayanan PJ, Kothapalli K(2010) Gpu-accelerated genetic algorithms. cvit.iiit.ac.in
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Sojoodi, A.H., Salimi Beni, M. & Khunjush, F. Ignite-GPU: a GPU-enabled in-memory computing architecture on clusters. J Supercomput 77, 3165–3192 (2021). https://doi.org/10.1007/s11227-020-03390-z
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-020-03390-z