High Performance Computing (HPC) yani Yüksek Başarımlı Hesaplama kavramının temelinde bilgisayarların hesaplama
(yani
işlemci) güçlerini bir araya getirerek tek bir sistem gibi çalıştırma
düşüncesi yatmaktadır. Bununla birlikte elde edilen yüksek hesaplama gücü ile sonuç
üretmesi günler hatta haftalar alan programlardan daha kısa sürede ve maksimum
başarım ile sonuç alınması hedeflenmektedir.
HPC ile Küme Mimarisi (Cluster Architecture with
HPC)
1. Küme mimarisi, birden fazla sıradan bilgisayarın ya da sunucunun
birbirine bir ağ üzerinden bağlanması ve böylece tek bir yüksek performanslı
yapı olarak çalıştırılması için geliştirilmiş bir teknolojidir.
2. Yüksek başarımlı
hesaplamalarda daha kısa sürede daha kesin sonuç elde etmek için işlemci sayısı
ve hafıza miktarlarının artırılması gerekmektedir.
3. İşlemci sayısının tek bir sunucu üzerinde artırıldığı durumda belli bir
işlemci sayısından sonra maliyet katlanarak artar. Bu durumda makul bir maliyete sahip 2 (dual) veya 4 (quad) işlemcili sunucuların birleştirilmesi ile oluşturulan HPC Cluster çözümleri çok daha az
maliyetle performans problemini halleder.
Küme Sistemlerinin
Avantajları (Cluster Systems Advantages)
Büyüyebilme Açıklığı: Daha yüksek hesaplama gücüne ihtiyaç duyulduğu zaman sadece küme içindeki
sunucu (compute node) sayısı istenilen adette artırılarak istenen güç elde edilir.
Maliyet: Bir
sunucunun maliyeti içerisine dahi edilecek işlemci sayısının artmasıyla
yükselir. Ancak işlemci sayısını artırma metodu olarak sunucu
sayısını artırma yoluna gidilirse maliyet çok büyük ölçüde azalır.
Yedekleme: Sunucu
kümesi içindeki herhangi bir sunucunun arızalanması küme sisteminin çalışmasını
engellemez. Sunucu sayısı kadar yedekleme sağlanır.
Küme Sistemlerinde Bağlantı (Cluster
Systems Interconnect)
Kümeyi oluşturan
sunucuların tek bir sistem gibi çalışması için birbirleriyle çok hızlı
haberleşmelerini sağlayacak bir ağ alt yapısına (interconnect)
ihtiyaç vardır. Gigabit Ethernet
teknolojisinin bant genişliği 1Gb/s iken Infiniband Duplex teknolojisinin bant genişliği 40 Gb/s dir.
HPC Sistemlerin
Uygulama Alanları (HPC Systems Application Areas)
Mühendislik
1. Uçak, gemi ve otomobil tasarımı
2. Ürün tasarımı ve
testleri
3. Araç çarpışma
testleri
4. Nükleer kazalar
sonucu oluşabilecek serpintiler
Ekonomi
1. Uzun vadeli ekonomik
öngörüler
2. Yüksek doğrulukta
borsa tahminleri
3. Bankaların risk
analizi
Hava Araştırmaları
1. 4 ya da 5 günlük hava
tahminlerinin süresi HPC ile 10 güne
kadar çıkmaktadır.
Malzeme
Tahminleri
1. Yarıiletken cihaz
simulasyonları
2. İnşaat sektörü için
hafif ve dayanıklı malzeme tasarımı
3. İlaçların etki tahmin
simülasyonu
Savunma
1. Savaş oyunları
simülasyonları
2. Şifre deşifre simülasyonları
Hızlanma Faktörü (Speedup Faktor)
Tek işlemcili sistemde en iyi algoritma kullanılmalıdır. Paralel uygulama için ise algoritma farklı olabilir.
Paralel İşleme (Parallel Processing)
1’den 9’a kadar sayıların toplamını seri ve
paralel olarak işleyelim. Seri işlendikten sonra 2 işlemciyle paralel işlenirse
2x kadar hızlanma (speedup) sağlanır mı?
Seri İşleme
1. 1
+ 2 + 3 + 4 + 5 + 6 + 7 + 8
2. 3 + 3 + 4 + 5 + 6 + 7 + 8
3.
6 + 4 + 5 + 6 + 7 + 8
4. 10 + 5 + 6 + 7 + 8
5. 15 + 6 + 7 + 8
6. 21+ 7 + 8
7. 28 + 8
36
Paralel İşleme
1. 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8
2. 3 + 7 + 5 + 6 + 7 + 8
3. 10 +11 + 7 + 8
4. 21+15
36
Görüldüğü gibi 2 kat hızlanma sağlanamadı ancak 2 değerine 100000 kadar sayının toplamında yakalanacağı kesindir.
Von
Neumann Mimarisi (Von Neumann Architecture)
Von Neumann mimarisi veri ve komutları tek
bir yığın(depolama) biriminde bulunduran bilgisayar tasarım örneğidir. Paralel mimariler dışında Turing makinesi'nin ilkelerini
uygulayan her bilgisayarı tanımlamak için kullanılır. Merkezi işlem biriminin
bağımsızlığı dolaylı olup, saklı yazılım bilgisayarı (stored program computer) ile
eşanlamlı olarak kullanılır.
İlk hesap makineleri değişmez yazılımlara sahiptiler. Bir makine hangi işlemi gerçekleştirmesi için
tasarlandıysa sadece onu yerine getirebiliyordu. Günümüzde bazı basit
bilgisayarlar hala bu yapıyı kullanmaktadırlar. Bu tür bilgisayarların yeni bir
görevi yerine getirebilmesi için donanımlarının tekrar tasarlanması zorunludur.
Bu zorlukların aşılması saklı yazılım
bilgisayarı ilkesi ile gerçekleşmiştir. Söz konusu makinenin
yürütebileceği bir dizi komutun tanımlanması ile bilgisayarlar çok daha esnek
bir yapıya kavuştular. Komut ve verinin aynı biçimde saklanması ise, bu ilke
sayesinde yazılımın kolayca değiştirilebilmesine olanak tanımıştır.
Seri
Hesaplama (Serial Computing)
Geleneksel olarak oluşturulan yazılımlar seri hesaplama göre yazılmıştır. Tek bir merkezi işlem birimi (CPU) sahip tek bir
bilgisayar üzerinde çalıştırılır. Komutlar birbiri ardına yürütülür.
Yalnızca bir zaman çevriminde bir komut çalıştırılabilir.
Paralel
Hesaplama (Parallel Computing)
En basit anlamda, paralel hesaplama eş zamanlı
kullanımı sağlar. Birden fazla işlemci kaynaklarıyla bir hesaplama sorunu
çözülebilir. Hesaplama sorunu eş zamanlı çözülebilir şekilde ayrı bölümlere ayrılmıştır. Her kısmındaki komutlar farklı CPU'lar da aynı anda
yürütülür.
Paylaşımlı
Bellek Mimarisi (Shared Memory Architecture)
Paylaşılan bellek paralel bilgisayarlar için büyük
ölçüde değişebilir, ancak tüm işlemcilerin genellikle ortak genel adres alanına erişmek için yetenekleri vardır. Çoklu işlemciler bağımsız olarak faaliyet aynı
bellek kaynaklarını paylaşabilir. bir işlemci tarafından etkilenen bir bellek
konumundaki değişiklikler diğer tüm işlemciler tarafından görülebilir.
Dağıtık
Bellek Mimarisi (Distributed Memory Architecture)
Veri ve Görev Paralelliği (Data ve
Task Parallelism)
Senaryo:
Senaryo:
20 kişilik bir öğrenci
grubuna 5 farklı sorudan oluşan bir test yapılıyor. Soruları değerlendirmek
üzere 5 kişilik bir öğretmen grubu görevlendiriliyor.
1. Senaryo: Her bir
öğretmen bütün öğrencilerin sınav kağıtlarında sadece bir soruyu
değerlendirmekten sorumlu tutuluyor. (1. öğretmen tüm 1. soruları değerlendirir gibi)
2. Senaryo: Sınav
kağıtları 5'e bölünüyor ve her bir öğretmen kendisine verilen 4 adet sınav
kağıdındaki bütün soruları değerlendiriyor.
Her iki senaryo için de
her bir hoca toplamda 20 soru değerlendirmiş olur. 1. senaryo görev
paralelliğine 2. senaryo ise veri paralelliğine örnek olarak verilebilir.
Veri ve Görev Paralelliği Simülasyonu |
Flynn'in
Klasik Sınıflandırması (Flynn's Classical Taxonomy)
Paralel bilgisayarları sınıflandırmanın farklı
yolları vardır. Daha yaygın olarak kullanılan sınıflandırmalardan biri, 1966
yılından bu yana kullanımda olan Flynn Klasik Sınıflandırması'dır. Bu sınıflandıma da bulunan tek veya çoklu boyutların her iki olasılığı da mümkündür. Flynn Klasik Sınıflandırma'ya göre 4 olası sınıflamaları tanımlar.
Flynn Klasik Sınıflandırma Simülasyonu |
Tek
Komut, Tek Veri (Single Instruction, Single Data (SISD))
Tek
Komut, Çok Veri (Single Instruction, Multi Data (SIMD))
Çok
Komut, Çok Veri (Multi Instruction, Multi Data (MIMD))
Tek Program, Çok Veri (Single Program, Multiple Data (SPMD))
1. SPMD en yaygın modeli olarak kullanılır.
2. SIMD ve MIMD içine dahil edilebilir.
3. Her aşamada aynı programı çalışır fakat farklı görevler yapılır.
4. Her işleme bir rank(rütbe) atanır. (master/slave)
4. Her işleme bir rank(rütbe) atanır. (master/slave)
Tek Program, Çok Veri Simülasyonu |
Parçalara
Ayırma (Partitioning)
Bu işlem ayrışma ve bölümleme olarak da bilinir. Paralel hesaplama çalışmalarını
parçalamanın iki temel yolu vardır.
Alan
Ayırma (Domain Decomposition)
Bu tür bir sorunda, ilişkili veriler ayrıştırılır. Her paralel görev daha sonra, verilerin bir kısmının üzerinde
çalışır.
Alan Ayırma Simülasyonu |
Fonksiyonel
Ayırma (Functional
Decomposition)
Bu yaklaşımda, hesaplama gerçekleştirilecekse manipüle edilmiş verilere göre ayrılır. Her görev daha sonra tüm verinin bir kısmını
gerçekleştirir.
Fonksiyonel Ayırma Simülasyonu |
Paralel
Programlama Modelleri (Parallel Programming Models)
Mesaj Geçiren Model (Message
Passing Model)
Hesaplaması sırasında görevler kümesi kendi yerel bellek kullanır. Görevler ileti gönderme ve alma yoluyla iletişim
yoluyla veri alışverişini sağlar.
Veri
Paralel Modeli (Data Parallel Model)
Paralel işlerin çoğunu bir veri seti üzerinde
işlemleri gerçekleştirmeye odaklanır. Veri kümesi, genellikle, bir dizi gibi ortak bir yapı halinde düzenlenmiş görevler kümesi aynı veri yapısı üzerinde çalıştırılır, ancak her görev aynı veri yapısının farklı bir bölümünü çalıştırır.
Veri Paralel Modeli Simülasyonu |
Paralel
Hesaplama İlkeleri (Principles of Parallel Computing)
1. Paralellik ve Amdahl Yasası
2. Veri Lokasyonunu Koruma
3. Yük Dengeleme
4. Koordinasyon ve Senkronizasyon
5. Performans Modelleme
Tüm bu öğelerin değerlendirilmesi paralel
programlamayı daha da zorlaştırmaktadır.
Paralel Program
Oluşturmanın 4 Adımı (4 Steps in Creating a Parallel Program)4 Adımın Simülasyonu |
Ayrıştırma
(Decomposition): Görev sayılarını hesaplama.
Atama
(Assignment): Görevlerin atanması.
Orkestrasyon
(Orchestration): Veri erişimi, iletişim,
senkronizasyon.
Haritalama
(Mapping): İşlemci süreçleri.
Amdahl Yasası (Amdahl’s Law)
Bilgisayar mimarı Gene Amdahl'ın ismini alan Amdahl Yasası, sistemin bir parçasının
hızlandırılması sonucunda, sistemin bir bütün olarak ele alındığında toplam
hızlanmasının ne olacağını hesaplamak için kullanılır. Sıklıkla, birden fazla
işlemci kullanıldığında erişilebilecek azami hızlanmayı tahmin etmek için
paralel hesaplamalarda da kullanılır.
Basit bir örnekle, 100 saatlik çalışmanın %20’lik
kısmı paralel hale getirilebiliyorsa, %80’lik kısım normal çalışacak bu
durumda, algoritma en iyi paralelleştirmeye bile tabi olsa en fazla 20 saatlik
zaman kazanılabilecektir.
Amdahl Yasası'nın genelleştirilmiş hali: