1 puan yazan GN⁺ 1 시간 전 | Henüz yorum yok. | WhatsApp'ta paylaş
  • Barselona Katalonya Teknik Üniversitesi'ndeki MareNostrum V, 8.000 düğüme yayılmış dağıtık hesaplama yapan, 200 milyon avroluk kamu araştırma altyapısı olarak dünyanın en büyük 15 süperbilgisayarından biri
  • Tek bir yüksek performanslı bilgisayar değil; InfiniBand NDR200 fat-tree topolojisi ile bağlanmış binlerce bağımsız bilgisayardan oluşan dağıtık bir sistem ve herhangi bir düğüm, aynı minimum gecikmeyle iletişim kurabiliyor
  • İş gönderimi, SLURM iş yükü yöneticisi üzerinden yapılıyor; kaynak isteği, zaman sınırı ve proje bütçesini belirten batch betikleriyle işler zamanlayıcının kuyruğuna alınıyor
  • Dış internet erişiminin kapalı olduğu air-gap ortamında çalıştığı için gerekli kütüphane ve veri kümelerini önceden hazırlamak gerekiyor; hatta bazen darboğaz hesaplamadan çok sonuçları dışarı aktarmak oluyor
  • Araştırmacılara ücretsiz sunulan bir kamu kaynağı; İspanya'daki kurumlar RES üzerinden, Avrupa genelinde ise EuroHPC Joint Undertaking düzenli çağrıları üzerinden erişebiliyor

Mimari: ağ bilgisayarın kendisi

  • HPC hakkındaki en büyük yanlış kanı, tek bir aşırı güçlü bilgisayar kiralandığı düşüncesi; gerçekte yapı, işleri binlerce bağımsız bilgisayara dağıtık olarak göndermeye dayanıyor
  • Dağıtık hesaplamada GPU'ların veri aktarımını beklerken boşta kalmasını önlemek için MareNostrum V, InfiniBand NDR200 fabric'ini fat-tree topolojisi ile kuruyor
    • Normal ağlarda birden çok bilgisayar aynı anahtarı paylaştığında bant genişliği darboğazı oluşur
    • Fat-tree topolojisi, ağ katmanlarında yukarı çıkıldıkça bağlantı bant genişliğini artırarak non-blocking bant genişliği sağlar
    • 8.000 düğümün herhangi ikisi de aynı minimum gecikmeyle haberleşebilir

Hesaplama partition yapısı

  • Genel amaçlı partition (GPP): yüksek derecede paralel CPU işleri için tasarlandı; 6.408 düğümün her birinde 112 Intel Sapphire Rapids çekirdeği bulunuyor, toplam tepe performans 45,9 PFlops
  • Hızlandırılmış partition (ACC): yapay zeka eğitimi, moleküler dinamik gibi özel kullanım alanları için tasarlandı; 1.120 düğümün her birinde 4 adet NVIDIA H100 SXM GPU var, tepe performans 260 PFlops
    • Tek bir H100'ün perakende fiyatı yaklaşık 25.000 dolar kabul edildiğinde, yalnızca GPU maliyeti 110 milyon doları aşıyor
  • Login node'lar: SSH ile bağlandığınızda ilk giriş noktası; dosya taşıma, kod derleme, iş betiği gönderme gibi hafif işler için, hesaplama için değil

Kuantum altyapısı

  • MareNostrum 5'e İspanya'nın ilk kuantum bilgisayarı fiziksel ve mantıksal olarak entegre edildi
    • Dijital kapı tabanlı kuantum sisteminin yanı sıra, süperiletken kübit tabanlı kuantum annealer MareNostrum-Ona da buna dahil
  • Kuantum işlem birimleri (QPU), klasik süperbilgisayarların yerine geçmiyor; özelleşmiş hızlandırıcı rolü üstleniyor
  • H100 GPU'larla bile işlenmesi zor optimizasyon problemleri ya da kuantum kimyası simülasyonları kuantum donanıma offload edilerek büyük ölçekli hibrit klasik-kuantum hesaplama gücü sağlanıyor

Air-gap, kota ve HPC operasyonlarının gerçeği

  • Air-gap: Dışarıdan SSH ile erişim mümkün olsa da, compute node'lar dış internete çıkamaz
    • pip install, wget, harici HuggingFace deposuna bağlanma gibi işlemler mümkün değildir
    • Betik için gereken her şey önceden indirilip derlenmeli ve depolama dizinine hazırlanmalıdır
    • Yöneticiler, module sistemi üzerinden çoğu kütüphane ve yazılımı sağlar
  • Veri taşıma: Girdi ve çıktı verileri login node'lar üzerinden scp veya rsync ile aktarılır
    • Gerçek hesaplama çok hızlı olabildiği için tamamlanan sonuçları yerel makineye çekmek bazen darboğaz haline gelir
  • Sınırlar ve kotalar: Her projeye belirli bir CPU zamanı bütçesi ayrılır ve tek bir kullanıcının aynı anda çalıştırabileceği ya da bekletebileceği iş sayısına katı sınırlar konur
    • Tüm işler için sıkı bir wall-time sınırı belirtmek zorunludur
    • İstenen süre 1 saniye bile aşılırsa zamanlayıcı süreci anında sonlandırır
  • Loglama: İş gönderildikten sonra canlı terminal çıktısı olmaz; tüm stdout ve stderr, otomatik olarak log dosyalarına (ör. sim_12345.out, sim_12345.err) yönlendirilir
    • Sonuçları görmek ve hata ayıklamak için iş tamamlandıktan ya da çöktükten sonra bu metin dosyaları incelenir
    • Gönderilen işlerin durumu squeue veya tail -f ile izlenebilir

SLURM iş yükü yöneticisi

  • Araştırma tahsisi onaylandıktan sonra SSH ile giriş yaptığınızda tamamen sıradan bir Linux terminal istemi görürsünüz
  • Aynı anda binlerce araştırmacı sistemi kullandığı için, terminalden doğrudan ağır betikler çalıştırmak login node'u düşürebilir ve sistem yöneticilerinden uyarı e-postası alabilirsiniz
  • SLURM (Simple Linux Utility for Resource Management): açık kaynaklı bir iş zamanlama yazılımıdır; bash betiğinde gerekli donanımı, yazılım ortamını ve çalıştırılacak kodu belirtirsiniz, sistem işi kuyruğa alır, donanım ayrıldığında çalıştırır ve ardından düğümleri serbest bırakır
  • Başlıca #SBATCH direktifleri:
    • --nodes: gereken fiziksel makine sayısı
    • --ntasks: oluşturulacak toplam MPI süreci (task) sayısı; bunların düğümler arasında dağıtımını SLURM yapar
    • --time: katı wall-clock süre sınırı; aşılırsa iş anında sonlandırılır
    • --account: CPU zamanının düşüleceği proje kimliği
    • --qos: Quality of Service ya da belirli bir kuyruk belirtir (ör. debug kuyruğu daha hızlı erişim sağlar ama çalışma süresi kısadır)

Pratik örnek: OpenFOAM sweep orkestrasyonu

  • ML surrogate modeliyle aerodinamik downforce tahmini yapmak için, 50 farklı 3D mesh üzerinde 50 adet yüksek doğruluklu CFD (hesaplamalı akışkanlar dinamiği) simülasyonu çalıştırmak gerekiyor
  • Genel amaçlı partition üzerinde tek bir OpenFOAM CFD vakası için SLURM iş betiği örneği:
    • --nodes=1, --ntasks=6, --time=00:30:00 gibi parametrelerle kaynaklar tanımlanır
    • Ortam module load OpenFOAM/11-foss-2023a ile yüklenir
    • srun --mpi=pmix ile surfaceFeatureExtract, blockMesh, decomposePar, snappyHexMesh, potentialFoam, simpleFoam, reconstructPar sıralı biçimde çalıştırılır
  • 50 işi tek tek göndermek yerine SLURM dependency kullanılarak her iş bir öncekine zincirlenebilir
    • sbatch --dependency=afterany:$PREV_JOB_ID ile 50 iş birkaç saniye içinde kuyruğa kaydedilir
    • Ertesi sabaha kadar 50 aerodinamik değerlendirme işlenmiş, loglanmış ve ML eğitimi için tensör dönüşümüne hazır hale gelir

Paralelleştirmenin sınırı: Amdahl yasası

  • Düğüm başına 112 çekirdek olmasına rağmen CFD simülasyonu için neden yalnızca 6 task istendiğinin nedeni Amdahl yasası
  • Her programın paralelleştirilemeyen bir seri kısmı (serial fraction) vardır ve teorik hızlanma bu seri oran tarafından sıkı biçimde sınırlandırılır
    • Denklem: S = 1 / ((1−p) + p/N); burada S toplam hızlanma, p paralelleştirilebilir oran, N ise işlemci çekirdeği sayısıdır
    • Kodun yalnızca %5'i seri olsa bile, MareNostrum V'nin tüm çekirdekleri kullanılsa dahi teorik azami hızlanma 20 kat olur
  • Task'ları fazla sayıda çekirdeğe bölmek, InfiniBand ağı üzerinden iletişim ek yükünü artırır
    • Çekirdekler arasında sınır koşulları taşımaya gerçek hesaptan daha fazla zaman harcanırsa, ek donanım performansı artırmak yerine düşürebilir
  • Küçük sistemlerde (N=100) simülasyon çalıştırılırken 16 thread'den sonra çalışma süresi artarken, donanım ancak büyük ölçeklerde (N=10k+) tam verimli hale gelir
  • Süperbilgisayar için kod yazmak, esasen hesaplama/iletişim oranını yönetme pratiğidir

Erişim yolları

  • Donanım maliyetine rağmen MareNostrum V'ye erişim araştırmacılar için ücretsiz; hesaplama süresi kamu fonuyla sağlanan bilimsel kaynak olarak değerlendiriliyor
  • İspanya'daki kurumlara bağlı araştırmacılar İspanyol Süperhesaplama Ağı (RES) üzerinden başvurabiliyor
  • Avrupa genelindeki araştırmacılar EuroHPC Joint Undertaking düzenli erişim çağrıları üzerinden başvurabiliyor
    • "Development Access" hattı, kod port etme veya ML modeli benchmark projeleri için tasarlandığından veri bilimciler için daha erişilebilir

Henüz yorum yok.

Henüz yorum yok.