Documentation NOVA

Introduction

Bienvenue dans la documentation de NOVA, la plateforme de calcul haute performance (HPC) de notre université. Cette documentation vous guidera à travers toutes les étapes nécessaires pour utiliser efficacement nos ressources de calcul pour vos projets de recherche.

NOVA est conçu pour supporter une large variété de charges de travail scientifiques, de la simulation numérique à l'apprentissage automatique, en passant par l'analyse de données massives.

📚

Guides Pratiques

Des tutoriels pas à pas pour maîtriser toutes les fonctionnalités de NOVA

💻

Exemples de Code

Scripts et exemples prêts à l'emploi pour vos différents cas d'usage

🚀

Optimisation

Conseils pour maximiser les performances de vos calculs

Prérequis

Avant de commencer à utiliser NOVA, assurez-vous de disposer des éléments suivants :

  • Un compte NOVA actif (obtenu via le formulaire d'inscription)
  • Un client SSH installé sur votre machine (OpenSSH, PuTTY, MobaXterm, etc.)
  • Connaissances de base en ligne de commande Linux/Unix
  • Familiarité avec le langage de programmation de votre choix (Python, R, C++, etc.)
💡 Nouveau sur Linux ? Nous proposons des formations d'introduction aux systèmes HPC chaque trimestre. Consultez notre calendrier de formations.

Première Connexion

1. Connexion SSH

Pour vous connecter à NOVA, utilisez la commande SSH suivante :

ssh votre_login@nova.universite.fr

Lors de votre première connexion, vous serez invité à configurer votre mot de passe et l'authentification à deux facteurs.

2. Exploration de votre Espace

Une fois connecté, vous aurez accès à plusieurs répertoires :

Répertoire Chemin Usage Quota
Home /home/votre_login Fichiers personnels, configurations 50 GB
Scratch /scratch/votre_login Stockage temporaire haute performance 5 TB
Projects /projects/nom_projet Données partagées de projet Variable
⚠️ Attention Les fichiers dans /scratch sont automatiquement supprimés après 30 jours d'inactivité. Sauvegardez régulièrement vos données importantes.

3. Configuration de l'Environnement

Chargez les modules nécessaires pour votre travail :

# Lister les modules disponibles
module avail

# Charger un module
module load python/3.11

# Vérifier les modules chargés
module list

Soumettre un Job

NOVA utilise le gestionnaire de jobs SLURM. Voici comment soumettre votre premier job.

Script SLURM Basique

Créez un fichier mon_job.sh :

#!/bin/bash
#SBATCH --job-name=mon_premier_job
#SBATCH --output=resultat_%j.out
#SBATCH --error=erreur_%j.err
#SBATCH --time=01:00:00
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=4
#SBATCH --mem=8G

# Charger les modules nécessaires
module load python/3.11

# Exécuter votre code
python mon_script.py

Soumettre le Job

# Soumettre le job
sbatch mon_job.sh

# Vérifier le statut
squeue -u votre_login

# Annuler un job
scancel ID_DU_JOB

Jobs GPU

Pour utiliser des GPUs, ajoutez ces directives à votre script :

#SBATCH --partition=gpu
#SBATCH --gres=gpu:1
#SBATCH --mem=16G
✅ Bonne Pratique Testez vos scripts avec un petit ensemble de données avant de lancer des jobs longs et coûteux en ressources.

Gestion des Fichiers

Transfert de Fichiers

Plusieurs méthodes pour transférer vos fichiers :

# SCP (du local vers NOVA)
scp fichier.txt votre_login@nova.universite.fr:/home/votre_login/

# SCP (de NOVA vers local)
scp votre_login@nova.universite.fr:/home/votre_login/resultat.txt ./

# RSYNC (pour transferts volumineux)
rsync -avz --progress mon_dossier/ votre_login@nova.universite.fr:/scratch/votre_login/

Outils Graphiques

Pour une interface graphique, vous pouvez utiliser :

  • FileZilla - Client SFTP multiplateforme
  • WinSCP - Pour Windows
  • Cyberduck - Pour macOS

Environnements de Développement

Environnements Python

# Créer un environnement virtuel
module load python/3.11
python -m venv mon_env

# Activer l'environnement
source mon_env/bin/activate

# Installer des packages
pip install numpy pandas tensorflow

# Désactiver
deactivate

Conda

# Charger Anaconda
module load anaconda3

# Créer un environnement
conda create -n mon_projet python=3.11

# Activer
conda activate mon_projet

# Installer des packages
conda install pytorch torchvision -c pytorch

Optimisation des Performances

Parallélisation

Profitez de la puissance de NOVA en parallélisant vos calculs :

# Exemple avec multiprocessing
from multiprocessing import Pool
import numpy as np

def calcul_intensif(x):
    return np.sum(x ** 2)

if __name__ == '__main__':
    data = [np.random.rand(1000000) for _ in range(100)]
    
    with Pool(processes=16) as pool:
        resultats = pool.map(calcul_intensif, data)

Profilage

Identifiez les goulots d'étranglement de votre code :

# Profiler Python
python -m cProfile -o profile.stats mon_script.py

# Visualiser les résultats
python -m pstats profile.stats
💡 Conseil Notre équipe technique propose des sessions de consulting pour optimiser vos codes. Contactez-nous à support@nova.universite.fr

Spécifications Techniques

Composant Spécification
Nœuds de Calcul 128 nœuds avec processeurs Intel Xeon ou AMD EPYC
Cœurs Total 10,240 cœurs de calcul
Mémoire Totale 82 TB de RAM
GPUs 64 GPUs NVIDIA A100 (40GB) et H100 (80GB)
Stockage 500 TB sur système de fichiers parallèle Lustre
Réseau InfiniBand HDR 200 Gb/s
Système d'Exploitation Rocky Linux 8

Logiciels Disponibles

🐍

Langages

Python 3.8-3.12, R 4.x, Julia, C/C++, Fortran

🧠

IA & ML

TensorFlow, PyTorch, JAX, scikit-learn, XGBoost

📊

Analyse de Données

Pandas, NumPy, SciPy, MATLAB, Mathematica

🔬

Sciences

GROMACS, LAMMPS, Quantum ESPRESSO, OpenFOAM

📈

Visualisation

ParaView, VisIt, Matplotlib, Plotly

⚙️

Outils

Git, Docker, Singularity, Jupyter, VSCode

Pour voir la liste complète et les versions disponibles, utilisez la commande module avail une fois connecté à NOVA.

Limites et Quotas

Ressource Limite par Défaut Maximum
Jobs Simultanés 10 50
Durée Maximale (CPU) 72 heures 168 heures
Durée Maximale (GPU) 48 heures 120 heures
Cœurs par Job 128 512
GPUs par Job 4 8
Mémoire par Cœur 4 GB 8 GB
⚠️ Augmentation des Quotas Si vous avez besoin de limites supérieures pour votre projet, contactez notre équipe avec une justification détaillée.

Foire Aux Questions (FAQ)

Comment puis-je vérifier l'utilisation de mes quotas ?
Utilisez la commande quota -s pour voir vos quotas de stockage. Pour voir vos heures de calcul consommées, utilisez sacct --format=User,Account,JobID,JobName,CPUTime.
Mon job est en attente depuis longtemps, pourquoi ?
Les jobs sont mis en file d'attente selon leur priorité et les ressources disponibles. Utilisez squeue -u votre_login pour voir la raison de l'attente. Les jobs GPU et ceux demandant beaucoup de ressources peuvent avoir des temps d'attente plus longs.
Puis-je installer mes propres logiciels ?
Oui ! Vous pouvez installer des packages Python avec pip dans un environnement virtuel, ou utiliser Conda pour créer vos propres environnements. Pour des logiciels plus complexes, vous pouvez utiliser des conteneurs Singularity.
Comment puis-je collaborer avec d'autres chercheurs ?
Vous pouvez demander la création d'un projet partagé via notre portail. Tous les membres du projet auront accès à un espace de stockage commun dans /projects/nom_projet.
Y a-t-il des sauvegardes de mes données ?
Votre répertoire /home est sauvegardé quotidiennement. Cependant, /scratch n'est PAS sauvegardé et les fichiers sont supprimés après 30 jours. Il est de votre responsabilité de sauvegarder vos données importantes ailleurs.
Puis-je utiliser NOVA pour des cours ou des TP ?
Oui, nous proposons des comptes dédiés pour l'enseignement. Les enseignants peuvent demander la création d'un projet pédagogique avec des comptes pour leurs étudiants.

Contact et Support

📧

Support Technique

Email : support@nova.universite.fr

Temps de réponse : 24-48h

💬

Chat en Direct

Lun-Ven : 9h-17h

Accédez au chat depuis votre tableau de bord

📅

Consultations

Rendez-vous personnalisés pour l'optimisation de code

Réservez sur notre calendrier en ligne

🎓 Formations Nous proposons régulièrement des formations sur l'utilisation de NOVA, la programmation parallèle, et l'optimisation de code. Consultez notre calendrier sur le portail utilisateur.