Published on

HPC(High Performance Computing) Nedir? Neden İhtiyaç Duyuluyor?

Authors
  • avatar
    Name
    Alperen Önal
    Twitter

HPC Nedir?

HPC(High Performance Computing), yüksek hızlı işlem gücü, yüksek hızlı bilgisayar ağları, büyük kapasiteli ve yüksek hızdaki belleklerden oluşur. Büyük miktardaki ve karmaşık yapıdaki görevleri ufak parçalara bölerek paralel işlemler ile olabildiğince kısa sürede gerçekleştirmeyi sağlar.

HPC genellikle simülasyon yazılımlarını ve makine öğrenmesi modellerini çalıştırmak için kullanılmaktadır[1].

HPC Nerelerde Kullanılır?

  • İlaç etkilerinin simülasyonu
  • DNA iplikleriyle simülasyon
  • Hava durumu modelleme
  • Molekül tabanlı simülasyon
  • Makine öğrenmesi ve veri analizleri

vb. karmaşık ve çok fazla hesaplama yoğunluğu olan problemleri kısa zamanda çözmek için kullanılmaktadır.

HPC Hangi Bileşenlerden oluşur?

Temel olarak 3 bileşen vardır diyebiliriz[2]:

  1. Compute(Hesaplama): Compute, node ve cluster yapılarından oluşmaktadır. Node: Bağımsız bir hesaplama birimini ifade eder. Her node, kendi işlemcileri, belleği ve depolama alanı olan bir bilgisayardır. Ancak bu bilgisayarlar kullandığımız bilgisayarların aksine çok çekirdekli ve yüksek performanslı bilgisayarlardır. Cluster: Yüksek hızdaki ağ ile birbirlerine bağlanan ve paralel işlem yürütebilen birden fazla sayıdaki node'lerin oluşturduğu yapıdır. Yazılım programları veya algoritmalar ufak parçalara bölünerek cluster'daki node'ler arasında paralel olarak çalıştırılır.
  2. Ağ(Network): Cluster çıktıyı yakalamak için veri depolama alanına yüksek hızdaki ağ ile bağlanır.
  3. Storage(Depolama): Her node'nin kendine ait depolama alanları vardır. Bu depolama alanlarında kendilerine düşen görev parçacıklarını tutarlar ve işlemlerini yaptıktan sonra paylaşımlı depolamaya aktarırlar.

HPC, bir veya birden fazla cluster'dan oluşur da diyebiliriz.

Örnek resim[1]:

Mesela bu resimde 1 adet cluster var ve cluster içerisinde 9 adet node bulunuyor. Buradaki her bir node birbirlerine bağlı. Cluster yapısı, Login node'una ve File server'a(Storage) ağ ile bağlı durumda.

Adım adım:

  1. Kullanıcı Login node aracılığıyla HPC'ye işlemi veriyor.
  2. Management node, işlemi ufak parçalara bölerek ile cluster içerisindeki node'lara dağıtıyor.
  3. Cluster içerisindeki node'lar paralel olarak kendilerine düşen işlem parçalarını yürütüyor.
  4. Çıktı, storage'ye yazılıyor ve bir node veya birden fazla node kullanılarak bu parçalar bir araya getirilerek sonuca ulaşılıyor.

Tabii ki, bu örnek kesinlik taşımıyor. HPC'nin mimarisine göre değişkenlik göstermektedir.


Örnek Bir Kullanım Alanı: NWF(Numerical Weather Prediction)

NPW(Numerical Weather Prediction), hava durumunun tahmini için kullanılan simülasyon modelidir. Birçok diferansiyel formüllerden ve çeşitli çevre değişkenlerden oluşmaktadır. Hava durumunun NPW modeli ile hesaplanması için hava durumu tahmini sağlanacak bölge grid'lere(ızgara) bölünür. Bu grid'ler ne kadar ufaltılırsa doğruluk da eşit oranda artabilir.

Örneğin[3]:

Atmosferdeki değişkenlerin gelişimini belirleyen denklemler.
  1. grid kutusu sayısı = enlem sayısı x boylam sayısı x level sayısı
  2. Toplam değişken sayımız = grid kutusu sayısı x 7

Grid kutusu sayısı: Mesela, İstanbul'un hava durumunu ölçmek için İstanbul'u enlem, boylam ve level sayısından oluşan karelere bölerek toplamda kaç grid'imiz olduğunu buluyoruz. Level sayısı: Dahil ettiğimiz atmosferdeki katman sayısı.

Mesela, 10 enlemimiz, 10 boylamamız, 20 dikey levelimiz olsun.

Grid kutusu sayısı = 10 x 10 x 20 = 2000

Toplam değişken = 2000 x 7 = 14000

Genellikle, bu boylam ve enlem sayısı 10'dan çok daha fazla olacağı için değişken sayısı 10'un üzeri şeklinde artacaktır. Bu da grid sayısı arttıkça milyonlarca değişken olacağını bize söylüyor. Tüm bu işlemleri belirli bir zaman aralığında tekrar tekrar yapacağız. Örneğin, 1 saat aralıklarla veya 3 saat aralıklarla bu da zaten milyonlara varabilen değişken sayılarını daha da arttırıyor.

NPW'yi daha fazla araştırmak için: inscc.utah.edu/~pu/6500_sp12/Pu-Kalnay2018_NWP_basics.pdf

NPW Örneğinde HPC İhtiyacı

Bu kadar çok değişkeni kısa bir sürede işlemek zorundayız. Çünkü hava durumunu tahmin etmeye çalışıyoruz ve bunu olabildiğince erken şekilde hesaplayıp yayınlamalıyız. Bu akşamın hava durumunu 2 günde hesapladığımızı düşünün. 2 gün sonrasında bu sonuca ulaşmanın artık hiç bir anlamı olmayacaktır. HPC, yukarıdaki her bir diferansiyel işlemleri node'lara dağıtarak hızlı bir şekilde işleyebilir.

Sonuç(HPC'yi hangi durumlarda kullanmalıyız?)

Eğer aşağıdaki durumlardan birine sahipsek kullanmamız mantıklı olabilir;

  • Zamanın bizim için değerli olduğu durumlarda.
  • Tek bir bilgisayarın hesaplamasının imkansız olduğu durumlarda.
  • Verinin büyüklüğünün ve karmaşıklığının, geleneksel hesaplama yöntemleriyle işlenemeyecek kadar fazla olduğu durumlarda.

HPC Hizmeti Sunan Bazı Firmalar

  • AWS
  • Azure
  • NVDIA
  • Google
  • IBM
  • Hewlett Packard Enterprise (HPE)

Kaynakça: