Multithread Sıralama Algoritmaları Optimizasyonu

Multithread Sıralama Algoritmaları Optimizasyonu

Sekiz sıralama algoritmasını aynı veri üzerinde iş parçacıklarıyla yarıştıran, süreleri ölçen ve sonuçları karşılaştıran deneysel masaüstü uygulaması.

Bu proje, sekiz farklı sıralama algoritmasını aynı veri üzerinde çalıştırıp sonuçlarını ve tamamlanma sürelerini karşılaştırdığım deneysel bir masaüstü uygulamasıdır. Dönemin uygulamasında algoritmalar ayrı iş parçacıklarıyla başlatılıyor ve bir yarış mantığı içinde ilk tamamlanan sonuç görünür hale getiriliyordu.

Deney Düzeni

Kullanıcı rastgele dizi oluşturabiliyor veya verilen değerleri sıralama yarışına gönderebiliyordu. Dizinin aynı başlangıç değerleri farklı sıralama fonksiyonlarına aktarılıyor, her algoritmanın çalışma süresi Stopwatch ile ölçülüyor ve doğru sıralanmış sonuç arayüzde gösteriliyordu.

Bu yaklaşım algoritma davranışını görselleştirmek için kullanışlıydı; ancak bugün performans ölçümü açısından önemli bir sınırlamasını özellikle ayırıyorum.

Thread Yarışı Saf Benchmark Değildir

Birden fazla sıralama algoritmasını aynı anda farklı thread'lerde çalıştırmak, algoritmaların izole çalışma süresini ölçmez. İşletim sistemi scheduler'ı, CPU çekirdeği sayısı, cache ve bellek bant genişliği aynı anda çalışan yarışmacıları birbirinden etkiler.

Dolayısıyla "ilk biten thread = her koşulda en hızlı sıralama algoritması" sonucu genellenemez. Sağlıklı benchmark için algoritmaların aynı veri dağılımında, kontrollü ısınma ve tekrarlarla, mümkünse birbirinden izole biçimde ölçülmesi gerekir.

Bu retrospektif ayrım projenin değerini azaltmıyor; tersine performans mühendisliğinde ölçüm düzeninin algoritma kadar önemli olduğunu gösteriyor.

Algoritmik Bağlam

Projede kullanılan sıralama algoritmaları ve karmaşıklık ilişkileri Veri Yapıları ve Algoritma Analizi notlarımla doğrudan bağlantılıdır. Thread, scheduler ve işlemci davranışının daha geniş karşılığı için İşletim Sistemleri ve Bilgisayar Mimarisi notları ilgili teorik çerçeveyi sağlar.

Bu sayfanın QR kodu