36
ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME Ecem İren Halilcan Can Akince Aylin Kantarcı Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Gediz Üniversitesi Ege Üniversitesi Ege Üniversitesi

ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE

PARALEL YAZILIM GELİŞTİRME

OLANAKLARI HAKKINDA BİR

İNCELEME

Ecem İren Halilcan Can Akince Aylin Kantarcı Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Gediz Üniversitesi Ege Üniversitesi Ege Üniversitesi

Page 2: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

İÇİNDEKİLER

1. Giriş

2. Çok Çekirdekli İşlemcilerin Mimarisi

3. Bu İşlemciler Üzerinde Yazılım Geliştirme

Mimarileri

4. Hyperthreading

5. Bu İşlemcilerin Performanslarını Etkileyen

Faktörler

6. Sonuç

Page 3: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

1.GİRİŞ: Bilgisayar Mimarilerinin Evrilim Süreçleri

CISC (Complex Set Instruction

Computers) İşlemciler:

◦ Karmaşık komut seti

◦ Karmaşık donanım

◦ Yorumlayıcı ile karmaşık karmaşık komutların basit adımlara (mkomutlar) dönüştürülmesi

RISC (Reduced Set Instruction

Computers) İşlemciler:

◦ Basit komut seti

◦ Basit donanım

◦ Yorumlayıcıya ihtiyaç yok

Page 4: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

1.GİRİŞ: Paralel İşletim

Boruhattı (Pipeline): Birim zamanda işletilmeye

başlanan komut sayısında artış olmuştur. Farklı

komut evreleri farklı donanım birimlerinde

Performans artışı vardır.

Şekil 1. a) Beş Birimlik Boru Hattı, b) Her Aşamanın Durumu

Page 5: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

1.GİRİŞ: Paralel İşletim

Superskalar İşlemciler: Çok sayıda işletim

evresine sahip ve diğer evrelere ait

birimlerin bir tane olduğu mimaridir.

Şekil 2. Beş Fonksiyonel Birimlik Süperskalar İşlemci

Page 6: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

I. GİRİŞ: Paralel İşletim

Çoklu İşlemciler: Bir bilgisayarda 2’den fazla işlemci

bulunmaktadır.

Çok Çekirdekli İşlemciler: Çok sayıda çekirdeğe

sahip tek bir işlemci kullanılan mimaridir.

Page 7: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

2. ÇOK ÇEKİRDEKLİ İŞLEMCİ MİMARİSİ

Şekil 3. Çok Çekirdekli Bir İşlemcinin Genel Yapısı

Page 8: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

2. ÇOK ÇEKİRDEKLİ İŞLEMCİ MİMARİSİ Performans Kırılım Noktaları Tüm bellek erişim modelleri işlemci

üzerinde yoğun bir bellek trafiği yaratır:

i. Bir çekirdek üzerinde çalışmakta olan bir iş

parçacığı/süreç, verileri ve çalıştıracağı komutları

kendine ait 1. Seviye Ön Bellekten alır.

ii. Veri/komutun bulunamaması durumunda Paylaşımlı

Ön Belleğe başvurulur.

iii. Yine bulunamazsa, Veriyolu Arayüzü ile ana

belleğe başvurulur.

iv. Bir çekirdekten başka bir çekirdeğe ait

önbellekte bulunan bir veriye de ihtiyaç duyabilir

Çekirdekler arası iletişim

Page 9: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

2. ÇOK ÇEKİRDEKLİ İŞLEMCİ MİMARİSİ Performans Kırılım Noktaları

Donanımın karmaşıklaşması sebebiyle entegre

üzerinde kompleks kontrol ünitesi

Karmaşık işlemci sürücü yazılımı

◦ Ana belleğe yüklü

◦ İşlemcinin çalışması boyunca işlemci ana bellek

arasında yoğun sürücü trafiği

Page 10: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

3. ÇOK ÇEKİRDEKLİ İŞLEMCİLER İÇİN

YAZILIM GELİŞTİRME MİMARİLERİ

* Paralelleştirme Olanakları

* Paralelleştirme Paternleri

Page 11: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

3.1. Paralelleştirme Olanakları

Üst Düzey Olanaklar

Java, Pthreads (POSIX iş parçacıkları

kütüphanesi) gibi kullanıcı seviyesi

kütüphanelerle yazılım geliştirici iş

parçacıklarını OS KONTROLÜNDE yaratır

ve yönetir.

Page 12: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

3.1. Pthreads Kütüphanesi

Şekil 4. Üst Düzeyde Paralel Yazılım Geliştirme Olanaklarına Bir Örnek: Pthreads

Üst Düzeyde

paralelleştirme olanakları,

uygulamaların eş zamanlı

çalışacak farklı görevlere

sahip, modüler bir yapıda

olma durumuna daha

uygundur.

Page 13: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

3.1. Paralelleştirme Olanakları

Alt Düzey Olanaklar

OpenMP: İş parçacıkları doğrudan işlemci sürücü yazılımı tarafından yaratılır ve yönetilir.

1. Yazılım geliştirici kodunu seri olarak yazar.

2. Sonra parelelleştirme olanaklarını analiz eder.

3. Paralelleştirilecek bölgenin başına yani derleyiciye direktifler

yerleştirir.

4. Uygulama çalıştırılacağı zaman işletimine seri olarak başlar.

5. İşlemci kontrolörü paralelleştirme direktiflerine rastladığı

anda direktiflere eklenmiş ifadeleri ve parametreleri göz

önüne alarak uygun şekilde iş parçacıklarını yaratır ve

çekirdeklere atar.

Page 14: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

3.1. Paralelleştirme Olanakları

Üst Düzey olanaklarıyla işlemci sürücüsü OS

aracılığı ile iş parçacıklarını yaratır.

Alt Düzey olanakları ile iş parçacıkları

doğrudan işlemci sürücüsü tarafından yaratılır.

Bu nedenle Alt Düzey olanağı daha hızlı olur.

Page 15: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

3.1. Paralelleştirme Olanakları

Şekil 5. Alt Düzeyde Paralel Yazılım Geliştirme Olanaklarına Bir Örnek: OpenMP

Alt Düzeydeki olanaklar

görevlerin birbirini izleyen

paralelleşebilecek adımlar

şeklinde gerçekleştirilmeleri

durumuna daha uygundurlar.

Paralelleştirilmeyen seri kısımlar

tek bir çekirdek üzerinde

işletilirken paralelleştirilecek

noktalara gelince iş parçacıkları

yaratılır ve çekirdeklere

atanırlar.

Page 16: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

3.2. Paralelleştirme Paternleri

Görev Seviyesi Paralellik

Veri Seviyesi Paralellik

Görev Seviyesi Paralellik:

Birbirinden farklı eş zamanlı görevlerin

bulunduğu uygulamalar için kullanılır.

Genel olarak Üst Düzey Olanaklarının

kullandığı modeldir. (Java, Pthreads)

OpenMP’de de desteklenir.

Page 17: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

3.2. Posix İş Parçacıklarında Görev

Seviyesi Paralellik

Page 18: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

3.2. Paralelleştirme Paternleri

Veri Seviyesi Paralellik

Aynı anda farklı veriler üzerinde aynı işlemler yapılacağı zaman uygundur.

Genel olarak Alt Düzey Olanakları için uygundur. (OpenMP)

Üst Düzey Olanaklarda (Java, Pthreads) yazılım geliştirimini kompleksleştirir: Yazılımcı verileri kendisi iş parçacıklarına dağıtmak zorundadır.)

Page 19: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

3.2. OpenMP’de Veri ve Görev Seviyesi

Paralellik

Page 20: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

3.2. Posix İş Parçacıklarında Veri Seviyesi

Paralellik

Page 21: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

4. HYPERTHREADING

İş parçacığı neden beklemeye geçip işlemciyi

bırakır?

IO beklemesine geçildiğinde

Quantum süresi dolduğunda

Bilgi önbelleklerde yoksa bellek transferi

başlatıldığında

Boru hattında komutlar arası bağımlılık

oluştuğunda

Page 22: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

4. HYPERTHREADING

Durum Depolama Ünitesi: İçerik anahtarlama (context switch) sırasında yeni

çalışmaya başlayan iş parçacığının durum bilgileri bu

ünitede saklanır. Çalışmayı bırakan iş parçacığının durum

bilgileri RAM’a yazılır.

Hyperthreading: Bir çekirdekte 1 yerine 2 donanımsal depolama biriminin

kullanılması: (belleğe durum bilgisini yazmayı ortadan

kaldırır.)

Page 23: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

4. HYPERTHREADING

Neden Hyperthreading beklentileri istenen düzeyde karşılayamadı?

1. Sürekli aynı 2 iş parçacığının seçilmediği

oyun programları gibi uygulamalarda çok

sayıda iş parçacığı üretimi vardır Sürekli

çok sayıda iş parçacığı arasında geçiş yapılır.

2. Daha kompleks işlemci kontrol ünitesi ve

iş dağıtım modülü İşlemci yavaşlaması

Page 24: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

4. HYPERTHREADING

3. Artan donanım yükü Daha çok güç tüketimi

ve ısınma ortaya çıkar Saat frekansı ve işlemci

hızının azalması

4. Bazı OS'ların HT desteğine sahip olmaması

Fiziksel/mantıksal çekirdek ayrımı yoktur.

2 iş parçacığı OS tarafından aynı fiziksel

çekirdeğe atanabilir İş parçacıklarının

çekirdeklere dengesiz dağıtımı söz konusu.

Page 25: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

4. HYPERTHREADING

Öneri:

HT desteğinin tümüyle işlemciden çıkarılması:

◦ Donanım ve OS yükü hafifler

◦ Güç tüketimi, ısı üretimi düşer.

HT'ye göre daha yüksek performans

artışı gerçekleşir.

Page 26: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

5. ÇOK ÇEKİRDEKLİ MİMARİLERİN

PERFORMANS PROBLEMLERİ

* Bağımlılık

* Senkronizasyon

* Ön Bellek Kısıtları

* Çekirdek Sayısı

Page 27: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

5.1. Bağımlılık

Çok çekirdekli işlemciler boruhattı

mimarisine sahiptirler.

Veri bağımlılığı: Boruhattında birbirini

izleyen komutlar aynı veriyi kullanıyorsa eş

zamanlı ve seri işletimler farklı sonuçlar

doğurabilir.

Page 28: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

5.1. Bağımlılık

Bağımlılık Türleri

1. Gerçek Bağımlılık (Read After Write)

Örnek:

Z= X * Y

T= Z+W

Page 29: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

5.1. Bağımlılık

2. Zıt Bağımlılık (Write After Read)

Örnek:

Z= X * Y

X= Y+W

Page 30: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

5.1. Bağımlılık

3. Çıktı Bağımlılığı (Write After Write)

Örnek:

Z= X * Y

Z= T+W

Page 31: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

5.2. Senkronizasyon

Çok sayıda iş parçacığı paralel çalışırken

aynı anda aynı değişkene ulaşmak ister

Senkronizasyon problemleri ortaya çıkar.

Çözüm Değişkenlerin mutex, koşul

değişkeni vs. olanakları korunması Bir

anda 1 iş parçacığı veriye müdahale eder.

Diğer iş parçacıkları beklemede kalır.

Çok çekirdekli mimarilerde senkronizasyon

kaynaklı içerik anahtarlamalar daha çoktur.

Page 32: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

5.3. Ön Bellek Kısıtları

Ön bellek miktarı kısıtlıdır ve çoğu, OS komut

ve veri yapıları ile doludur. Bu durumda çok

sayıda uygulama iş parçacığı ihtiyaç duyduğu

veriyi ve komutu önbellekten alamaz Belleğe

bağlanma durumu söz konusu

İş parçacıklarının yoğun olarak iş yapması

Bellek trafiği artar Bellek kontrolcüsü seri

moda geçer İş parçacıkları seri moda geçer.

Sonuç Paralel yazılım geliştiriminin bir getirisi

olmaz.

Page 33: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

5.4. Çekirdek Sayısı

Uygulama iş parçacıkları ve OS iş parçacıkları

çekirdeklere dağıtılır.

Uygulama iş parçacıkları ve OS iş parçacıkları

kendi aralarında sık sık iletişim halindedir

Koordinasyon ve veri paylaşımı için

Çekirdekler arası yoğun iletişim

Page 34: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

5.4. Çekirdek Sayısı

İletişimin kontrollü sağlanması Kontrol

ünitesinin karmaşıklığı artmıştır.

Karmaşıklık Yer, güç ve ısı problemleri

yaratır Saat frekansı düşer İşlemci

frekansı düşer.

Sonuç İşlemcide çok sayıda çekirdeğe

yer verilmemelidir Çekirdekler arası

iletişim yükü azalır ve saat frekansı artar.

Page 35: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

6. SONUÇ

HT teknolojisinin iptal edilmesi Daha az

problem ve daha yüksek performans

OS ve uygulama süreçlerinin birbirinden ayrı

olarak çalışacağı 2 çekirdeğin yeterli olması

Donanım ve OS basitleşecek ve 2 tür süreç

grubu için farklı iş dağıtımı stratejileri ortaya

çıkacaktır.

Page 36: ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM …Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. ... 2. Çok Çekirdekli İşlemcilerin Mimarisi 3. Bu

TEŞEKKÜR EDERİM.