Parçacık sürü optimizasyon algoritmasında CUDA kullanımının hızlanmaya etkisi
The effect of CUDA usage on speedup in particle swarm optimization algorithm
Yazar: MUHAMMET TAHA AYDIN
Danışman: DR. ÖĞR. ÜYESİ GÜLTEKİN KUVAT
Balıkesir Üniversitesi / Fen Bilimleri Enstitüsü / Elektrik-Elektronik Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2022
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control ; Elektrik ve Elektronik Mühendisliği = Electrical and Electronics Engineering
Dizin: Hibrit yöntem = Hybrid method ; Paralel programlama = Parallel programs ; Parçacık sürü optimizasyonu = Particle swarm optimization

Özet:
Optimizasyon, bir problemin olası tüm çözümleri arasında en iyi çözümün bulunmasıdır. Ancak bazı problemlerin çözümleri kabul edilebilir süreler içerisinde bulunamayabilir. Son yıllarda yaygın olarak kullanılan metasezgisel algoritmalar, problemlerin geçerli bir süre içerisinde iyi bir çözüme ulaşmasını hedeflemektedir. Problemlerin zorlaşması veya boyutlarının büyümesi, başarılı bir çözüm için ihtiyaç duyulan süreyi arttırmaktadır. Başarılı çözümlere daha hızlı ulaşma isteği CUDA'dan faydalanma fikrini ortaya çıkarmıştır. Bu çalışmada parçacık sürü optimizasyon algoritması, CPU, CUDA ve CPU-CUDA hibrit yapıda olmak üzere üç farklı şekilde uygulanmıştır. CPU'da seri programlama, CUDA ve CPU-CUDA hibrit yöntemde paralel programlama uygulanarak 64 ve 128 boyutlu 18 farklı test fonksiyonu çözülmüştür. Farklı iterasyon sayıları için elde edilen en iyi, en kötü, ortalama, standart sapma sonuçları ve çalışma süreleri verilmiştir. Her bir durum için CUDA ve CPU-CUDA yöntemlerinin hızlanma değerleri hesaplanmıştır. CUDA yönteminde en yüksek hızlanma 9,120834 ve en düşük ise 1,927629 olarak bulunmuştur. CPU-CUDA hibrit yöntemde ise en yüksek 7,136033 ve en düşük 1,046644 hızlanma değeri elde edilmiştir.  Ortalama hızlanma sonuçlarına göre CUDA, CPU-CUDA hibrit yönteme göre problem boyutu 64 olduğunda yaklaşık 2 kat, 128 olduğunda ise yaklaşık 1,5 kat daha hızlı çalışmıştır.

Abstract:
Optimization is the finding of the best solution among all possible solutions to a problem. However, the solutions to some problems may not be found within acceptable time limits. Metaheuristic algorithms, which have been widely used in recent years, aim to reach good solutions for the problems within a reasonable time. The difficulty or size of the problems increases the time needed for a successful solution. The desire to reach successful solutions faster has led to the idea of utilizing CUDA. In this study, the particle swarm optimization algorithm is applied in three different ways: CPU, CUDA and CPU-CUDA hybrid structure. By applying serial programming in CPU, parallel programming in CUDA and CPU-CUDA hybrid method, 18 different test functions with 64 and 128 dimensions are solved. The best, worst, mean, standard deviation results and run times, which we obtain, are given for different iteration numbers. The speedup values of CUDA and CPU-CUDA methods are calculated for each case. In the CUDA method, the highest and lowest speedup values are found as 9.120834 and 1.927629, respectively. In the CPU-CUDA hybrid method, those values are obtained as 7,136033 and 1,046644, respectively. Comparing CUDA with the CPU-CUDA hybrid method in terms of their average speedup results, CUDA runs approximately 2 times faster when the problem size is 64 and 1.5 times faster when it is 128.