utilisation serveurs

Utilisation des serveurs bioinformatique

Cette section est destinée à guider les utilisateurs des serveurs bio-informatiques de l’IBIS dans leur gestion des ressources informatiques et à utiliser SLURM, le système par lequel l’utilisateur doit soumettre ses tâches de calcul.

Par ressources informatiques, nous entendons les processeurs (CPU / cœur), la mémoire (RAM) et
que le temps requis pour accomplir une tâche.

Il est très important d’utiliser ces ressources de la manière la plus optimale. L’objectif est de permettre au plus grand nombre d’utilisateurs possible de bénéficier de la puissance de l’ordinateur.
Il est important de demander la quantité de ressources aussi précisément que possible.
Si vous n’en demandez pas assez, votre calcul prendra plus de temps (pas assez de CPU)
ou il peut être interrompu par le système (pas assez de mémoire) et si vous en demandez trop,
vous monopolisez inutilement les ressources dont d’autres utilisateurs pourraient avoir besoin (CPU et mémoire).

Par exemple: un utilisateur réserve 10 cœurs qui sont donnés par le système d’allocation. En réalité,
le logiciel ne peut utiliser qu’un seul cœur. Ou il oublie de mettre l’option spécifiant le nombre de
threads à utiliser. Dans ces 2 cas, il y a 9 cœurs qui ne seront pas disponibles pour les autres
les utilisateurs et même certains utilisateurs pourraient être privés de la capacité de lancer leur calcul.
C’est la même chose pour la mémoire. Si vous réservez une grande partie de ce dont vous avez réellement besoin, vous empêcher également d’autres utilisateurs d’utiliser l’ordinateur.

Il est donc essentiel d’évaluer le plus précisément possible la quantité de
les ressources dont vous aurez besoin pour réaliser vos analyses.

N’hésitez pas à consulter d’autres utilisateurs qui ont déjà fait les mêmes analyses ou
à demander au personnel de la plateforme de bioinformatique.

Conseils avant de lancer une analyse

La première étape consiste à comprendre comment fonctionne le logiciel que vous souhaitez utiliser. Le plus important est de savoir si le logiciel possède une option qui permet de spécifier le nombre de cœurs qu’il peut utiliser. Si vous ne savez pas, exécutez le logiciel avec l’option -h ou -help pour voir toutes les options disponibles. Si aucune option n’existe, c’est que le logiciel ne peut utiliser qu’un seul coeur à la fois.

De plus, même si le logiciel peut utiliser plusieurs cœurs, il est possible que ce ne soit pas
une utilisation optimale. De plus, il faut penser aux autres utilisateurs. Si vous monopolisez plusieurs dizaines des cœurs pendant plusieurs heures, vous pouvez empêcher d’autres utilisateurs d’utiliser les serveurs. Faites quelques tests avant de demander plus de 10 cœurs et vérifiez si la charge sur les ordinateurs est élevée. À d’autres moments, vous pouvez également bénéficier de cette générosité.

Concernant la mémoire et le temps de calcul, pour la plupart des logiciels de bioinformatique, il existe
aucune option pour spécifier la quantité de mémoire nécessaire ou le temps de calcul. Ces valeurs doivent être estimé empiriquement. Cela dépend beaucoup du codage du logiciel et de la taille de
le fichier que vous souhaitez analyser. Le type d’opération sur le fichier est également un facteur important à prendre en considération.

Nous suggérons de faire des tests sur un ensemble de données réduit de taille différente et de voir comment il évolue. Vous pouvez aussi varier le nombre de coeurs.

En cas d’utilisation sous-optimale des ressources

Si vous recevez un courriel de la plateforme de bioinformatique, cela signifie que vous avez utilisé moins plus de 50% des ressources qui vous ont été accordées.

Lisez attentivement le message pour savoir de quelle ressource il s’agit. Faites ensuite les ajustements nécessaires si vous devez redémarrer cette analyse. Le message ressemblera à ceci:

Job Runtime JobID Partition CPU CPU% Mem(Go) Used Unused Mem%
ASSEMBLY_TRINITY 93h08m 13952958 soyagen 32 27.46% 400 243.45 156.55 60.86%

Soumettre un calcul avec SLURM

Pour permettre une utilisation optimale des ressources (CPU et RAM), les utilisateurs doivent soumettre leur travail à un système de soumission d’emploi. Celui utilisé sur les ordinateurs IBIS est SLURM pour Simple Linux Utility for Resource Management. L’utilisation d’un système tel que SLURM évite de surcharger l’ordinateur et un risque pour le système d’exploitation (OS) de manquer de mémoire. Les resultats peut passer d’un simple ralentissement dans l’exécution des tâches à un arrêt complet du serveur.

Le principe de fonctionnement est simple: l’utilisateur remplit un fichier de paramètres
contenant des informations d’analyse. Un exemple d’un tel fichier de paramètres (SLURM_example.sh)
a été ajouté à votre compte lors de sa création. Voici le contenu d’un tel fichier.


#!/bin/bash
#SBATCH -D /home/jimlogan/analyse01
#SBATCH -J blast_nt
#SBATCH -o blast_nt-%j.log
#SBATCH –p ibis_mini
#SBATCH –c 10
#SBATCH --mail-type=ALL
#SBATCH --mail-user=jim.logan@ibis.ulaval.ca
#SBATCH --time=2-08:34:21
#SBATCH --mem=10240
#création d'une variable pour la base de données blast
nt="/biodata/blastdb/nt"
#pour charger les exécutables
module load ncbiblast/2.4.0
#commande à exécuter
blastn -db $nt -query contigs.fasta -num_threads 10 -evalue 1e-5 -outfmt 6 -out contigs_blast_nt_fmt6.out

L’utilisateur soumet ensuite le fichier de paramètres à SLURM qui exécutera les commandes lorsque le
les ressources demandées sont disponibles:

sbatch SLURM_example.sh

Le système renverra alors un identifiant de travail.

Un exemple d’un tel fichier de paramètres (SLURM_example.sh) a été placé dans votre compte lorsque celui-ci a été
créé. Voici le contenu d’un tel fichier.

Explication du contenu du fichier SLURM

Format de la variable de temps:

-t [min]
-t [minute:seconde]
-t [heure:minute:seconde]
-t [jour-heure]
-t [jour-heure:minute]
-t [jour-heure:minute:seconde]

L’unité de mémoire (–mem) est en mégaoctets: 10240 = 10 Go

Pour connaître la signification des autres variables contenues dans les lignes commençant par #SBATCH,
entrez la commande suivante:

man sbatch

Pour afficher des informations sur les travaux situés dans la file d’attente de planification SLURM:
squeue

et pour un utilisateur particulier:
squeue -u

Pour annuler un travail:
scancel

Pour ouvrir le gestionnaire de tâches SLURM via une interface utilisateur graphique pour afficher tous les travaux en cours:

sview

Il est important de savoir que tant que votre tâche n’a pas été lancée, vous pouvez modifier les paramètres.

  1. Clic droit sur le travail que vous souhaitez modifier
  2. Sélectionnez le menu Edit Job
  3. Faites défiler vers le bas jusqu’au paramètre que vous souhaitez modifier

Mais une fois qu’il a été lancé, il n’est possible de changer le délai, et ce uniquement par l’administrateur.
Les autres paramètres ne peuvent pas être modifiés.

Description des files d’attente SLURM configurées sur les ordinateurs
thoth

Nom Temps limite Nb coeurs Nb coeurs max par utilisateur Mémoire Mémoire max par utilisateur Priorité Avantages
small 1 jour 240 80 5000G 600G Élevée Rapide
medium 7 jours 100 40 4000G 1000G Modérée Une semaine
large 21 jours 80 20 3000G 400G Basse Analyses longues

manitou

Nom Temps limite Nb coeurs Nb coeurs max par utilisateur Mémoire Mémoire max par utilisateur Priorité Avantages
rclevesq 21 jours 128 40 1000G 1000G Très élevée Group rclevesq
soyagen 21 jours 128 40 1000G 1000G Très élevée Group soyagen
small 1 jour 128 40 700G 500G Haute Tâches courtes
medium 7 jours 128 30 1000G 1000G Moyenne Mémoire élevée
large 21 jours 128 20 600G 400G Basse Tâches longues


katak

Nom Temps limite Nb coeurs Nb coeurs max par utilisateur Mémoire Mémoire max par utilisateur Priorité Avantages
small 1 jour 60 20 500G 250G Élevée Tâches petites
medium 7 jours 30 16 400G 300G Modérée Mémoire élevée
large 21 jours 30 10 300G 200G basse Tâches longues

Limites par utilisateur

Serveur Coeurs Max Mémoire Max
thoth 120 1000G
manitou 40 1000G
katak 20 300G

Pour tous les serveurs, les partitions par défaut sont small et ibis_small

Unité de traitement graphique (GPU)

Les serveurs thot et manitou sont équipés respectivement de 6 et 2 cartes graphiques NVIDIA Tesla 16G P100. Pour avoir accès à cette ressource, vous devez utiliser cette syntaxe SLURM dans votre fichier batch ou avec srun:

Pour utiliser 1 GPU:
#SBATCH –gres = gpu: 1

Pour utiliser 2 GPU:
#SBATCH –gres = gpu: 2

En mode interactif:
srun –pty –gres = gpu: 1 bash

L’utilisation du GPU peut être visualisée avec la commande gpu_usage (voir le fichier /prg/bashrc/commands.sh).

Il est très important de savoir que seul le code logiciel en langage de programmation CUDA peut utiliser le GPU.

Pour utiliser les serveurs en mode interactif

Ce mode est intéressant lorsque vous souhaitez soumettre de petits travaux et voulez éviter d’utiliser la commande sbatch. Il est également fortement recommandé lorsque vous devez utiliser un logiciel GUI comme CLC Workbenk ou Geneious ou besoin de travailler directement via un interpréteur de commandes comme R ou python.

La commande de base est:
srun - bash
Par défaut, vous obtiendrez 1 cœur, 10G de RAM et 24 heures de limite de temps.

Pour spécifier d’autres limites, utilisez ces options:
srun -c 4 --mem = 102400 --time = 2-0: 00: 00 - bash

Si votre tâche requiert une intervention clavier de votre part (ex: demande un mot de passe), vous devez utiliser l’option –pty de srun. Cette option simule un terminal et vous pourrez alors entrer des informations au clavier.

Exemple:
srun --pty rsync rep1 toto@machine.ca:
(besoin de –pty car rsync vous demandera un mot de passe)

srun cp a.fasta b.fasta
(pas de –pty car cp ne vous demandera pas d’informations au clavier)

N’oubliez pas de quitter le mode interactif lorsque vous avez terminé avec la commande exit

Pour obtenir des informations sur vos utilisations

Toutes les informations sur vos tâches sont stockées dans une base de données. Il est donc possible de consulter votre historique à tout moment avec la commande:

sacct

Par défaut, toutes les tâches du jour en cours seront affichées. Pour remonter le temps, utilisez l’option -S:

sacct -S 2016-01-01
affichera les tâches depuis le 1er janvier 2016.

Pour voir les ressources utilisées pour une tâche, vous pouvez utiliser l’option -l et tout envoyer dans un fichier:
sacct -l> Liste_taches.txt

Ensemble de commandes maison

Vous pouvez ajouter cette ligne en bas de votre fichier .bashrc sur manitou pour avoir accès à un ensemble
de commandes utiles:

source /prg/bashrc/commands.sh

Pour connaître le nom des commandes:

Useful_ibis_commands

Comments are closed.