Avvio rapido: Distribuire l'area di lavoro di Azure CycleCloud per Slurm con Marketplace

L'area di lavoro azure CycleCloud per Slurm è un'applicazione marketplace gratuita che offre un modo semplice, sicuro e scalabile per gestire le risorse di calcolo e archiviazione per carichi di lavoro HPC e intelligenza artificiale. In questa guida introduttiva si installerà CycleCloud Workspace for Slurm usando l'applicazione Marketplace.

Prerequisiti

Per questa guida introduttiva, è necessario:

  1. Un account Azure con una sottoscrizione attiva
  2. I ruoli di Collaboratore e Amministratore accesso utenti a livello di sottoscrizione

Come distribuire ?

  • Accedere al portale di Azure .
  • Fare clic sull'opzione + Create a Resource in alto a sinistra
  • Nella casella Search services and marketplace immettere Slurm e quindi selezionare 'area di lavoro Azure CycleCloud per Slurm.
  • Nella pagina azure CycleCloud Workspace for Slurm selezionare Crea.

schermata dell'area di lavoro Azure CycleCloud per Slurm marketplace

Informazioni di base

  • Nella pagina Nuova area di lavoro Azure CycleCloud per l'account Slurm immettere o selezionare i dettagli seguenti.
    • Sottoscrizione: selezionare la sottoscrizione da usare se non è già selezionata.
    • 'area: selezionare l'area di Azure in cui si vuole distribuire l'area di lavoro CycleCloud per l'ambiente Slurm.
    • gruppo di risorse: selezionare il gruppo di risorse per l'account Azure CycleCloud workspace for Slurm oppure crearne uno nuovo.
    • Dimensioni macchina virtuale CycleCloud: scegliere una nuova dimensione della macchina virtuale o mantenere quella predefinita
    • Utente amministratore: immettere un nome e una password per l'account amministratore CycleCloud.
    • chiave pubblica SSH amministratore: selezionare direttamente la chiave SSH pubblica dell'account amministratore o se archiviata in una risorsa chiave SSH in Azure.

Schermata delle opzioni di base

File system

Home directory degli utenti - Crea nuovo

Specificare dove deve trovarsi la home directory degli utenti. Creare un nuovo Builtin NFS userà la macchina virtuale dell'utilità di pianificazione come server NFS con un disco dati collegato. Schermata del montaggio del file system per /shared e /home Builtin NFS crea nuove opzioni

Creare un nuovo azure NetApp Files creerà un account, un pool e un volume ANF della capacità e del livello di servizio specificati. Schermata del montaggio file system per /shared e /home Azure NetApp files create new options screen

Home directory degli utenti - Usa esistente

Se si dispone di un punto di montaggio NFS esistente, selezionare l'opzione Usa esistente e specificare le impostazioni per montarla. Schermata di montaggio del file system per /shared e /home usare la schermata delle opzioni NFS esterne

Montaggio aggiuntivo del file system - Crea nuovo

Se è necessario montare un file system aggiuntivo per i dati del progetto, è possibile crearne uno nuovo o specificarne uno esistente. È possibile creare un nuovo volume di Azure NetApp Files o un file system lustre gestito di Azure.

Screenshot del montaggio aggiuntivo del file system per la creazione di un nuovo di Azure NetApp Files

screenshot del montaggio aggiuntivo del file system per la creazione di un nuovo lustre gestito di Azure

Montaggio aggiuntivo del file system - Usa esistente

Se si dispone di un punto di montaggio NFS esterno esistente o di un file system lustre gestito di Azure, è possibile specificare le opzioni di montaggio.

screenshot del montaggio aggiuntivo del file system per un NFS esterno esistente

Networking

Specificare qui se si vuole creare una nuova rete virtuale e subnet o usarne una esistente.

Creare una nuova rete virtuale

Screenshot delle opzioni di rete per la creazione di un nuovo

  • Selezionare il CIDR che corrisponderà al numero di nodi di calcolo di destinazione e specificare un indirizzo IP di base,
  • È consigliabile creare un bastion se non si dispone di connettività diretta fornita dall'IT aziendale,
  • La creazione di un gateway NAT è necessaria per fornire la connettività in uscita a Internet. Questo diventerà obbligatorio nel 2025 ed è già applicato politiche di pensiero da parte di alcune aziende,
  • Eseguire il peering a una rete virtuale esistente se si ha già un hub a cui si vuole eseguire il peering che può offrire servizi come Bastion e un gateway VPN. Prestare attenzione a selezionare un indirizzo IP di base compatibile con la rete virtuale con peering. Controllare l'opzione Consenti transito gateway se la rete virtuale con peering ha un gateway.

Usare la rete virtuale esistente

Prima di usare una rete virtuale esistente, verificare la presenza dei prerequisiti in Pianificare l'area di lavoro CycleCloud per la distribuzione Slurm

Screenshot delle opzioni di rete per l'uso di un esistente

Impostazioni Slurm

Specificare le dimensioni e l'immagine della macchina virtuale da usare per l'Utilità di pianificazione e i nodi di accesso. Le immagini sono le immagini HPC fornite in Azure Marketplace con gli URI associati:

Nome immagine URI
Alma Linux 8.7 almalinux:almalinux-hpc:8_7-hpc-gen2:latest
Ubuntu 20.04 microsoft-dsvm:ubuntu-hpc:2004:latest
Ubuntu 22.04 microsoft-dsvm:ubuntu-hpc:2204:latest
Immagine personalizzata Sarà necessario specificare un URN o un ID immagine immagine

Se si sceglie Custom Image è necessario specificare un URN immagine per un'immagine del marketplace esistente o un ID immagine per un'immagine in una raccolta di calcolo di Azure.

È anche possibile controllare il Use image on all nodes se si vuole che l'utilità di pianificazione, i nodi di accesso e i nodi di calcolo usino la stessa immagine.

Impostare il numero di nodi di accesso di cui si vuole eseguire il provisioning all'avvio e il numero massimo. Infine, l'abilitazione dei controlli di integrità eseguirà i controlli di integrità dei nodi per hpc e le partizioni GPU per rimuovere automaticamente i nodi non integri all'avvio.

Screenshot delle impostazioni slurm

Se si vuole abilitare Slurm Job Accounting, selezionare la casella di controllo per visualizzare le opzioni di connettività. Si noti che è necessario disporre di una risorsa server flessibile di Database di Azure per MySQL distribuita in precedenza. La connessione tramite un FQDN o un INDIRIZZO IP privato è disponibile se si sceglie di fornire la propria rete virtuale o di usare il peering reti virtuali durante la creazione di una nuova rete virtuale come parte della distribuzione. Inoltre, la connessione tramite endpoint privato è disponibile se si sceglie di creare una nuova rete virtuale.

Screenshot delle opzioni di impostazione Slurm per il database contabile del processo, FQDN diretto

Screenshot delle opzioni di impostazione slurm per il database contabile del processo con l'endpoint privato

Impostazioni partizione

L'area di lavoro Azure CycleCloud per Slurm include 3 partizioni Slurm definite:

  • HTC: per i processi non MPI,
  • HPC: per i processi MPI strettamente accoppiati che usano principalmente tipi di vm con supporto InfiniBand,
  • GPU: per processi GPU MPI e non MPI

È possibile impostare l'immagine e il numero massimo di nodi di cui eseguire il provisioning dinamico da CycleCloud per ogni partizione. Solo la partizione HTC consentirà l'uso di istanze Spot perché in genere non è una procedura consigliata per usare istanze Spot per i processi HPC e GPU. Tuttavia, queste impostazioni possono essere sostituite dopo la distribuzione nell'interfaccia utente cyclecloud.

Screenshot delle opzioni impostazioni partizione

Tag

Impostare i tag pertinenti per le risorse necessarie. Node Array tag verranno applicati alle macchine virtuali di cui viene eseguito il provisioning dinamico da CycleCloud.

Screenshot delle opzioni tag

Rivedi e crea

Esaminare le opzioni disponibili. Questo passaggio verrà elaborato anche per alcune convalide. Screenshot del di revisione

Al termine, fare clic sul pulsante Crea per inizializzare la distribuzione Screenshot della distribuzione in corso

Seguire i passaggi e lo stato della distribuzione.

Controllare la distribuzione

Connettersi al ccw-cyclecloud-vm usando Bastion con il nome utente e le chiavi SSH specificate durante la distribuzione.

Screenshot del menu Connetti con Bastion Screenshot delle opzioni di connessione Connetti con Bastion

Quando si è connessi, controllare i log cloud-init per verificare che tutto sia corretto.

$tail -f -n 25 /var/log/cloud-init-output.log
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Starting cluster ccws....
----------------------------
ccws : allocation -> started
----------------------------
Resource group: 
Cluster nodes:
    scheduler: Off -- --  
Total nodes: 1
CC start_cluster successful
/
exiting after install
Cloud-init v. 23.4-7.el8_10.alma.1 running 'modules:final' at Wed, 12 Jun 2024 10:15:53 +0000. Up 11.84 seconds.
Cloud-init v. 23.4-7.el8_10.alma.1 finished at Wed, 12 Jun 2024 10:28:15 +0000. Datasource DataSourceAzure [seed=/dev/sr0].  Up 754.29 seconds

Stabilire quindi la connettività tra il computer client e la macchina virtuale CycleCloud. Può trattarsi dell'IT aziendale, di una VPN, di un tunneling Bastion, di un indirizzo IP pubblico collegato se l'azienda lo consente. Connettersi all'interfaccia Web passando a https://<cycleccloud_ip>ed eseguire l'autenticazione con il nome utente e la password specificati durante la distribuzione. Verificare che sia l'utilità di pianificazione che il nodo Di accesso siano in esecuzione.

Connettersi al nodo di accesso

Quando si usa Bastion, usare uno degli script di utilità util/ssh_thru_bastion.sh o util/tunnel_thru_bastion.sh per connettersi, fornito qui. Se non si usa un bastion, è necessario stabilire autonomamente la connettività diretta.