|
1. hafta |
Paralel programlamaya giriş; CPU mimarisi, hızlanma ölçütleri (Amdahl/Gustafson), temel kavramlar |
|
2. hafta |
C/C++ ile çok iş parçacığı: C++ ve Pthreads temelleri |
|
3. hafta |
OpenMP’ye giriş: paralel bölgeler ve temel direktifler |
|
4. hafta |
Veri bağımlılıkları & yarış durumları; kritik bölgeler, atomikler, bellek modeli |
|
5. hafta |
Eşzamanlama araçları: mutex, semaphore, koşul değişkenleri, bariyerler |
|
6. hafta |
Redüksiyonlar ve scan (prefix-sum); temel paralel örüntüler (map/reduce/stencil) |
|
7. hafta |
Bellek hiyerarşisi: önbellek yerelliği (temporal/spatial), satır hizalama, veri yerleşimi |
|
8. hafta |
Önbellek koherensi & false sharing; NUMA mimariler ve bellek bağlama (affinity) |
|
9. hafta |
SIMD/Vektörleme: derleyici oto-vektörleme, SSE/AVX kavramları, temel intrinsics’e bakış |
|
10. hafta |
Görev paralelliği & iş kuyrukları; OpenMP tasking, granülarite ve yük dengeleme |
|
11. hafta |
Performans ölçümleme: zamanlayıcılar, profil araçları (örn. perf/VTune/LIKWID genel bakış) |
|
12. hafta |
Ölçeklenebilirlik analizi: strong/weak scaling, hızlanma/verimlilik, tavan analizleri |
|
13. hafta |
Hibrit programlama: OpenMP + MPI ile CPU kümelerinde çok düğümlü çalışmalar |
|
14. hafta |
Güncel eğilimler ve taşınabilirlik: C++, oneTBB, OpenMP ileri konular; ders genel değerlendirme |