/ Blog

CPU Cluster Kurulumu: Mimari, Yazılım Yığını ve En İyi Uygulamalar

AMD EPYC ve Intel Xeon tabanlı CPU cluster mimarisi, SLURM iş planlayıcısı, InfiniBand ağ yapılandırması ve performans ince ayarı için kapsamlı teknik rehber.

Yüksek başarımlı hesaplama (HPC) altyapısı kurulumunda en yaygın soruların başında şu gelir: GPU mu yoksa CPU cluster mı? Her ikisi de farklı iş yükü profillerine hitap eder. Bu rehber, CPU cluster mimarisini, bileşenlerini, kurulum sürecini ve sık karşılaşılan sorunlarla çözümlerini teknik bir perspektiften ele almaktadır.

Mimari Temeller

CPU cluster, yüksek hızlı bir ağ aracılığıyla birbirine bağlı çok sayıda hesaplama düğümünden oluşan paralel işlem altyapısıdır. Her düğüm bağımsız bir sunucu olup kendi işlemcisini, belleğini ve yerel depolama alanını barındırır. İş yükleri ise merkezi bir iş planlayıcısı tarafından bu düğümlere dağıtılır.

Modern CPU cluster’larında iki ana işlemci platformu öne çıkmaktadır. AMD EPYC 9004 (Genoa) serisi soket başına 96 çekirdeğe, 12 kanal DDR5 belleğe ve 384 MB L3 önbelleğe ulaşırken, Intel Xeon 6 (Granite Rapids) 128 çekirdeğe ve 504 MB L3 önbelleğe sahiptir. Her iki platform da PCIe Gen 5 ile HDR/NDR InfiniBand bağlantısını destekler.

Cluster boyutu 8 düğümden başlayıp yüzlerce düğüme kadar ölçeklenebilir. Başlangıç kapasitesi ihtiyaçlara göre belirlenmeli; ancak mimari ileride genişletmeye elverecek biçimde tasarlanmalıdır.

Hangi İş Yüklerinde CPU Cluster Tercih Edilmeli?

GPU hızlandırması her hesaplama problemine uygun değildir. Aşağıdaki senaryolarda CPU cluster genellikle daha verimli ve maliyet etkin bir seçenektir:

MPI tabanlı paralel simülasyonlar: OpenMPI veya MPICH ile yazılmış mevcut kodlar, GPU’ya taşıma gerektirmeden doğrudan cluster üzerinde çalışır. Kod tabanınız mevcutsa geçiş maliyeti neredeyse sıfırdır.

Moleküler dinamik: GROMACS, NAMD ve LAMMPS yıllardır CPU cluster üzerinde optimize edilmiştir. Bu yazılımlar, özellikle büyük sistem boyutlarında CPU’da güvenilir ve öngörülebilir ölçeklenme sunar.

CFD ve yapısal mekanik: OpenFOAM, Fluent, Ansys Mechanical ve Abaqus gibi mühendislik simülasyon araçları, yüksek çekirdek sayısından doğrudan faydalanır. İş bölümleme (domain decomposition) yaklaşımı bu araçların temelini oluşturur.

Monte Carlo simülasyonları: Bağımsız paralel çalışmalar (embarrassingly parallel workload) doğrusal ölçeklenme sağlar; ek iletişim yüküne ihtiyaç duymaz.

SLURM İş Planlayıcısı Yapılandırması

SLURM, HPC ortamlarında fiili standart haline gelmiş kaynak yönetim sistemidir. Temel yapılandırma dosyaları slurm.conf ve gres.conf‘tur.

Tipik bir SLURM iş betiği şu şekilde görünür:

#!/bin/bash
#SBATCH --job-name=cfd_sim
#SBATCH --nodes=16
#SBATCH --ntasks-per-node=96
#SBATCH --time=48:00:00
#SBATCH --partition=epyc
#SBATCH --output=cfd_%j.out

module load openmpi/4.1.6
module load openfoam/v2312

cd $SLURM_SUBMIT_DIR
mpirun -np $SLURM_NTASKS simpleFoam -parallel

Partition tasarımında farklı donanım gruplarını (EPYC, Xeon, yüksek bellekli düğümler) ayrı partition’lara atamak, kullanıcıların iş yüklerine uygun kaynağa yönlendirilmesini kolaylaştırır.

InfiniBand Ağ Yapılandırması

MPI iş yüklerinde düğümler arası gecikme ve bant genişliği doğrudan ölçeklenme verimliliğini belirler. Standart 100GbE Ethernet, büyük ölçekli MPI iletişiminde yetersiz gecikme sergileyebilir. Bu nedenle HDR InfiniBand (200 Gb/s) veya NDR InfiniBand (400 Gb/s) kullanımı önerilir.

Performanslı MPI iletişimi için UCX (Unified Communication X) framework ayarları kritik önem taşır. UCX_TLS=rc,sm ayarı InfiniBand RC taşımasını ve paylaşımlı bellek iletişimini etkinleştirir. UCX_NET_DEVICES ile doğru ağ arayüzünü belirtmek, yanlış arayüz seçiminden kaynaklanan performans kayıplarını önler.

Paralel Dosya Sistemi Seçimi

Yüzlerce çekirdeğin eş zamanlı okuma/yazma yaptığı ortamlarda NFS yetersiz kalır. İki ana açık kaynaklı alternatif öne çıkar:

BeeGFS: Kurulumu ve yönetimi görece kolay, ölçeklenebilir bir paralel dosya sistemidir. Metadata ve depolama sunucularını birbirinden ayırır; yatay ölçeklenme ile düzinelerce GB/s toplam bant genişliğine ulaşılabilir.

Lustre: Dünyanın en büyük HPC sistemlerinde kullanılan, olgun ve performans odaklı dosya sistemidir. Yönetim karmaşıklığı BeeGFS’e kıyasla daha yüksektir ancak uç performans gereksinimlerinde tercih edilir.

Stripe genişliğini iş yüküne göre ayarlamak kritiktir. Büyük sıralı yazma işlemleri için geniş stripe (örneğin 4-8 OST), küçük rastgele erişim için dar stripe daha iyi sonuç verir.

Sık Karşılaşılan Sorunlar ve Çözümler

NUMA mimarisinden kaynaklanan performans kaybı: AMD EPYC işlemciler NUMA topolojisi içerdiğinden süreçlerin bellek erişim deseni kritik önem taşır. numactl --membind veya OpenMPI’ın --bind-to core seçeneği ile süreçleri NUMA düğümlerine bağlamak bellek bant genişliği kayıplarını önler.

MPI süreçleri arası dengesiz iş yükü: İş bölümleme stratejisi uygulamanın ölçeklenme verimliliğini doğrudan etkiler. OpenFOAM ve benzeri araçlarda decomposePar parametrelerini optimize etmek gerekir.

Dosya sistemi darboğazı: Çok sayıda küçük dosya oluşturan iş yükleri metadata sunucusunu yoğunlaştırabilir. Bu tür iş yükleri için yerel SSD üzerinde geçici çalışma dizinleri kullanmak ve sonuçları paralel dosya sistemine toplu aktarmak etkili bir yaklaşımdır.

hugepages yapılandırması: Büyük bellek footprint’li uygulamalarda hugepages etkinleştirmek TLB miss oranını düşürür ve belirgin performans kazanımı sağlar. /etc/sysctl.conf üzerinden vm.nr_hugepages değeri ayarlanmalıdır.

Performans Doğrulama ve Kabul Testi

Cluster tesliminden önce standart benchmark’larla tasarım hedeflerine ulaşıldığını doğrulamak gerekir:

  • HPL (High Performance LINPACK): Cluster’ın teorik zirve FLOPS değerinin ne kadarına ulaşıldığını ölçer. İyi yapılandırılmış sistemlerde yüzde seksen ve üzeri verimlilik beklenir.
  • STREAM: Bellek bant genişliğini ölçer; NUMA yapılandırmasının doğruluğunu doğrular.
  • OSU Micro-Benchmarks: MPI gecikme ve bant genişliğini düğüm içi ve düğümler arası olarak ayrı ayrı ölçer.

Bu benchmark sonuçları hem donanım kalitesini hem de yazılım yapılandırmasının doğruluğunu ortaya koyar.

Sonuç

CPU cluster, doğru iş yükleri için GPU’ya kıyasla daha hızlı kurulabilen, mevcut kodlarla doğrudan çalışabilen ve ölçeklenebilir bir HPC platformu sunar. Başarılı bir kurulum için donanım seçimi, ağ yapılandırması, dosya sistemi tasarımı ve yazılım yığını bütünleşik olarak planlanmalıdır.

CPU cluster çözümlerimiz hakkında daha fazla bilgi almak için /cozumler/cpu-cluster/ sayfasını inceleyebilir ya da iletişim formumuz aracılığıyla HPC mühendislerimizle doğrudan görüşebilirsiniz.