Dersin Adı Dersin Seviyesi Dersin Kodu Dersin Tipi T+U K AKTS
Paralel Programlamaya Giriş BIM-308 Zorunlu 6 3 6

Dersin Tanımı

Ön koşul dersleri
Eğitimin dili Türkçe
Koordinatör
Dersi veren öğretim elemanları
Yardımcı öğretim eleman(lar)ı
Dersin veriliş şekli Yüz yüze
Dersin amacı Bu dersi alan öğrenciye giriş seviyesinde Linux işletim sisteminin, paralel programlamanın temellerinin ve paralel programlamaya neden ihtiyaç duyulduğunun, paralel programlamanın seri programlamadan farklarının, Linux işletim sistemi yüklü bilgisayarlardan kurulu bir kümeleme sistemine uzaktan bağlanabilmenin ve iş koşturabilmenin, Linux ortamında C++ ve MPI rutinleri kullanarak dağıtık bellekli paralel programların nasıl yazılabileceğinin ve çalıştırılabileceğinin, Windows ortamında Microsoft Visual Studio 2010 ve MPICH2 kullanarak dağıtık bellekli paralel programların nasıl yazılabileceğinin ve çalıştırılabileceğinin, MPI ile yazılmış paralel bir C++ konsol uygulamasının bir yerel ağ içinde MPICH2 kurulu ve Windows işletim sistemi yüklü bilgisayarlar üzerinde nasıl paralel çalıştırılabileceğinin, Linux ortamında C++ ve OpenMP kullanarak ortak paylaşım bellekli paralel programların nasıl yazılabileceğinin öğretilmesi amaçlanmaktadır.
Dersin tanımı

Dersin İçeriği

1- Linux İşletim Sistemine Giriş ve Öğrenilen Linux Komutlarının Bilgisayar Başında Uygulaması.
2- Linux İşletim Sistemine Devam. (chmod, chown, ssh ve scp Komutları)
3- Komut Satırından Argüman Alan C++ Programları, "argc" ve "argv" Parametreleri, Linux Ortamında "g++" Derleyicisi ile C++ Kodlarının Derlenmesi ve Çalıştırılması, C++ Programlarının Performanslarının Ölçülmesi, time Komutu, Uygulamalar.
4- Yüksek Başarımlı Hesaplama (YBH) ya da High Performance Computing (HPC) Sistemleri ve Paralel Programlamaya Giriş, Cluster (Kümeleme) Mimarisi ile HPC, Seri Hesaplama, Ortak Paylaşım Bellekli Model (Shared Memory), Dağıtık Bellekli Model (Distributed Memo
5- MPI ile Dağıtık Hesaplamaya Giriş, SMPD Model (Single Program Multiple Data), Environment Management Routines, MPI Rutinleri İçeren C++ Programlarının Derlenmesi ve Çalıştırılması (mpiicpc ve mpirun Programları), "Hello World" Örneği, Uygulamalar.
6- Microsoft Visual Studio 2010 ve Windows İçin Varolan MPICH2 Programları Kullanılarak Windows Ortamında C++ ile MPI Uygulamalarının Yazılması ve Çalıştırılması, Uygulamalar.
7- MPI ile Yazılmış Paralel Bir C++ Konsol Uygulamasının Bir Yerel Ağ İçinde MPICH2 Kurulu Bilgisayarlar Üzerinde Paralel Olarak Çalıştırılması, Uygulamalar.
8- MPI Performansını Etkileyen Faktörler, MPI Veri Tipleri, Blocking Communication, MPI ile Noktadan Noktaya Haberleşme (Point-to-Point Communication): MPI_Send ve MPI_Recv Fonksiyonları, lsf (Load Sharing Facility) Programı Yardımıyla Cluster Sistemine İş T
9- MPICH2 Uygulamaları.
10- Deadlock Nedir ve Nasıl Önlenir?, MPI ile Toplu Haberleşme (Collective Communication) : MPI_Barrier, MPI_Bcast, MPI_Reduce, MPI_Allreduce, MPI_Gather, MPI_Allgather, MPI_Scatter, Uygulamalar.
11- Row-major Order Memory Allocation (C/C++), Column-major Order Memory Allocation (Fortran/MATLAB), Matrislerin Dinamik Olarak 2 Farklı Şekilde Oluşturulması, Türetilmiş Veri Tipleri (MPI) (Derived Data Types), MPI_Type_commit, MPI_Type_free, MPI_Type_conti
12- OpenMP’ye Giriş.
13- OpenMP ve MPI ile Hibrid Programlama, Uygulamalar.
14- Uygulamalar.
15-
16-
17-
18-
19-
20-

Dersin öğrenme çıktıları

1- Giriş seviyesinde Linux işletim sistemi bilgisine sahip olur.
2- Paralel programlamanın temellerini ve paralel programlamaya neden ihtiyaç duyulduğunu öğrenir.
3- Paralel programlamanın seri programlamadan farklarını öğrenir.
4- Linux işletim sistemi yüklü bilgisayarlardan kurulu bir kümeleme sistemine uzaktan bağlanabilmeyi ve iş koşturabilmeyi öğrenir.
5- Linux ortamında C++ ve MPI rutinleri kullanarak dağıtık bellekli paralel programlar yazabilir, çalıştırabilir ve test edebilir.
6- Windows ortamında Microsoft Visual Studio 2010 ve MPICH2 kullanarak dağıtık bellekli paralel programlar yazabilir ve çalıştırabilir.
7- MPI ile yazılmış paralel bir C++ konsol uygulamasını bir yerel ağ içinde MPICH2 kurulu ve Windows işletim sistemi yüklü bilgisayarlar üzerinde paralel çalıştırabilir.
8- Linux ortamında C++ ve OpenMP kullanarak ortak paylaşım bellekli paralel programlar yazılabilir ve çalıştırabilir.
9-
10-