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