Ekim 19, 2021
11 11 11 ÖÖ
TCP nedir ? Aktarım Katmanı 2
Aktarım Katmanı Tcp Nedir
Yönlendirme Nedir 2 ?
Yönlendirme Nedir ?
Ağ Katmanı Nedir 2 ?
Ağ Katmanı Nedir ?
Veri Bağı Katmanı Nedir 2 ?
Android Studio Nasıl Kurulur ?
Veri Bağı Katmanı Nedir ?
Fiziksel Katman Nedir ?
Son Yazılar
TCP nedir ? Aktarım Katmanı 2 Aktarım Katmanı Tcp Nedir Yönlendirme Nedir 2 ? Yönlendirme Nedir ? Ağ Katmanı Nedir 2 ? Ağ Katmanı Nedir ? Veri Bağı Katmanı Nedir 2 ? Android Studio Nasıl Kurulur ? Veri Bağı Katmanı Nedir ? Fiziksel Katman Nedir ?
Paralel Programlama Bölüm

Paralel Programlama

Paylaşım , Takip İçin

BÖLÜM 1

Paralel Programlama Nedir?

• Paralel programlama (Paralel Hesaplama), bir bilgisayar donanımı
üzerinde belirli işlemlerin dağıtılıp eş zamanlı olarak çalışması
mantığına dayanmaktadır.
• Paralel bilgisayarlarda programlama için işletim sistemi seviyesinde
ve/veya programlama dili seviyesinde pek çok yazılım sistemi
geliştirilmiştir.
• Bu sistemler, problemin parçalara bölümlenmesini ve işlemcilere
atanmasını sağlayan çeşitli mekanizmalar içermelidir. 

Gelin birde seri hesaplamaya bakalım.

Seri Hesaplama Nedir?

• Geleneksel olarak, yazılımlar seri hesaplama için yazılmıştır.
• Yazılım bilgisayar üzerindeki tek Merkezi İşlem Birimi (CPU) üzerinde
çalışmaktadır.
• Problem komutlara ayrılmıştır.
• Komutlar ardışık olarak çalıştırılmaktadır.
• Herhangi bir anda sadece bir komut çalıştırılabilmektedir.

Peki ya o zaman paralel hesaplama nedir dersek ?

Paralel Hesaplama Nedir?

• Bir problemi çözmek için çok sayıdaki hesaplama kaynağını aynı anda
kullanmaktır.
• Program çok sayıda CPU üzerinde çalışmaktadır.
• Problem eşzamanlı olarak çözülebilecek komutlara ayrılır.
• Her bir parça kümesi komutlara ayrılır.
• Her bir parçanın komutları aynı anda farklı CPU‘lar üzerinde çalıştırılır.

Moore Yasası

• Moore Yasası, Intel şirketinin
kurucularından Gordon
Moore’un 19 Nisan 1965 yılında
ortaya attığı bir yasa
• Moore’a göre, her 18 ayda bir
tümleşik devre üzerine
yerleştirilebilecek bileşen
sayısının iki katına çıkacacağını,
bunun bilgisayarların işlem
kapasitelerinde büyük artışlar
yaratacağını, üretim
maliyetlerinin ise aynı kalacağını
söylüyor.

Paralel Programların Gereksinimi

• Günümüzde hesaplanması oldukça uzun süren problemlerin
çözümlenebilmesi için paralel hesaplama yöntemlerine ihtiyaç
duyuyoruz.
• İnsan genomunun (Gen şifrelerinin) çözümlenmesi,
• Medikal görüntüleme sistemleri,
• Hızlı ve tutarlı arama motorlarının geliştirilmesi,
• Kısa sürede yada anlık trafik ve meteoroloji tahminlerinin hesaplanması,
• Yapay zekaya sahip karar destek sistemleri veya gerçekçi oyun motorlarının
kodlanması
• gibi problemlerin çözümünde yüksek hesaplamaya ihtiyaç duyuyoruz.

Paralel Programlama Nasıl Fayda Sağlıyor?

Paralel programlama bize 

• Zaman ve paradan tasarruf.
• Kompleks ve Büyük ölçekli problemlerin çözümlenmesi.
• Eşzamanlı olarak veri işlemek.
• Problemi bilgisayar ağları vasıtasıyla dağıtarak problemleri farklı
noktalarda kolektif olarak çözmek.
• Paralel donanımların daha iyi anlaşılması.

gibi faydalar sağlar.

Paralel Programlama Örneği

• Bir örnek ile açıklayalım.
• N adet değerin bir fonksiyon ile hesaplanarak toplanması:
• Klasik yöntem ile (Serial code)


sum = 0;
for (i = 0; i < n; i++) {
x = Compute next value(. . .);
sum += x;
}

• Sonrasında farz edelim ki p adet core’a sahip bir bilgisayarımız olsun ve
p<

my sum = 0;
my first_i = . . . ;
my last_i = . . . ;
for (my_i = my_first_i; my_i < my_last_i; my_i++) {
my_x = Compute next value(. . .);
my_sum += my_x;
}

• my_ ifadesi her bir core için çalışmaktadır.

N=24 ve p=8 olduğu durumda bir seri içindeki değerleri toplayalım
• 1, 4, 3, 9, 2, 8, 5, 1, 1, 6, 2, 7, 2, 5, 0, 4, 1, 8, 6, 5, 1, 2, 3, 9,
• Her bir core için bu değerlerin (my_sum) toplamı:

core – 0 1 2 3 4 5 6 7

my_sum – 8 19 7 15 7 13 12 14

• Son olarak bir master core ile tüm core’lar da hesaplanan değerleri (my_sum)
toplayarak toplam değeri hesaplamamız gerekli:

if (I’m the master core) {
sum = my_x;
for each core other than myself {
receive value from core;
sum += value;
}
else {
send my_x to the master;
}

• Bu değeri de 8+19+7+15+7+13+12+14=95 olarak hesaplayabiliriz.
• Bu yöntem ile master core 0 diğer 7 adet core’dan gelen veriyi toplayarak
genel toplamı hesaplayacaktır.
• Bu işlemi seri olarak yapsaydık 24 adımda tamamlayabilirdik.
• Paralel olarak yaptığımızda bu görev 3+ 7=10 adımda (instruction
cycle) da tamamlanacaktır.

Farkları Nedir?

• Her iki paralel yöntem arasındaki fark core sayısı artıkça daha belirgin
hale gelmektedir.
• Örn: 1000 core’a sahip olan bir sistemde birinci yöntemin işlemi tamamlaması
999 adım sürmesine rağmen ikinci yöntem bu işlemi sadece 10 adımda
tamamlayacaktır. (neredeyse 100 kat daha hızlı bir şekilde)
• Paralel programların verimliği senkronizasyon ve geliştirilen
algoritmaya oldukça bağımlıdır.


Paylaşım , Takip İçin
0 0 votes
Article Rating

Bir Cevap Yazın

0 Yorum
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
HAYALİNDEKİ YAZILIM
%d blogcu bunu beğendi: