CENG 441

Paralel Programlamaya Giriş

Modern çok çekirdekli bilgisayarların daha etkin biçimde kullanılabilmesi için paralel programlama tekniklerine giriş, Paralelizmin belirlenmesi, paylaşılan verinin adlandırılması, thread senkronizasyonu, iletişime ilişkin gecikme ve bandwidth, paralel performansın analizi ve geliştirilmesi, paralel programlama araçları, çeşitli örnekler ve egzersizler.

Dersin Amacı

Paralel programlama modellerinin öğretilmesi.

Farklı paralel programlama araçlarının öğretilmesi ve analizinin yapılması.

Paraleleştirme yöntemlerinin, uygulamalı olarak öğretilmesi.

Paralelleştirilen bir algoritmanın verimlilik analiz yöntemlerinin öğretilmesi.

Kaynakça

Grama, A. Gupta, G. Karypis, V. Kumar, ‘Introduction to Parallel Computing’, Addison-Wesley, 2nd Ed., 2003 , Behrooz Parhami, ‘Introduction to Parallel Processing Algorithms and Architectures’, Plenum Series in Computer Science, 1999

Öğrenme Çıktıları

1. Paralel programlama modelleri ve bunların kullanım gereksiniminin analizi ve verimli uygulanıyor olması.

2. Farklı paralel programlama yöntem ve araçlarının karşılaştırılması ve etkin olarak hangisinin kullanılacağına karar verilebilmesi.

3. Seri bir algoritmanın etkin olarak analiz edilmesi ve paralel bir algoritmaya dönüştürülebilmesi.

4 .Paralelleştirilen algoritmaların verimlilik analizlerinin yapılması.

KONU
Paralel Bilgisayar Sistemlerine Giriş
Paralel Programlama Modelleri
Paralelizmi Keşfetme Metotları
Paralel Algoritma Tasarım Metotları
Paralel Programlama Desenleri
Bellek Paylaşımlı Mimarilerde Thread’ler ve Paralelizm
Domain Ayrıştırma ve OpenMP
Yarış Durumundan Sakınma, Thread’ler ve OpenMP
Task Ayrıştırma ve OpenMP
Paralel Uygulamalarda Verimlilik Analizi
Paralel Uygulamalarda Verimliliğin Arttırılması
Paralelleştirmede Uygun Thread Modelin Belirlenmesi
Dağıtık Bellekli Ortamlarda Paralelleştirme – MPI
Dağıtık Bellekli Ortamlarda Paralelleştirme – MPI

Notlandırma

Vize: 25%

Ödev: 30%

Araştırma Sunumu: 20%

Final: 25%