Yüksek başarımlı hesaplama (HPC – High Performance Computing) sistemleri, bilimsel araştırmalar, simülasyonlar ve veri yoğun mühendislik uygulamaları gibi alanlarda kritik bir rol oynamaktadır. Bu sistemlerde işlem kaynaklarının verimli kullanımı için gelişmiş iş sıralayıcı ve zamanlayıcı sistemlerine ihtiyaç duyulur. Slurm (Simple Linux Utility for Resource Management), bu alanda öne çıkan açık kaynaklı bir iş sıralama ve kaynak yönetim sistemidir.
Slurm Nedir?
Slurm, başlangıçta Hewlett-Packard tarafından geliştirilen ve günümüzde SchedMD tarafından sürdürülen açık kaynaklı bir kaynak yönetimi ve iş zamanlayıcı yazılımıdır. Slurm, Linux temelli küme sistemlerinde görevlerin (job) yönetimini sağlar. Binlerce düğümden (node) oluşan süper bilgisayarlarda, kullanıcıların işlerini adil ve verimli şekilde sıraya koymak, zamanlamak ve kaynaklara erişimini sağlamak amacıyla kullanılır.
Slurm, büyük ölçekli sistemler için tasarlanmış olmasına rağmen, orta ölçekli araştırma kümelerinde de yaygın olarak kullanılmaktadır.
Temel Bileşenler
Slurm mimarisi, aşağıdaki ana bileşenlerden oluşur:
- slurmctld (controller): Kümenin merkezî yöneticisidir. İş kuyruklarını ve düğümleri izler.
- slurmd (daemon): Her hesaplama düğümünde çalışır, işler atanır ve izlenir.
- slurmdbd: İsteğe bağlı veri tabanı sunucusudur; iş geçmişi, kullanıcı istatistikleri ve muhasebe verilerini tutar.
- scontrol, sbatch, squeue: Komut satırı araçlarıdır; iş gönderimi, kuyruk takibi ve yönetimi sağlar.
Kullanım Alanları
- Akademik Araştırma Merkezleri: Üniversitelerde fizik, kimya, biyoloji ve mühendislik araştırmaları için hesaplama görevleri Slurm üzerinden koordine edilir.
- Devlet Süperbilgisayar Merkezleri: TeraFLOP ve petaFLOP düzeyinde çalışan sistemlerin yönetimi için tercih edilir.
- Endüstriyel Simülasyonlar: Otomotiv, havacılık ve enerji sektöründe karmaşık fiziksel süreçlerin simülasyonu Slurm aracılığıyla yürütülür.
İş Zamanlama ve Kuyruklama
Slurm, farklı zamanlama politikalarını destekleyerek işler arasında adil kaynak paylaşımı sağlar. Örneğin, Priority, Backfill, FairShare gibi stratejilerle işler sıraya konulur. Kullanıcılar sbatch, srun, salloc gibi komutlarla işleri gönderebilir ve squeue, sacct ile iş durumu takip edilebilir.
Slurm, çok çekirdekli ve çok düğümlü görevleri destekler, MPI (Message Passing Interface) gibi dağıtık iş yüklerinin koordine çalışmasını kolaylaştırır.
Özelleştirme ve Genişletilebilirlik
Slurm, eklentiler aracılığıyla genişletilebilir. Örneğin:
- Kullanıcı kimlik doğrulama eklentileri
- Özel zamanlama algoritmaları
- Enerji tüketimi izleme modülleri
Ayrıca, Slurm’un yapılandırma dosyaları (slurm.conf, gres.conf, cgroup.conf vb.) üzerinden donanım kaynakları detaylı biçimde tanımlanabilir.
Performans ve Ölçeklenebilirlik
Slurm, dünyanın en büyük süperbilgisayarlarında (örneğin TOP500 listesinde yer alan sistemlerde) başarıyla kullanılmaktadır. On binlerce düğüm ve milyonlarca iş örneğini eşzamanlı olarak yönetebilecek performans kabiliyetine sahiptir.
Slurm ile Diğer Sistemlerin Karşılaştırması
Özellik | Slurm | PBS Pro | HTCondor |
Açık kaynak | + | + | + |
Büyük sistem desteği | + | + | - |
Modüler yapı | + | - | + |
Geniş kullanıcı topluluğu | + | - | + |
Slurm, yüksek başarımlı bilgi işlem sistemlerinde iş yönetimi ve kaynak planlamasını sağlamak için kullanılan güçlü, açık kaynaklı ve esnek bir platformdur. Akademik ve kurumsal araştırma ortamlarında yaygın olarak tercih edilmekte, dünya genelindeki süper bilgisayar merkezlerinin çoğunda varsayılan sistem olarak yer almaktadır.

