Manual Cluster HPC UVic-UCC

Introducció i Recursos del Clúster

Aquest manual està dissenyat per ajudar els nous usuaris del clúster de càlcul de la UVic-UCC. El seu objectiu és proporcionar les eines necessàries per començar a utilitzar el clúster de manera eficient. Es recomana tenir coneixements bàsics del sistema Unix per poder treballar còmodament.

Què és un clúster de càlcul?

Un clúster de càlcul és un conjunt d'ordinadors que treballen conjuntament per processar tasques de manera eficient. Un dels ordinadors, anomenat node mestre o node d'inici de sessió, s'encarrega d'assignar els programes (anomenats jobs) als altres ordinadors mitjançant un gestor de cues (scheduler).

Representació d'un clúster de càlcul
Representació esquemàtica d'un clúster de càlcul.

Recursos del Clúster

Sistema de Gestió de Jobs: Slurm

Un cop dins del clúster, utilitzem el sistema Slurm Management. Podeu trobar la documentació oficial en aquest enllaç: Documentació de Slurm. Per a més informació sobre el nostre cluster de càlcul, veieu la presentació

Presentació clúster de càlcul UVic-UCC
Last update 15/01/2025

Administradors del clúster

Connectar-se via VPN i SSH

1. Connexió VPN

Primer de tot, per tal de connectar-vos al cluster, heu d'obrir el túnel via VPN. Us heu de descarregar la versió de Forticlient que sigui compatible amb el vostre sistema operatiu. Seguidament un cop us hagueu descarregat FortiClient, heu d'anar a l'apartat "Remote Access" i configurar de la següent manera.

Guia Bàsica per Enviar Jobs

1. Crear un Fitxer de Treball (Script sbatch)

Es recomana mantenir una estructura clara per als vostres directoris:

Heu de crear un fitxer de 0, que contingui les comandes #SBATCH i canviar-les segons els requeriments.

Exemple de Script Bàsic:


#!/bin/bash
#SBATCH --job-name=nom_job          # Nom del job
#SBATCH --output=sortida.txt        # Fitxer de sortida
#SBATCH --error=error.txt           # Fitxer d’errors
#SBATCH --time=01:00:00             # Temps màxim (hh:mm:ss)
#SBATCH --cpus-per-task=4           # Nombre de CPUs per tasca
#SBATCH --mem=4GB                   # Memòria assignada

python script.py                    # Execució del vostre codi
Rscript script.R                    # En cas que fos R	    
            

Comentaris:

Comandaments de Slurm

2. Enviar el Job a Slurm

Per enviar el job, utilitzeu:

sbatch job_script.sh

Això us retornarà un Job ID (per exemple, 12345) que us servirà per fer seguiment del job.

3. Consultar l’Estat dels Vostres Jobs

Per veure l’estat dels vostres jobs (si estan en cua o en execució), utilitzeu:

squeue

Estats Comuns:

4. Cancel·lar un Job

Si necessiteu cancel·lar un job, utilitzeu:

scancel 12345

5. Comprovar els Recursos Disponibles

Per veure quins recursos (nodes i particions) estan disponibles, utilitzeu:

sinfo

Comandes bàsiques de SLURM

1. Consultar l’estat del clúster

2. Enviament de treballs

3. Gestió de treballs

4. Transferència de fitxers

Per enviar i rebre fitxers entre el vostre ordinador i el clúster, utilitzeu la comanda scp. Si voleu copiar tot un directori, podeu utilitzar scp -r. IMPORTANT: La transferència s’ha de fer sempre des del vostre ordinador.

Exemples:

Informació de Particions

Nom de la Partició Node CPUs Memòria (MB) GPU
highmem vcompute11 42 224452 0
normal1 vcompute12 14 30052 0
normal2 vcompute13 14 30052 0
normal3 vcompute14 14 30052 0
normal4 vcompute15 14 30052 0
normal5 vcompute16 14 30052 0
gpu compute02 40 32008 2
lowmem compute02 40 32008 0

Apptainer

Apptainer és una eina de contenidors dissenyada per facilitar l'execució d'aplicacions amb totes les seves dependències en entorns HPC. Com que ja està instal·lat en el nostre sistema, aquest tutorial se centrarà en com construir i utilitzar imatges de contenidors.

1. Creació d'una imatge amb un fitxer de recepta

El primer pas és crear un fitxer de recepta (definition file).def que descrigui la base i les instruccions per construir la imatge. Per exemple, crea un fitxer anomenat apptainer.def amb el següent contingut:

Bootstrap: docker
From: ubuntu:20.04

%post
    apt-get update && apt-get install -y python3     # Aquí pots instal·lar tots els paquets / llibreries necessàries

%runscript
    exec python3 "$@"

Aquest fitxer indica que la imatge es basarà en Ubuntu 20.04 i instal·larà Python3, segons les necessitats de l'usuari

2. Construir la imatge

Una imatge és un fitxer que encapsula tot l'entorn necessari (sistema operatiu, aplicacions i dependències) per executar una aplicació de manera consistent i portable. Per construir la imatge, obre la terminal i executa:

apptainer build my_image.sif apptainer.def

Aquesta comanda crea un fitxer my_image.sif que conté la imatge del teu contenidor.

Convertir des de docker

Per tal de poder descarregar directament una imatge de de docker, fem servir aquest codi, que generarà un fitxer .sif que ja el podrem executar.

apptainer pull docker://contenidor-d'interès

3. Executar la imatge

Un cop creada la imatge, pots executar-la creant un altre fitxer sbatch, i per defecte ja podràs usar apptainer.


#!/bin/bash
#SBATCH --job-name=apptainer_test    # Nom del job
#SBATCH --output=output.log          # Fitxer on es guarda la sortida
#SBATCH --error=error.log            # Fitxer per errors
#SBATCH --time=00:10:00              # Temps màxim d'execució
#SBATCH --mem=1G                     # Memòria total requerida
#SBATCH --cpus-per-task=1            # Nombre de CPUs
#SBATCH --partition=normal1          # Partició a utilitzar

# Executar la comanda dins del contenidor Apptainer
apptainer run my_image.sif   # Run fa córrer tot el contenidor, si fessis servir exec, només executa la comanda que es vulgui.
    

Això obrirà una shell dins el contenidor o executarà l'aplicació definida al bloc %runscript del fitxer de recepta.

Recursos addicionals

Per a més tutorials i informació detallada sobre com treballar amb imatges en Apptainer, consulta la documentació oficial d'Apptainer.

Easybuild

Easybuild és una eina automatitzada dissenyada per compilar i instal·lar programari en entorns HPC. Facilita la gestió de les dependències i versions, fent que la instal·lació d'aplicacions complexes sigui molt més senzilla i menys propensa a errors.

Aquesta eina és especialment útil per a usuaris novells, ja que redueix la complexitat de configurar el software manualment. Pròximament, també introduirem un tutorial detallat per mostrar-te com utilitzar Easybuild en el teu entorn de treball.

Com obrir tiquets

Per tal d'obrir tiquets a l'URespon, ja sigui per a instal·lació de software, altes de usuaris, o problemes de connexió, seguir el següent tutorial. Per a més informació, seguiu el següent tutorial

Tutorial per obrir incidències o sol·licituds per al clúster de càlcul

Com interpretar i millorar l'eficiència

Per garantir un bon funcionament del clúster per a tothom, és important que cada usuari optimitzi els recursos que sol·licita. En aquest tutorial t’expliquem com pots fer-ho de manera senzilla.

Com optimitzar els recursos, informe d'eficiència