200 milyon avroluk bir süperbilgisayarda kod çalıştırmak için gerçekte ne gerekiyor
(towardsdatascience.com)- 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,
modulesistemi üzerinden çoğu kütüphane ve yazılımı sağlar
- Veri taşıma: Girdi ve çıktı verileri login node'lar üzerinden
scpveyarsyncile 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
stdoutvestderr, 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
squeueveyatail -file 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
#SBATCHdirektifleri:--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:00gibi parametrelerle kaynaklar tanımlanır- Ortam
module load OpenFOAM/11-foss-2023aile yüklenir srun --mpi=pmixilesurfaceFeatureExtract,blockMesh,decomposePar,snappyHexMesh,potentialFoam,simpleFoam,reconstructParsı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_IDile 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.