Apache spark ve GPU'nun büyük veri analizinde kullanılması
Using Apache spark and GPU on big data analysis
Yazar: MEHMET TURAN
Danışman: DR. ÖĞR. ÜYESİ MEHMET EMİN TENEKECİ
Harran Üniversitesi / Fen Bilimleri Enstitüsü / Elektrik-Elektronik Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2019
Konu: Elektrik ve Elektronik Mühendisliği = Electrical and Electronics Engineering

Özet:
Günlük hayatın her alanında gerçekleşen dijital dönüşüm farklı problemlerin ve ihtiyaçların ortaya çıkmasına neden olmuştur. Bu dönüşüme paralel olarak artan veri çeşitliliği, verilerdeki tutarsızlık, verinin büyümesiyle verinin daha hızlı analiz edilebilmesi ihtiyaçtan ziyade bir zorunluluk haline gelmiştir. Geleneksel donanımlar ve Hadoop, Spark ve Hive gibi yazılım temelli çözümler ile büyük verilerin işlenmesi, analizi ve yönetimi sağlanmaktadır. Gelişmiş donanımların sistem kapasitesinin artırılmasına önemli katkıları vardır. Aynı şekilde, güçlü bir donanıma sahip sistemin veri tabanının tasarlanmasına ve performansına da çok büyük etkisi vardırır. GPU'ların artan veri boyutunun sorgulanmasında kullanılması büyük veriler için iyi bir alternatif olabilir. CPU yerine, çok fazla çekirdeğin ve yüksek bellek boyutu ile yüksek derecede paralelleştirme teknolojisinin kullanıldığı GPU'nun büyük veri sorgularının hızlandırılmasına olan etkileri araştırılmıştır. Bu kapsamda bellek-temelli büyük veri hesaplama yapısı olan Apache Spark ile GPU DataFrame kütüphanesi olan cuDF yapılarından yararlanılmıştır. Bu çalışmada, veri analizinde yaygın olarak kullanılan sıralama, gruplandırma ve filtreleme gibi sorguların gerçekleşme sürelerine bağlı olarak performans karşılaştırması yapılmıştır. Aynı sorgular CPU ve GPU üzerinde ayrı ayrı gerçekleştirilmiştir. Bu sorgular sonucunda, basit sorgularda Apache Spark ve GPU gerçekleşme süreleri bakımından benzer sonuçlar vermesine karşın yoğun hesaplama gerektiren birçok sorguda GPU 2x-6x arasında daha hızlı sonuç verirken, koşula dayalı filtreleme işleminde Apache Spark yaklaşık olarak 5x daha hızlı gerçekleştirmiştir.

Abstract:
Digital transformation in daily life has led to different problems and needs. Depending of this transformation, with increase in data diversity, data inconsistency and data growth, faster analysis of data has become necessity rather than need. Traditional hardware and software-based solutions such as Hadoop, Spark and Hive supply the processing, analysis and management of big data. Advanced hardwares affects increasing in system capacity significantly. Likewise, a well-equipped system has a huge impact on the design and performance of the database. Using GPUs to query the increasing data size can be a good alternative for big data. Instead of CPU, the effects of GPU, which use high degree parallelization technology with many cores and high memory size for acceleration, was investigated on big data queries.  In this context, Apache Spark, which is a memory-based large data computation framework, and cuDF structures, which is a GPU DataFrame library, were utilized. In this study, the performance comparison of the queries which are commonly used in data analysis such as sorting, grouping and filtering is processed.  The effects of GPU on big data queries with the cuDF library were examined. Same queries were used in separately both on CPU and GPU. As a result of these queries, Apache Spark and GPU yields similar results in simple queries, but in many queries which requires intensive computations, GPU provides faster results between 2x-6x. However, Apache Spark performs approximately 5x faster in conditional filtering.