Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu kılavuz, Slurm çalıştıran bir Azure CycleCloud kümesinde işleri gönderme ve yönetme konusunda size yol gösterir. HPC'de yeniyseniz veya Azure'da yeniyseniz kümenize bağlanmayı, işleri göndermeyi ve bunların ilerleme durumunu izlemeyi öğrenirsiniz.
Önkoşullar
Başlamadan önce şunları yapmanız gerekir:
- Slurm ortamı için Azure CycleCloud Çalışma Alanı zaten dağıtılmış
- Dağıtım sırasında yapılandırılan SSH anahtar çifti
- CycleCloud VM'sine veya Azure Bastion'a erişim
Kurulum talimatları için, ortamınızı ayarlamak amacıyla kurulum hızlı başlangıç kılavuzu'na bakın.
Küme bileşenlerini anlama
CycleCloud Slurm kümenizde etkileşimde olduğunuz üç ana düğüm türü vardır:
| Düğüm Türü | Ne Yapar? | Kullandığınızda |
|---|---|---|
| Kimlik Doğrulama Düğümü | Kullanıcılar için giriş noktası | İşleri göndermek ve yönetmek için buraya bağlanın |
| Zamanlayıcı Düğümü | İş kuyruğu ve kaynaklarını yönetir | Arka planda otomatik olarak çalışır |
| İşlem Düğümleri | İş yüklerinizi yürütün | İşlerin kaynaklara ihtiyacı olduğunda isteğe bağlı olarak oluşturulur |
Slurm bölümlerini anlama
Kümeniz, farklı iş yükü türleri için tasarlanmış önceden yapılandırılmış bölümler (kaynak havuzları) ile birlikte gelir:
| Partition | En Uygun | Tipik VM Türleri |
|---|---|---|
| HTC | İletişim kurması gerekmeyen bağımsız görevler (veri işleme, görüntü işleme) | Genel amaçlı VM'ler (D serisi) |
| HPC | MPI kullanarak sıkı bir şekilde bağlanmış paralel işler (simülasyonlar, modelleme) | InfiniBand ile HPC için iyileştirilmiş VM'ler (HBv3, HBv4, HBv5) |
| GPU | Makine öğrenmesi, derin öğrenme, GPU hızlandırmalı bilgi işlem | GPU VM'leri (NC serisi, ND serisi) |
Bölüm yapılandırma seçenekleri için Slurm Scheduler Tümleştirmesi'ne bakın.
1. Adım: Kimlik doğrulama düğümüne bağlanma
Kümenize bağlanmak için iki seçeneğiniz vardır.
Seçenek A: CycleCloud VM ile bağlanma
CycleCloud VM'sine erişiminiz varsa CycleCloud CLI'yı kullanın:
# First, SSH to the CycleCloud VM
ssh -i ~/.ssh/your_private_key username@cyclecloud-vm-ip
# Initialize CycleCloud (first time only)
cyclecloud initialize
# Connect to the login node
cyclecloud connect login-1 -c your-cluster-name
Seçenek B: Doğrudan SSH Bağlantısı
Kimlik doğrulama düğümlerinin IP adresine sahipseniz:
ssh -i ~/.ssh/your_private_key username@login-node-ip
Uyarı
Kümeniz genel IP'lere izin vermiyorsa Azure Bastion üzerinden bağlanın. Kurulum yönergeleri için Bkz. Azure Bastion belgeleri .
2. Adım: Küme Durumunu Denetleme
Kimlik doğrulama düğümüne bağlandığınızda kümenin hazır olup olmadığını denetleyin:
# View available partitions and their status
sinfo
Örnek çıkış:
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
htc* up infinite 10 idle~ htc-[1-10]
hpc up infinite 10 idle~ hpc-[1-10]
gpu up infinite 4 idle~ gpu-[1-4]
Çıktıyı okuma:
-
idle~düğümlerin kullanılabilir olduğu ancak henüz çalışmadığı anlamına gelir (CycleCloud gerektiğinde bunları başlatır) -
idledüğümlerin çalıştığı ve hazır olduğu anlamına gelir -
allocdüğümlerin şu anda işleri çalıştırdığını gösterir
Daha fazla ayrıntı için:
# Detailed partition and node information
sinfo -l
3. Adım: İş betiği oluşturma
İş betikleri Slurm'a ihtiyacınız olan kaynakları ve çalıştırılacak komutları bildirir. Basit bir test betiği oluşturun:
# Create the script file
nano hello-world.sh
Bu içeriği yapıştır:
#!/bin/bash
#SBATCH --job-name=hello_world # Name to identify your job
#SBATCH --output=hello_world.out # File for standard output
#SBATCH --partition=hpc # Which partition to use
#SBATCH --nodes=1 # Number of nodes needed
#SBATCH --ntasks=1 # Number of tasks to run
#SBATCH --time=00:05:00 # Maximum run time (HH:MM:SS)
echo "Hello from $(hostname)"
echo "Job started at $(date)"
echo "Running on partition: $SLURM_JOB_PARTITION"
sleep 10
echo "Job completed at $(date)"
Kaydedin ve çıkın (Ctrl+X, sonra Y, ardından Enter).
Yaygın SBATCH seçenekleri
| Seçenek | Description | Example |
|---|---|---|
--job-name |
İşinizin tanımlayıcısı | --job-name=my_analysis |
--output |
Çıkış nereye yazılmalı? |
--output=results_%j.out (%j = iş kimliği) |
--partition |
Kullanılacak kaynak havuzu | --partition=gpu |
--nodes |
İşlem düğümlerinin sayısı | --nodes=4 |
--ntasks |
Tüm düğümlerdeki toplam görev sayısı | --ntasks=16 |
--cpus-per-task |
Her görev için CPU'lar | --cpus-per-task=4 |
--mem |
Düğüm başına bellek | --mem=32G |
--time |
En fazla çalışma zamanı | --time=02:00:00 |
--gres |
Genel kaynaklar (GPU'lar gibi) | --gres=gpu:1 |
4. Adım: İşinizi gönderin
İşi kuyruğa gönderin:
sbatch hello-world.sh
İş kimliğinizi içeren bir onay görürsünüz:
Submitted batch job 1
Arka Planda Ne Olur?
- Kuyruğa alınan iş — Slurm işinizi kuyruğa ekler.
- İstenen kaynaklar — Slurm, CycleCloud'a işlem düğümlerine ihtiyacı olduğunu söyler.
- Sağlanan düğümler — CycleCloud, VM'leri Azure'da oluşturur (yeni düğümler için 2-5 dakika sürer).
- İş çalışmaları — Betiğiniz ayrılan düğümlerde yürütülür.
- Bırakılan düğümler — İş tamamlandıktan sonra, maliyet tasarrufu sağlamak için boşta kalan düğümler nihayet sonlandırılır.
5. Adım: İşinizi izleme
İş Durumunu Denetle
# View all jobs in the queue
squeue
Örnek çıkış:
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
1 hpc hello_world hpcuser R 0:05 1 hpc-1
İş durumları:
-
PD(Beklemede) — Kaynaklar bekleniyor -
CF(Yapılandırma) — Ayarlanmakta olan düğümler -
R(Çalışıyor) — Görev yürütülüyor -
CG(Tamamlanıyor) — İşin tamamlanması -
CD(Tamamlandı) — İş başarıyla tamamlandı -
F(Başarısız) — İş bir hatayla karşılaştı
Düğüm Ayırmayı Denetle
# See which nodes are allocated
sinfo
# View detailed job information
scontrol show job 1
CycleCloud Web Arayüzünden İzleme
Kümenizi görsel olarak da izleyebilirsiniz:
- Tarayıcınızı açın ve
https://your-cyclecloud-vm-ip - CycleCloud kimlik bilgilerinizle oturum açın
- Düğüm durumunu ve sağlama işlemi ilerlemesini görmek için kümenizi seçin
6. Adım: İş sonuçlarını görüntüleme
İşiniz bittiğinde çıkış dosyasını denetleyin:
# View the output
cat hello_world.out
Örnek çıkış:
Hello from hpc-1
Job started at Mon Dec 1 14:23:45 UTC 2025
Running on partition: hpc
Job completed at Mon Dec 1 14:23:55 UTC 2025
Çıktı dosyası konumu
Varsayılan olarak, sistem işi gönderdiğiniz dizinde çıkış dosyaları oluşturur. Bu dizin genellikle Azure NetApp Files gibi paylaşılan bir dosya sisteminde olduğundan tüm düğümler çıkışlara erişebilir.
Pratik örnekler
Örnek 1: Basit Python betiği
#!/bin/bash
#SBATCH --job-name=python_analysis
#SBATCH --output=analysis_%j.out
#SBATCH --partition=htc
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --time=01:00:00
module load python/3.9 # Load Python if using modules
python my_analysis.py
Örnek 2: Çok düğümlü MPI işi
#!/bin/bash
#SBATCH --job-name=mpi_simulation
#SBATCH --output=sim_%j.out
#SBATCH --partition=hpc
#SBATCH --nodes=4
#SBATCH --ntasks-per-node=120
#SBATCH --time=04:00:00
module load mpi/openmpi
srun ./my_mpi_program
Örnek 3: GPU işi
#!/bin/bash
#SBATCH --job-name=ml_training
#SBATCH --output=training_%j.out
#SBATCH --partition=gpu
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --gres=gpu:1
#SBATCH --time=08:00:00
module load cuda/11.8
python train_model.py
Yaygın Slurm Komutları Başvuru Kaynağı
| Command | Description |
|---|---|
sbatch script.sh |
Toplu iş gönder |
squeue |
İş kuyruğu görüntüleme |
squeue -u $USER |
Yalnızca işlerinizi görüntüleme |
sinfo |
Bölüm ve düğüm durumunu görüntüleme |
scancel JOB_ID |
Bir işi iptal et |
scancel -u $USER |
Tüm işlerinizi iptal etme |
scontrol show job JOB_ID |
Ayrıntılı iş bilgileri |
sacct -j JOB_ID |
İş muhasebe bilgileri (tamamlandıktan sonra) |
srun command |
Ayrılan kaynaklarda etkileşimli komut çalıştırma |
salloc |
Etkileşimli kaynak ayırma isteğinde bulunma |
Sorun giderme
Görev Beklemede (PD) Durumunda Takıldı
Nedeni kontrol et.
squeue -j JOB_ID -o "%j %T %r"
Yaygın nedenler:
-
(Resources)— Düğümlerin sağlanması bekleniyor (normal, 2-5 dakika bekleyin) -
(Priority)— Diğer işler daha yüksek önceliğe sahiptir -
(QOSMaxJobsPerUserLimit)— İş sınırınıza ulaştınız
Düğümler başlatılmıyor
Sağlama hataları için CycleCloud'a bakın:
# From CycleCloud VM
cyclecloud show_cluster your-cluster-name
İş hemen başarısız oldu
Çıkış dosyasını ve Slurm günlüklerini denetleyin:
# View your output file
cat your_output_file.out
# Check Slurm's record
sacct -j JOB_ID --format=JobID,State,ExitCode,Reason
Sonraki Adımlar
- Ölçeği büyütmek: Birden çok düğüm kullanan işleri gönderme
- Kapsayıcıları kullanma: Slurm için CycleCloud Çalışma Alanı, kapsayıcılı iş yükleri için Pyxis ve Enroot içerir
- İş hesaplamayı ayarlama: Zaman içinde kaynak kullanımını izlemek için MySQL tümleştirmesini etkinleştirme
- Open OnDemand'i keşfedin: Kümenize web arabirimi aracılığıyla erişme