Je ne sais pas quel service utiliser
Merci de lire cet article.
Comment nous citer
Pour tout travail impliquant les services MBB, merci d'inclure cette phrase dans vos remerciements :
"[Replace_with_your_project_name] benefited from the Montpellier Bioinformatics Biodiversity platform supported by the LabEx CeMEB, an ANR "Investissements d'avenir" program (ANR-10-LABX-04-01)."
Si le travail n'a bénéficié que d'un support purement ISEM fourni par ISI, tel que le Cluster ISEM, la citation devient :
"This work benefited from the ISEM computing facility, at ISI service."
Je n'arrive pas à me connecter à rstudio malgré mon login cluster
Rstudio nécessite une validation supplémentaire sur le serveur rstudio et donc doit faire l'objet d'une demande supplémentaire par l'interface de ticket.
J'arrive à me connecter à MBBWorflow mais je ne peux pas utiliser mes données
MBBWorkflow doit faire l'objet d'une demande dédiée afin que vous ayez un $HOME
visible sur les conteneurs.
Fonctionnement du scratch et du home sur nos clusters
Le scratch sur nos clusters fonctionne souvent différemment que sur les autres clusters. En effet, ce dernier est local à chaque nœud. Si vous voulez l'utiliser, il faut donc prévoir une copie des données dans votre job vers le dossier /export/scrach
puis les récupérer à la fin de votre job. Par conséquent, il est impossible d'utiliser un scratch avec un job de type MPI. La raison principale de ce choix est que la plupart des calculs ne sont pas du type MPI. Par conséquent, l'infrastructure est de type HTC, et non HPC, c'est à dire, sans réseau à faible latence. En l'absence d'un réseau de ce type, un filesystem parallélisé est impossible à mettre en place (à cause de performances très dégradées). En revanche pour des jobs simples, vous bénéficierez d'un accès particulièrement rapide vers ce scratch, puisque ce dernier est local à la machine.
Le HOME est exporté par NFS depuis quelques NAS. Ce dernier est donc le même sur tous les nœuds.
Exemple de script SLURM avec utilisation de scratch
Comment remplacer l'usage de NFS par un accès aux disques locaux ? Il faut s'assurer que vous avez un rép. à votre nom sous /scratch/
dans tous les noeuds de calcul.
#!/bin/bash
#SBATCH -e scratch_test."%j".err
#SBATCH -o scratch_test."%j".out
#SBATCH -t 15-00:00:00
# on met la langue en anglais afin d'avoir des messages d'erreurs connus
LANG=en_US.utf8
if [ ! -d /export/scrach/${USER} ];then
mkdir -p /export/scrach/${USER}
fi
SCRDIR=`mktemp --tmpdir=/export/scrach --directory ${USER}/job.${SLURM_JOB_ID}.XXXXXXX`
# on lance un code qui va écrire dans ce dossier scratch temporaire
# ici on génère une chaine de caractères aléatoires
openssl rand -base64 12 > ${SCRDIR}/job_output
cp -rp ${SCRDIR} /home/${USER}
rm -rf ${SCRDIR}
sbatch scratch_test.sbatch
Transferts de données
Comment transférer des données sur le cluster
Voir cet article. Pour les gros besoins/transferts, merci de nous consulter. En effet, le noeud maître ou noeud de login ne doivent pas être monopolisés par des transferts qui seraient bloquants pour les autres utilisateurs.
Si besoin, voir aussi.
J'ai transféré des données texte éditées sous Windows
Il faudra les transformer avec l'outil dos2unix
. Vous pouvez vérifier que votre fichier ne contient pas de caratères spéciaux avec cat
:
cat -vt mon_fichier.txt
# si vous voyez des caratères tels que "^M" en fin de ligne, il faudra convertir le fichier.
Hint Pour MacOS, vous avez également le programme
mac2unix
contenu dans la packagedos2unix
qui fera la même chose !
Soucis FileZilla et Fail2ban
Nos serveurs sont équipés du logiciel Fail2ban
pour éviter des tentatives de piratage depuis l'extérieur. Cela peut poser des problèmes au logiciel FileZilla
qui tente de muliplier le nombre de connexions / threads. En effet, votre machine sera vue comme une machine faisant des tentatives d'attaque de type DDoS par nos serveurs.
Afin de contourner le problème, vous pouvez soit réduire le nombre de threads simultanés à 2 dans FileZilla, soit nous faire un ticket pour mettre votre adresse IP publique en liste blanche.
Utiliser R avec SLURM
Exemple de code R (somme.R):
args<-commandArgs(TRUE);
debut = as.numeric(args[1]);
fin = as.numeric(args[2]);
vect = seq(debut, fin);
cat(sum(vect),"\n");
Exemple de script SLURM (submit_somme.sbatch
):
#!/bin/bash
#SBATCH --job-name="R somme"
#### si on ne précise pas de sortie erreur, la sortie
#### standard et la sortie erreur iront dans le même
#### fichier de sortie
#SBATCH -o submit_somme.o
#SBATCH -t 5:0:0 #### 5 heures demandées
version="3.5.3"
module load R/$version
R CMD BATCH --slave "--args $1 $2" somme.R sortie.txt
Info voir comment utiliser module
Lancer avec SLURM pour faire la somme des entiers de 1 à 10 :
sbatch submit_somme.sge 1 10
squeue
# on dort tant qu'on a pas le fichier puis on le lit
until cat sortie.txt; do sleep 3; done
Connaître son quota
Il vous est possible de connaître votre quota LDAP avec le script get_myquota.sh
. La valeur retournée n'est pas forcément celle présente sur le système. Contactez votre administrateur système en cas de doute.
Utiliser module
Voir ici : utiliser module
Comment lancer un job en réservant de la mémoire pour son job
# pour réserver 15Go de RAM par ex.
sbatch --mem=15G <my_submit_file.sbatch>
# par coeur (sinon écrasé par valeur par défaut)
sbatch --mem-per-cpu=4G <my_submit_file.sbatch>
Tag En cas de job OpenMP, il peut être utile de rajouter
--exclusive
; à utiliser avec parcimonie ! Pour plus d'informations, voir ici