Yazılım Mühendisliği
Lisans TYYÇ: 6. Düzey QF-EHEA: 1. Düzey EQF-LLL: 6. Düzey

Ders Genel Tanıtım Bilgileri

Ders Kodu: YAZ004
Ders İsmi: Paralel Bilgisayarlar
Ders Yarıyılı: Güz
Ders Kredileri:
AKTS
5
Öğretim Dili: Türkçe
Ders Koşulu:
Ders İş Deneyimini Gerektiriyor mu?: Hayır
Dersin Türü: Bölüm/Program Seçmeli
Dersin Seviyesi:
Lisans TYYÇ:6. Düzey QF-EHEA:1. Düzey EQF-LLL:6. Düzey
Dersin Veriliş Şekli: Yüz yüze
Dersin Koordinatörü: Dr. Öğr. Üy. MUHAMMED DAVUD
Dersi Veren(ler): Gürsan Çoban
Dersin Yardımcıları:

Dersin Amaç ve İçeriği

Dersin Amacı: • Paralellik kavramı, yerellik, flynn taksonomisi, hızlanma ve verimlilik.
• Paralel bilgi işlemin temel mimarileri, Kümeler, SMP, bellek hiyerarşileri, önbellek tutarlılığı, gecikme süresi.
• Mesaj Geçişli Hesaplama, MPI, Eşzamanlı-Eşzamansız mesaj iletimi, arabelleğe alınmış-arabelleğe alınmamış ileti geçişi, paralel programların değerlendirilmesi, ping-pong, wall-clock time
• Toplu iletişim rutinleri
• Doğrusal denklem sistemlerinin paralel çözümü konusunda temel bilgiler
• Kendiliğinden paralel problemler
• Bölümleme, böl ve yönet, eşzamanlı hesaplamalar, veri paralel hesaplama
• Yük dengeleme
• Paylaşımlı Bellek Programlama, OpenMP

hakkında bilgi kazanımı sağlamak.
Dersin İçeriği: Bir haberleşme altyapısı üzerinden bağlanan sistemlerde yüksek hacimli verilerin ve hesaplama algoritmasının bölüntülü ve dengeli bir formda incelenmesinin sağlanması, birim zamanda gerçekleştirilen kayar nokta hesaplamalarının artmasını sağlar. Bu hesaplamalı olgu yüksek hızlarda çıktı elde edilmesi için temel teşkil etmektedir. Bu ders kapsamında yüksek performanslı hesaplama (HPC) işlemlerinin yürütülebilmesi için gerekli olan bilgisayar mimarileri incelenmekte, kodlama altyapıları uygulamalı olarak verilip (C veya Fortran), bilimsel uygulama alanları ile ilgili temel örnekler verilmektedir.

Öğrenme Kazanımları

Bu dersi başarıyla tamamlayabilen öğrenciler;
1) Paralel bir bilgi işlem ortamının altyapısının temel özelliklerini anlayabilir, olası darboğazları ve sistemlerin sınırlamalarını analiz edebilir.
2) Belirli bir paralel program için analizi başarılı sonuçlara yönlendirecek temel programlama kavramlarını bilir. Paralel bir çözümün başarısını uygun ölçümlerle değerlendirebilir.
3) Mesaj Aktarma, Hesaplama rutinlerini bilir ve uygular (MPI).
4) Kendiliğinden paralel hesaplamaları uygulama ve programlama konusunda beceriye sahiptir.
5) Yük dengeleme ve bölümleme stratejileri hakkında bilgi sahibi olur.
6) ‘Pipelined’ hesaplama kavramını, doğrusal sistemleri çözmek için nasıl uygulandığını bilir.
7) Paylaşılan bellek programlama kavramlarını bilir ve bunları OpenMP aracılığıyla uygular.

Ders Akış Planı

Hafta Konu Ön Hazırlık
1) Paralel hesaplamaya giriş, genel ilkeler, taksonomi
2) Paralel Hesaplama Mimarileri, Donanım ve Yazılım 1 Ders Kaynak Kitabı, CH2
3) Paralel Hesaplama Mimarileri, Donanım ve Yazılım 2 Ders Kaynak Kitabı, CH2
4) MPI ile Dağıtılmış Bellekli Programlama (1) (MPI programları, işaret temelleri, eş zamanlı- eş zamansız) Ders Kaynak Kitabı, CH3
5) MPI ile Dağıtılmış Bellekli Programlama (2) (toplu iletişim, kendiliğinden paralel hesaplamalar) Ders Kaynak Kitabı, CH3
6) Bölümleme Stratejileri, Ardışık Düzenli Hesaplama Ek sunum dökümanları
7) Yarıyıl Sınavı
8) Yük dengeleme Ek sunum dökümanları
9) Pthreads ile Paylaşılan Bellek Programlama Ders Kaynak Kitabı, CH4
10) Paylaşılan bellek programlama -1 (OpenMP) Ders Kaynak Kitabı, CH5
11) Paylaşılan bellek programlama -2 (OpenMP) Ch5
12) Paralel Program Geliştirme Kavramları CH6
13) Algoritmalar ve Uygulamalar Sunumlar
14) Dönem projesi sunumları-Tamamlayıcı

Kaynaklar

Ders Notları / Kitaplar: An Introduction to Parallel Programming, Peter S. Pacheco, Morgan Kaufmann; 1st Edition, 2011
Diğer Kaynaklar: Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers 2nd Edition Barry Wilkinson, Michael Allen

Paralel Programming in C with MPI and OpenMP, 1st edition, Michael J. Quinn, 2004

Ders - Program Öğrenme Kazanım İlişkisi

Ders Öğrenme Kazanımları

1

2

3

4

5

6

7

Program Kazanımları
1) Matematik, fen bilimleri ve ilgili mühendislik disiplinine özgü konularda yeterli bilgi birikimine; bu alanlardaki kuramsal ve uygulamalı bilgileri, mühendislik problemlerinde kullanabilme becerisine sahiptir. 3 3 3 3 3 3 3
2) Bir sistemi, süreci veya ürünü ekonomik, çevre, sosyo-politik, etik, sağlık, güvenlik, üretilebilirlik ve sürdürülebilirlik ile ilişkili gerçekçi koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisine sahiptir. 3 3 2 2 3 2 2
3) Mühendislik problemlerini tanımlama, formüle etme ve çözme; çözüm için gerekli yöntemi seçme ve uygulama becerisine sahiptir. 3 3 3 3 3 3 3
4) Mühendislik uygulamalarında karşılaşılan problemlerin analizi ve çözümü için gerekli olan modern teknikleri geliştirme, seçme ve kullanma; bilişim teknolojilerini etkin bir şekilde kullanma becerisine sahiptir. 3 3 3 3 3 3 3
5) Mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisine sahiptir. 3 3 3 3 3 3 3
6) Çok disiplinli takımlarda etkin biçimde çalışabilme becerisine sahiptir.
7) Sözlü ve yazılı etkin iletişim kurma becerisi ile etkin rapor yazma ve yazılı raporları anlama, etkin sunum yapabilme becerisine sahiptir. 3 3 3 3 3 3 3
8) Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilincine sahiptir; mühendislik uygulamalarında kullanılan standartlar hakkında bilgiye sahiptir.
9) Bir yabancı dili Avrupa Dil Portföyü kriteri açısından en az B1 düzeyinde kullanabilme becerisine sahiptir.
10) Yaşam boyu öğrenmenin gerekliliği bilincine sahiptir; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisine sahiptir. 3 3 3 3 3 3 3
11) Bilgisayar yazılımı ile birlikte bilişim ve iletişim teknolojilerini Avrupa Bilgisayar Kullanma Lisansı İleri düzeyinde kullanabilme becerisine sahiptir.
12) Proje yönetimi ve risk yönetimi uygulamaları hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgiye sahiptir.
13) Mühendislik uygulamalarının evrensel ölçekte çevre, sağlık ve güvenlik üzerindeki etkileri ve hukuksal sonuçları hakkında bilgi ve farkındalığa sahiptir.
14) Yazılım alternatiflerini irdeleyerek bilgisayar tabanlı sistemlerin modellenmesi ve tasarımında, algoritma prensiplerini, matematiksel temelleri ve bilgisayar bilimleri teorisini uygulama becerisine sahiptir. 3 3 3 3 3 3 3
15) Türevsel denklemler, integral hesapları, doğrusal cebir, mantık ve ayrık matematik içerecek şekilde ileri matematik eğitimi ile birlikte yazılım mühendisliğinde veri yapıları ve algoritmalar, programlama dilleri, işletim sistemleri, bilgisayar güvenliği, bilgisayar teorisi, ağ programlama ve makine öğrenmesi alanlarını kapsayan mühendislik eğitimine sahiptir. 2 2 3 2 2 3 3

Ders - Öğrenme Kazanımı İlişkisi

Etkisi Yok 1 En Düşük 2 Orta 3 En Yüksek
       
Dersin Program Kazanımlarına Etkisi Katkı Payı
1) Matematik, fen bilimleri ve ilgili mühendislik disiplinine özgü konularda yeterli bilgi birikimine; bu alanlardaki kuramsal ve uygulamalı bilgileri, mühendislik problemlerinde kullanabilme becerisine sahiptir. 3
2) Bir sistemi, süreci veya ürünü ekonomik, çevre, sosyo-politik, etik, sağlık, güvenlik, üretilebilirlik ve sürdürülebilirlik ile ilişkili gerçekçi koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisine sahiptir. 2
3) Mühendislik problemlerini tanımlama, formüle etme ve çözme; çözüm için gerekli yöntemi seçme ve uygulama becerisine sahiptir. 3
4) Mühendislik uygulamalarında karşılaşılan problemlerin analizi ve çözümü için gerekli olan modern teknikleri geliştirme, seçme ve kullanma; bilişim teknolojilerini etkin bir şekilde kullanma becerisine sahiptir. 3
5) Mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisine sahiptir. 3
6) Çok disiplinli takımlarda etkin biçimde çalışabilme becerisine sahiptir.
7) Sözlü ve yazılı etkin iletişim kurma becerisi ile etkin rapor yazma ve yazılı raporları anlama, etkin sunum yapabilme becerisine sahiptir. 3
8) Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilincine sahiptir; mühendislik uygulamalarında kullanılan standartlar hakkında bilgiye sahiptir.
9) Bir yabancı dili Avrupa Dil Portföyü kriteri açısından en az B1 düzeyinde kullanabilme becerisine sahiptir.
10) Yaşam boyu öğrenmenin gerekliliği bilincine sahiptir; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisine sahiptir. 3
11) Bilgisayar yazılımı ile birlikte bilişim ve iletişim teknolojilerini Avrupa Bilgisayar Kullanma Lisansı İleri düzeyinde kullanabilme becerisine sahiptir.
12) Proje yönetimi ve risk yönetimi uygulamaları hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgiye sahiptir.
13) Mühendislik uygulamalarının evrensel ölçekte çevre, sağlık ve güvenlik üzerindeki etkileri ve hukuksal sonuçları hakkında bilgi ve farkındalığa sahiptir.
14) Yazılım alternatiflerini irdeleyerek bilgisayar tabanlı sistemlerin modellenmesi ve tasarımında, algoritma prensiplerini, matematiksel temelleri ve bilgisayar bilimleri teorisini uygulama becerisine sahiptir. 3
15) Türevsel denklemler, integral hesapları, doğrusal cebir, mantık ve ayrık matematik içerecek şekilde ileri matematik eğitimi ile birlikte yazılım mühendisliğinde veri yapıları ve algoritmalar, programlama dilleri, işletim sistemleri, bilgisayar güvenliği, bilgisayar teorisi, ağ programlama ve makine öğrenmesi alanlarını kapsayan mühendislik eğitimine sahiptir. 2

Ölçme ve Değerlendirme

Yarıyıl İçi Çalışmaları Aktivite Sayısı Katkı Payı
Devam 14 % 0
Laboratuvar 14 % 0
Sunum 1 % 0
Projeler 1 % 0
Ara Sınavlar 1 % 30
Final 1 % 35
Final Sözlü 1 % 35
Toplam % 100
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI % 65
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI % 35
Toplam % 100

İş Yükü ve AKTS Kredisi Hesaplaması

Aktiviteler Aktivite Sayısı İş Yükü
Ders Saati 14 28
Laboratuvar 14 28
Sınıf Dışı Ders Çalışması 14 14
Sunum / Seminer 2 6
Proje 12 35
Ara Sınavlar 2 12
Final 2 12
Toplam İş Yükü 135