Skip to main content

Advertisement

Log in

Ignite-GPU: a GPU-enabled in-memory computing architecture on clusters

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1

Source: Adapted from Ref. [24]

Fig. 2

Source: Adapted from Ref. [25]

Fig. 3
Fig. 4
Fig. 5

Source: Adapted from Ref. [24]

Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12

Similar content being viewed by others

Notes

  1. Java Virtual Machine.

  2. Application Program Interface.

  3. Compute Unified Device Architecture.

  4. Nvidia CUDA Compiler.

  5. Parallel Thread Execution.

  6. Java Native Interface.

References

  1. Apache Hadoop. http://hadoop.apache.org/. Accessed 01 Nov 2019

  2. Dean Jeffrey, Ghemawat Sanjay (2008) Mapreduce: simplified data processing on large clusters. Commun ACM 51(1):107–113

    Article  Google Scholar 

  3. 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

  4. 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

  5. Apache Spark \(^{TM}\)-unified analytics engine for big data. http://spark.apache.org/. Accessed 01 Nov 2019

  6. Stateful Computations over Data Streams, Apache Flink. http://flink.apache.org/. Accessed 01 Nov 2019

  7. 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

    MathSciNet  MATH  Google Scholar 

  8. Open Source In-Memory Computing Platform: Apache Ignite\(^{TM}\). http://ignite.apache.org/. Accessed 04 Jun 2020

  9. Eric M, Roger B (2017) Introduction to GPUs for data analytics. O’Reilly, 1005 Gravenstein Highway North, Sebastopol, CA

  10. Apache Storm. http://storm.apache.org/. Accessed 01 Nov 2019

  11. Dieudonne M, David T (2016) Exploring GPU acceleration of apache spark. In: 2016 IEEE International Conference on Cloud Engineering (IC2E), IEEE, pp 222–223

  12. 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

  13. 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

    Article  Google Scholar 

  14. 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

  15. IBMSparkGPU, GitHub. http://github.com/IBMSparkGPU/. Accessed 01 Nov 2019

  16. 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

  17. 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

  18. 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

  19. 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

    Article  Google Scholar 

  20. 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

    Article  Google Scholar 

  21. 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

  22. CUDA Zone|NVIDIA Developer. https://developer.nvidia.com/cuda-zone. Accessed 06 Jun 2020

  23. ACID Transactions. https://ignite.apache.org/features/transactions/. Accessed 01 Nov 2019

  24. Apache Ignite Documentation. https://apacheignite.readme.io/docs. Accessed 06 Jun 2020

  25. 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

  26. OpenCL|NVIDIA Developer. https://developer.nvidia.com/opencl. Accessed 06 Jun 2020

  27. NVCC: CUDA Toolkit Documentation. https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html. Accessed 06 Jun 2020

  28. PTX ISA: CUDA Toolkit Documentation. https://docs.nvidia.com/cuda/parallel-thread-execution/index.html. Accessed 06 Jun 2020

  29. 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

  30. Craig B (1999) A reasonable c\(++\) wrappered java native interface

  31. 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

  32. 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

  33. JCuda Documentation. http://www.jcuda.org/documentation/Documentation.html. Accessed 29 Jun 2020

  34. Shah R, Narayanan PJ, Kothapalli K(2010) Gpu-accelerated genetic algorithms. cvit.iiit.ac.in

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Majid Salimi Beni.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-020-03390-z

Keywords

Navigation