BBZ311 Paralel Programlama

5 AKTS - 3-0 Süre (T+U)- 5. Yarıyıl- 3 Yerel Kredi

Genel Bilgi

Birim FEN-EDEBİYAT FAKÜLTESİ
BİLGİSAYAR BİLİMLERİ PR.
Kod BBZ311
Ad Paralel Programlama
Dönem 2025-2026 Eğitim-Öğretim Yılı
Yarıyıl 5. Yarıyıl
Süre (T+U) 3-0 (T-U) (17 Hafta)
AKTS 5 AKTS
Yerel Kredi 3 Yerel Kredi
Eğitim Dil Türkçe
Seviye Belirsiz
Tür Normal
Etiket S Seçmeli
Öğretim Şekli Yüz Yüze Öğretim
Bilgi Paketi Koordinatörü Dr. Öğr. Üyesi Cevher ÖZDEN
Dersin Öğretim Elemanı
Güncel dönem ders programı henüz yapılmamıştır.


Dersin Amacı / Hedefi

Bu dersin amacı, öğrencilere paralel programlamanın temel kavramlarını, modellerini ve yaklaşımlarını öğretmektir. Paylaşımlı ve dağıtık bellekli sistemlerde paralel program geliştirme becerisi kazandırmak, OpenMP ve MPI gibi yaygın paralel programlama kütüphanelerini etkin şekilde kullanabilmelerini sağlamak ve paralel algoritmaların tasarımı ile performans analizlerini gerçekleştirme yetkinliği kazandırmak hedeflenmektedir.

Dersin İçeriği

Bu ders, paralel programlamanın temel kavramlarını, modellerini ve tekniklerini öğretmeyi amaçlar. Öğrenciler, paylaşımlı ve dağıtık bellekli sistemlerde paralel programlama yaklaşımlarını , paralel algoritma tasarımı ve performans analizi konularında bilgi ve beceri kazanırlar. Ders, teorik bilgilerin yanı sıra pratik uygulamalarla desteklenir.

Dersin Ön Koşulu

Yok

Kaynaklar

Michael J. Quinn, Parallel Programming in C with MPI and OpenMP, McGraw-Hill. Jesper Larsson Träff, Lectures on Parallel Computing, arXiv:2407.18795.

Notlar

Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar, Introduction to Parallel Computing, Addison-Wesley. William Gropp, Ewing Lusk, Anthony Skjellum, Using MPI: Portable Parallel Programming with the Message-Passing Interface, MIT Press.


Dersin Öğrenme Çıktıları

Sıra Dersin Öğrenme Çıktıları
ÖÇ01 Paralel programlamanın temel kavramlarını açıklar.
ÖÇ02 Paralel algoritma tasarımı ilkelerini uygular.
ÖÇ03 OpenMP ve MPI kullanarak paralel programlar geliştirir.
ÖÇ04 Paralel programların performansını analiz eder ve optimize eder.
ÖÇ05 Paralel programlamada senkronizasyon ve eşzamanlılık problemlerini çözer.
ÖÇ06 Paralel programlama projelerinde takım çalışması ve teknik raporlama becerilerini geliştirir.


Program Öğrenme Çıktıları ile İlişkisi

Sıra Tür Program Öğrenme Çıktıları Duzey
PÖÇ01 Bilgi - Kuramsal, Olgusal Bilgisayar Bilimleri temel kavramları, algoritmalar ve veri yapıları hakkında geniş bir bilgi yelpazesi kazandırır.
PÖÇ02 Bilgi - Kuramsal, Olgusal Yazılım geliştirme, programlama dilleri ve veritabanı yönetimi gibi temel bilgisayar konularını öğrenir.
PÖÇ03 Bilgi - Kuramsal, Olgusal Veri bilimi, yapay zeka ve makine öğrenimi gibi ileri düzey bilgisayar alanlarını anlar.
PÖÇ04 Bilgi - Kuramsal, Olgusal Bilgisayar ağları, siber güvenlik ve veritabanı tasarımı gibi konularda bilgi edinir.
PÖÇ05 Beceriler - Bilişsel, Uygulamalı Algoritmaları tasarlama, uygulama ve analiz etme becerilerini geliştirir. 5
PÖÇ06 Beceriler - Bilişsel, Uygulamalı Farklı programlama dillerini etkili bir şekilde kullanabilme yeteneği kazanır 5
PÖÇ07 Beceriler - Bilişsel, Uygulamalı Veri analizi, veritabanı yönetimi ve büyük veri işleme becerilerini öğrenir.
PÖÇ08 Beceriler - Bilişsel, Uygulamalı Yazılım geliştirme projelerinde çalışarak pratik deneyim kazanır. 5
PÖÇ09 Yetkinlikler - Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği Ekip içinde işbirliği yapma ve iletişim becerilerini güçlendirir.
PÖÇ10 Yetkinlikler - Alana Özgü Yetkinlik Teknolojik yeniliklere açık bir zihniyet kazandırır.
PÖÇ11 Yetkinlikler - Öğrenme Yetkinliği Sürekli öğrenme ve kendini geliştirme yetkinliğini teşvik eder.
PÖÇ12 Yetkinlikler - İletişim ve Sosyal Yetkinlik Karmaşık sorunları çözme yeteneği geliştirir.


Haftalık Akış

Hafta Konu Ön Hazırlık Yöntemler
1 Paralel programlamaya giriş; motivasyon ve temel kavramlar Paralel hesaplama hakkında genel okuma Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
2 Paralel bilgisayar mimarileri ve sınıflandırması Flynn taksonomisi üzerine çalışma Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
3 Paylaşımlı bellekli sistemlerde programlama: OpenMP OpenMP temel kavramları Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
4 OpenMP ile paralel döngüler ve senkronizasyon OpenMP direktifleri üzerine uygulamalar Öğretim Yöntemleri:
Anlatım, Tartışma
5 Dağıtık bellekli sistemlerde programlama: MPI MPI temel fonksiyonları Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
6 MPI ile iletişim ve kolektif işlemler MPI iletişim modelleri üzerine çalışma Öğretim Yöntemleri:
Soru-Cevap, Anlatım, Tartışma
7 Paralel algoritma tasarımı ve performans analizi Amdahl ve Gustafson yasaları üzerine çalışma Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
8 Ara Sınavlar Önceki konuların tekrarı Ölçme Yöntemleri:
Yazılı Sınav
9 Senkronizasyon problemleri ve çözüm teknikleri Deadlock ve race condition üzerine çalışma Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
10 Paralel sıralama ve arama algoritmalar Paralel algoritmalar üzerine uygulamalar Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
11 Matris işlemleri ve sayısal algoritmalar Paralel matris çarpımı üzerine çalışma Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
12 Paralel programlarda performans ölçümü ve optimizasyon Profiling araçları kullanımı Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
13 Paralel programlama projeleri ve vaka çalışmaları Proje raporlarının hazırlanması Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
14 Paralel programlama örneklerinin karşılaştırılması ve ders geneli değerlendirme Farklı paralel modellerde yazılmış örneklerin karşılaştırılması Öğretim Yöntemleri:
Gösterip Yaptırma, Anlatım
15 Genel tekrar ve final sınavı hazırlığı Tüm konuların gözden geçirilmesi Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
16 Yarıyıl Sonu Sınavları Yazılı sınav uygulaması Ölçme Yöntemleri:
Yazılı Sınav
17 Yarıyıl Sonu Sınavları Yazılı sınav uygulaması Ölçme Yöntemleri:
Yazılı Sınav


Öğrenci İş Yükü - AKTS

Çalışmalar Sayısı Süresi (Saat) İş Yükü (Saat)
Ders ile İlgili Çalışmalar
Ders (Sınav haftaları dahil değildir) 14 3 42
Sınıf Dışı Ders Çalışma (Ön çalışma, pekiştirme) 14 3 42
Değerlendirmeler ile İlgili Çalışmalar
Ödev, Proje, Diğer 5 10 50
Ara Sınavlar (Yazılı, Sözlü, vs.) 1 1 1
Yarıyıl/Yıl Sonu/Final Sınavı 1 1 1
Toplam İş Yükü (Saat) 136
Toplam İş Yükü / 25 (s) 5,44
AKTS 5 AKTS

Güncelleme Zamanı: 06.05.2025 09:50