HPC (High Performance Computing)

Merhaba;
Bugün sizlere “High Performance Computing (HPC)” ile ilgili birşeyler anlatmaya çalışacağım. Öncelikle “HPC” dediğimizde ne anlamalıyız? HPC, çok genel olarak birden fazla sunucunun hesaplama gücünü çok yüksek performans sağlayacak şekilde biraraya getirerek bilimde, mühendislikte, iş dünyasında karşımıza çıkan büyük problemleri çözmemize olanak sağlayan bir teknolojidir. Ben Tübitak’ta master tezimi hazırlarken, yıllar önce (Tarihi söylemiyorum. Yaşım ortaya çıkmasın diye. ☺ ) , Cray ismini duymuştum. Nasıl bir makine bu diye sorduğumda o dönemdeki uzman arkadaşlara, “inanılmaz bir makine. Çok kısa zamanda inanamayacağın hesaplamalar yapabiliyor ve de çok pahalı cevabını almıştım”. O zaman aklımda “SuperComputing” ile ilgili beliren şey, insanoğlunun bilimde, mühendislikte evrenin başlangıcı, yeni kanser ilaçları, ölümcül hastalıklara tedavi şekli geliştirme gibi zor konulara çözüm bulmak için kullandığı devasa makinelerin olduğuydu. Günümüzde, HPC’yi bireysel “node” ların (sunucuların) kompleks problemlere çözüm bulmak amacıyla birbirleriyle etkileşimli olarak çalıştığı bir “cluster” yapı olarak tanımlamayı tercih ediyorum. Kullandığınız “laptop/desktop” ların nasıl üzerinde bir işletim sistemi olmadan bir anlamı yoksa, HPC yapısıda üzerinde bir işletim sistemi olmadan çalışmayacaktır. İki popüler seçim olarak karşımıza Linux/Unix ve Windows işletim sistemleri çıkmaktadır. İşletim sistemi seçiminizi büyük olasılıkla kullanmayı düşündüğünüz yazılımlara bağlı olarak yapıyor olacaksınız. Örneğin, Excel’i paralel operasyonlar için kullanacaksınız büyük olasılıkla Windows tabanlı “Cluster” yapılar oluşturmayı tercih edeceksiniz. Açıkcası, bir HPC sistem tasarlamadan önce/satın almadan önce öncelikle, bu sistem ile ne yapmayı düşündüğünüzü net olarak tanımlamanız doğru olacaktır.

HPC için bazı eklemeler yapacağım. HPC, yüksek hızlarda devasa verilerin analiz edilmesi yeteneğine sahiptir. Şöyle bir genelleme yapmak yanlış olmaz, normal sistemlerde aylar süren işlemler HPC ile günler, saatler, hatta dakikalar mertebesine indirilebilir. HPC’nin temel kullanıldığı yerler, analiz, veri madenciliği, simülasyon, modelleme, yazılım geliştirme, kompleks verinin görselleştirilmesi, kompleks matematiksel analizler olarak sıralanabilir. Elbette, HPC, yeni ürün geliştirme veya mevcut ürünün yeniden dizaynı, üretim ve dağıtım süreçlerinin optimize edilmesi, büyük veri setlerinin analizi, büyük ölçekli araştırma projeleri, geleceği öngörmek için çok büyük miktardaki verilerin analizi, tüketici eğilimlerinin, profillerinin analizi, araştırma sonuçlarını anlamlandırmak için bilgisayar görsellerinin oluşturulması, kompleks proseslerin modellenmesi, simülasyonları amaçlı da kullanılmaktadır.

HPC özellikle sağlık ve dirimbilim (bioscience) de yaygın kullanım alanları bulmaktadır. Fiziksel testlerin mümkün olmadığı konularda modelleme amaçlı yaygın kullanılmaktadır. Örneğin yeni ilaç ve ameliyat teknikleri geliştirirken, yaşlanma sürecinin detaylı analizinde, yüksek verinin yönetilmesinin gerektiği genetik araştırmalarda kullanım alanları vardır.

HPC’nin genel anlamda mimarisinden bahsetmek istiyorum.

Şekilde görüldüğü gibi, yapıda “Head” dediğimiz “master node” ve “worker/compute node” lar mevcuttur. “Head node”, çok büyük miktarda disk alanı içerebilir ve bu alan “worker node” lara NFS üzerinden dağıtılabilir. “Worker node” sayısı çok fazla olabilir. örneğin, 3936 nodes. ☺ Sizi şaşırtmasın. Dizayn farklı şekillerde yapılabilir. Mesela “head node”, birden fazla “node” olarak yapılandırılabilir.

HPC’nin inşa bloklarını sıralayacak olursak karşımıza, “node”lar, “node” ların birbirleriyle hızlı bir şekilde haberleşmesi için “interconnect” ler, depolama birimi (NFS veya Blok bazlı), işletim sistemi, “cluster” yazılımı, dosya sistemi çıkar. Elbette kendiniz bir HPC sistemi oluşturabilirsiniz. Buna rağmen, piyasada HPC’ye uygun özelleştirilmiş “appliance” larıda bulabilirsiniz. Kurulum, konfigürasyon, yönetim ve destek süreçleri bu tarz bir “appliance” için daha kolay olacaktır.

HPC’nin bulut üzerindeki gelişimine de değinmekte fayda var. HPC, bulut ortamında yeni olmakla beraber hızla gelişim göstermektedir. Amazon Web Services, Google Cloud Platform, Microsoft Azura, IBM Spectrum Computing, Penguin Computing on Deman (POD) “cloud” üzerinde HPC desteği veren firmalar olarak karşımıza çıkmaktadır. Hızlı bir şekilde farklı oyuncularda markete girmektedir.

“On-premises” konumlandıracağınız HPC çözümleri olarak karşımıza pek çok büyük oyuncu çıkmaktadır. Fujitsu, “Primeflex for HPC” ile; IBM, “Linux Cluster larla yapılandırılan power sistemlerle”; HPE, “HPC Cluster Platform”, “HPC sunucularla”; Dell-EMC, “PowerEdge C6320, FC430” sucuları ve “Dell HPC NFS , Lustre” depolama birimleriyle HPC çözümleri sunmaktadır.

HPC’nin çalışma mantığına daha teknik olarak konuyla ilgili ikinci yazımda değiniyor olacağım. Bu yazımda genel anlamda HPC ile ilgili bilgi aktarmak istedim.
16 Mart 2017 – Asiye Yiğit
Kaynakça:
http://insidehpc.com/hpc-basic-training/what-is-hpc/
http://www.hpcwales.co.uk/hpc-uses
http://hpc.fs.uni-lj.si/sites/default/files/HPC_for_dummies.pdf