Commit 494aa645 authored by remy's avatar remy
Browse files

format markdown + lien VPN UM modifié

parent c1f14ff5
......@@ -31,13 +31,13 @@ Les connexions SSH sont un peu plus limitées, mais la demande de création d'un
Plusieurs possibilités s'offrent à vous:
- vous êtes physiquement dans un laboratoire du LabEx CeMEB. Voir avec votre [correspondant](http://mbb.univ-montp2.fr/MBB/subsection/Help.php#h_fac_15) de laboratoire.
- vous essayez de vous connecter de chez vous:
- vous avec un compte à la faculté des Sciences; vous pouvez alors [utiliser le VPN](https://moodle.umontpellier.fr/enrol/index.php?id=7675).
- vous avec un compte à la faculté des Sciences; vous pouvez alors [utiliser le VPN](https://wikidocs.umontpellier.fr/pages/viewpage.action?pageId=1048647).
- vous n'avez pas de compte à la Faculté des Sciences, mais vous avez une [adresse IP publique].
### Comment utiliser le VPN de la Faculté des Sciences de Montpellier
Si vous essayez de vous connecter depuis chez vous, le plus simple consiste à utiliser le VPN de l'Université de Montpellier (Pour utiliser le VPN de l'Université de Montpellier, il vous suffit d'avoir un compte à l'Université de Montpellier):
- [Lien VPN](https://moodle.umontpellier.fr/enrol/index.php?id=7675)
- [Lien VPN](https://wikidocs.umontpellier.fr/pages/viewpage.action?pageId=1048647)
Si vous n'avez pas de compte mail à l'UM, essayez d'utiliser un autre VPN ou bien :
- faites une demande procédure spéciale de travail à distance en créant un ticket sur notre plateforme : http://kimura.univ-montp2.fr/calcul/helpdesk_NewTicket.html
......
......@@ -54,7 +54,6 @@ cp -r $TMPDIR/* $HOME/mes_resultats/
> **Hint** Par exemple, il est possible d'utiliser /export/scrach comme $TMPDIR sur les noeuds de calcul, qui est une partition locale à chaque noeud, séparée du reste.
## Accès SSH et utilisation basique
L'accès SSH est restreint par un pare feu. Il est possible d'accéder au cluster depuis le réseau de l'UM2. Pour un accès extérieur, vous pouvez vous connecter au VPN de l'université ou nous pouvons autoriser une adresse ou une plage d'adresses IP (déjà ouvert pour le CEFE). Pour demander l'autorisation, passez par le système de tickets : http://kimura.univ-montp2.fr/aide/index.php?a=add .
......@@ -66,6 +65,7 @@ Sous GNU/Linux, un client SSH est déjà présent. Il permet de se connecter à
#### Connexion au cluster par SSH
On accède au cluster de la manière suivante (après avoir fait une demande compte):
``` bash
ssh username@162.38.181.18
......@@ -77,7 +77,7 @@ ssh username@cluster-mbb.mbb.univ-montp2.fr
Si on se connecte avec l'option '-CX' ou '-CY', on peut lancer des programmes graphiques sur le cluster et ils seront affichés localement.
Voici un exemple avec le visionneur d'image "Eye of gnome" qui s'appelle avec la commande "eog":
```
```bash
ssh -CX USER@162.38.181.18
eog ./images/image.png
```
......@@ -96,13 +96,12 @@ CHEMIN peut être un chemin absolu ou relatif, il est alors relatif à $HOME qui
Une fois un résultat obtenu, on peut récupérer les résultats :
``` bash
```bash
scp -r username@162.38.181.18:CHEMIN_RESULTATS ./
```
Il est également possible d'utiliser [sftp](https://www.digitalocean.com/community/tutorials/how-to-use-sftp-to-securely-transfer-files-with-a-remote-server).
#### transfert de fichier avec rsync
Pour aller plus loin, l'outil rsync apporte un tas de fonctionnalités intéressantes dans le domaine du transfert de données.
......@@ -115,13 +114,12 @@ On peut par exemple :
Voila une documentation en français sur rsync: http://doc.ubuntu-fr.org/rsync
### Windows
Sous windows, on peut utiliser le client SSH putty et filezilla ou winscp comme client SFTP pour le transfert de fichiers.
* En cas de problème: http://kimura.univ-montp2.fr . Helpdesk => Nouvelle demande
* *UN PROBLEME CLASSIQUE* est celui des retours à la ligne dans les fichiers texte qui sont différents sous Windows et les autres systèmes. On peut trouver des solutions en cherchant autour de ```dos2unix``` qui est un programme de conversion ou en cherchant sur le web autour des termes "CRLF" ou "retour chariot linux windows". On peut afficher les caractères invisibles sous Linux avec la commande "cat -vt mon_fichier" (les retours à la ligne Windows qui ne doivent pas apparaître en fin de ligne c'est ```^M```, sinon il faut convertir le fichier avec ```dos2unix```).
* *UN PROBLEME CLASSIQUE* est celui des retours à la ligne dans les fichiers texte qui sont différents sous Windows et les autres systèmes. On peut trouver des solutions en cherchant autour de ```dos2unix``` qui est un programme de conversion ou en cherchant sur le web autour des termes "CRLF" ou "retour chariot linux windows". On peut afficher les caractères invisibles sous Linux avec la commande "cat -vt mon_fichier" (les retours à la ligne Windows qui ne doivent pas apparaître en fin de ligne c'est `^M`, sinon il faut convertir le fichier avec `dos2unix`).
### Soumission de job
......@@ -188,28 +186,25 @@ Les comptes seront déjà créés avec les informations d'inscription à la form
* connexion au cluster, creation de son sous-dossier exercice, transfert des données par scp, différence entre qrsh et ssh
``` bash
```bash
ssh user@162.38.181.18
mkdir exercice1.1
cd exercice1.1
exit
```
Pour télécharger un fichier à partir d'une adresse HTTP depuis le terminal, vous pouvez utiliser la commande *wget*. Téléchargez le fichier http://mbb.univ-montp2.fr/MBB/uploads/data.zip sur votre machine locale puis sur le cluster à travers une connexion ssh.
``` bash
```bash
wget http://mbb.univ-montp2.fr/MBB/uploads/data.zip
```
Pour transférer un fichier ou un dossier, on peut utiliser la commande ```scp``` qui effectue une copie par SSH.
Pour transférer un fichier ou un dossier, on peut utiliser la commande `scp` qui effectue une copie par SSH.
``` bash
scp -r ./exo1/* user@162.38.181.18:exercice1.1/
```
* Si vous êtes sous windows : Téléchargez cette archive sur votre ordinateur : http://mbb.univ-montp2.fr/MBB/uploads/data.zip . Ensuite, transférez cette archive vers votre répertoire personnel sur le cluster avec filezilla ou winscp. Les paramètres de connexion sont les suivants :
* serveur, hôte, machine : 162.38.181.18
* port : 22
......@@ -218,8 +213,6 @@ scp -r ./exo1/* user@162.38.181.18:exercice1.1/
* mot de passe : votre mot de passe
* Extraire l'archive dans un terminal avec la commande "unzip data.zip". Cela va créer un dossier data dans le dossier courant.
# Logiciels sur le cluster
## Organisation des logiciels
......@@ -229,7 +222,7 @@ scp -r ./exo1/* user@162.38.181.18:exercice1.1/
Beaucoup de logiciels sont installés sur le système des noeuds de calcul.
Voir page listant les outils : http://kimura.univ-montp2.fr/calcul_isem/2011/05/programmes-installes-sur-le-cluster/
*Pour vérifier facilement* l'existence d'un logiciel sur les noeuds de calcul on aura besoin de ```qrsh```. Ce programme, exécuté depuis le noeud maitre, va soumettre un JOB qui fournira à l'utilisateur un shell à l'intérieur du JOB. On se retrouve dans un contexte d'exécution de JOB mais avec la possibilité d'intéragir manuellement:
*Pour vérifier facilement* l'existence d'un logiciel sur les noeuds de calcul on aura besoin de `qrsh`. Ce programme, exécuté depuis le noeud maitre, va soumettre un JOB qui fournira à l'utilisateur un shell à l'intérieur du JOB. On se retrouve dans un contexte d'exécution de JOB mais avec la possibilité d'intéragir manuellement:
``` bash
ssh username@cluster1.mbb.univ-montp2.fr
......@@ -237,10 +230,8 @@ qrsh
blas<TAB> <TAB>
```
On peut donc essayer n'importe qu'elle commande dans le contexte d'un noeud de calcul et vérifier son comportement pour améliorer l'élaboration des futurs scripts à soumettre.
### Logiciels dans /share/apps/bin
Certains logiciels sont disponibles dans le dossier /share/apps/bin qui est partagé à destination de tous les noeuds. C'est le cas de versions spécifiques et différentes de celle du système (comme samtools 1.18) mais aussi de multiples versions majeures d'un logiciel (comme raxml 7 et 8).
......@@ -257,22 +248,22 @@ le binaire ou bien le compiler en statique pour le rendre indépendant.
### Utilisation de module pour changer de version
Sur les noeuds de calcul, plusieurs versions de certains logiciels sont présentes.
La commande ```module``` permet de changer les variables d'environnement pour
La commande `module` permet de changer les variables d'environnement pour
utiliser une version spécifique d'un logiciel par défaut.
La commande ```module``` permet de choisir une version du logiciel. Avec cette commande
, on peut, par exemple, choisir la version de python (2.7 ou 3.3), de ```R``` (3.0.3, 3.1.3 ou 3.2.0).
La commande `module` permet de choisir une version du logiciel. Avec cette commande
, on peut, par exemple, choisir la version de python (2.7 ou 3.3), de `R` (3.0.3, 3.1.3 ou 3.2.0).
Pour sélectionner R 3.2.0:
``` bash
```bash
# à faire sur un noeud de calcul
module load R-3.2.0
```
Pour voir la liste des modules disponibles:
``` bash
```bash
module avail
# ou encore utilisez la complétion en tapant la touche tabulation à la fin de la ligne suivante :
......@@ -288,19 +279,16 @@ Le package *blavaan* disponible par le CRAN, nécessite R en version 3.1.0 au mi
Modifiez la version de R avec module et essayez à nouveau.
### Cas particuliers
On peut aussi demander son installation: http://kimura.univ-montp2.fr/aide/index.php?a=add&catid=22
Dans certains cas, par exemple ```/share/apps/bin/paleomix``` (un pipeline de traitement NGS) ou *IRAP*, une préparation est nécessaire au lancement du logiciel. Bien souvent, un fichier *README* est disponible dans le dossier du programme.
## Packages R
### Savoir si un package R est présent
Depuis l'an dernier, nous avons fait le choix de n'installer plus aucun package R
de manière générique. En effet, la quantité de packages rendaient cette solution intenable sur la durée (dépendance entre les versions, etc...). Vous devez donc
l'installer vous-même dans votre home (voir ci-dessous).
......@@ -309,45 +297,41 @@ Vous pouvez cependant [demander de l'aide pour installer un package](http://kimu
récalcitrant (ex: si ce dernier a des dépendances systèmes):
Quelques modules sont tout de même globalement présents dans
```
/share/apps/bin/R/R-$version/lib64/R/library
```
### Installer un package R dans son home
R n'est pas installé sur le noeud maître et il ne faut rien effectuer sur le noeud maitre DONC :
``` bash
```bash
qrsh
module load R-3.2.0
R
install.packages('mon_super_package')
```
va installer dans le home (qui est partagé entre les noeuds). On pourra donc ensuite utiliser ce package R sur tous les noeuds de calcul qui correspond à la version 3.2.0 de R.
va installer dans le home (qui est partagé entre les noeuds). On pourra donc ensuite utiliser ce package R sur tous les noeuds de calcul qui correspond à la version 3.2.0 de R.
> **Note** Pour la gestion des dépendances, il vaut mieux utiliser ```install.packages``` plutôt que ```R CMD INSTALL```.
## Modules python
### savoir si un module python est present
> **Caution** Un "module python" n'a rien à voir avec la commande `module` utilisée précédemment.
> **Caution** Un "module python" n'a rien à voir avec la commande ```module```
utilisée précédemment.
``` bash
```bash
python
# puis une fois dans la console python :
import MODULE
```
Comment demander l'installation ? => http://kimura.univ-montp2.fr/aide/index.php?a=add&catid=22
### Installer un module python dans son home :
### Installer un module python dans son home
Sur cette page sont listées les différentes méthodes pour installer un module python dans son HOME : https://my.bluehost.com/cgi/help/530
......@@ -360,7 +344,8 @@ ls /share/apps/bin
```
* recherche de soft dans /share/apps/bin avec
``` bash
```bash
find /share/apps/bin -iname "*raxml*"
```
......@@ -379,14 +364,12 @@ install.packages("ape")
export PATH=$PATH:/home/username
```
# SGE en détail
# SGE en detail
http://manuals.bioinformatics.ucr.edu/home/hpc
## Monitoring
``` bash
# voir les infos détaillées d'un job :
qstat -j JOBID
......@@ -401,8 +384,7 @@ qstat -f
qstat -q queue_name
```
Quelques commandes pour visualiser la configuration:
Quelques commandes pour visualiser la configuration :
* du cluster (```qhost```, ```qhost -j```, ```qhost -l num_proc=8```, ```qhost -l mem_total=8G``` )
* des queues
* ```qstat -f```
......@@ -415,16 +397,12 @@ Quelques commandes pour visualiser la configuration:
* Vérifier combien y a t-il de queues et ce qui les différencie (```qconf -sql``` afficher la liste de toutes les queues; ```qhost -q``` pour lister les hôtes qui hébergent ces queues)
* ```qacct```
## Soumission
A la soumission, on doit préciser quelques informations par le biais d'options et aussi la commande à exécuter. Lorsque le JOB est terminé, on peut consulter les éventuels fichiers de résultat et les sorties (erreur et standard).
* options importantes :
* **-l h_rt** : le temps maximum estimé pour la durée du job
* **-cwd** : le job sera exécuté dans le dossier courant au moment de la soumission
* **-b yes/no** : permet de spécifier si on soumet une commande ([y]es) ou un script ([n]o)
......@@ -435,7 +413,6 @@ A la soumission, on doit préciser quelques informations par le biais d'options
* **-l hostname=HOST** : permet de demander explicitement d'affecter le job soumis à une machine
* **-sync yes** : si cette option est spécifiée, ```qsub``` ne rendra la main qu'à la fin de l'exécution du job
* les sorties :
Dès le lancement d'un job, on peut observer ce qui est produit dans STDOUT et STDERR dans des fichiers portant le nom du JOB suivi du numero de JOB. Le nom d'un fichier de sortie ressemble à : JOBNAME.oJOBID
......@@ -460,7 +437,6 @@ qsub -j y -N "job_name" -sync y -q cemeb.q -cwd -V -b y -l h_rt=00:10:00 "progr
> **Info** L'option ```-j y``` va mettre la sortie d'erreur dans le même fichier
que la sortie standard.
## Scripts SGE
Nous venons de voir le lancement de jobs simples avec toutes les options en ligne de commande suivi d'une commande. Il existe une deuxième manière de soumettre des jobs: **les scripts SGE**.
......@@ -487,8 +463,9 @@ cmd1
cmd2
```
Ce script sera appelé de la sorte:
``` bash
Ce script sera appelé de la sorte :
```bash
qsub monscript.sge
```
......@@ -499,7 +476,7 @@ NB: vous avez un exemple de fichier que vous pouvez copier puis réutiliser en l
La commande ```qdel``` permet de tuer un job, qu'il soit en file d'attente ou en cours d'exécution.
Elle prend en paramètre un ou plusieurs JOB_ID obtenus au préalable avec qstat.
```
```bash
qstat
job-ID prior name user state submit/start at queue slots ja-task-ID
......@@ -508,6 +485,7 @@ job-ID prior name user state submit/start at queue
```
Pour tuer ce job :
```bash
qdel 208972
```
......@@ -520,7 +498,6 @@ On peut spécifier l'identifiant d'un job à attendre à la soumission. Dans l'e
qsub -hold_jid 666 job.sge
```
L'utilisation de l'option -sync y à un qsub permet également d'attendre la fin d'un job avant d'enchainer d'autres actions.
## Les array jobs
......@@ -557,10 +534,9 @@ vect = seq(debut, fin);
cat(sum(vect),"\n");
```
Exemple de script SGE (submit_somme.sge):
``` bash
```bash
#!/bin/bash
#$ -S /bin/bash
#$ -cwd
......@@ -570,15 +546,12 @@ Exemple de script SGE (submit_somme.sge):
Rscript somme.R $1 $2 > $3
```
Lancer avec SGE pour faire la somme des entiers de 1 à 10 et les stocker dans le fichier resu.txt
``` bash
qsub submit_somme.sge 1 10 resu.txt
```
### R en multicoeur
http://kimura.univ-montp2.fr/calcul_isem/2013/11/parallelisation-avec-r-sur-le-cluster/
......@@ -592,6 +565,7 @@ http://www.rforge.net/doc/packages/multicore/mclapply.html
## Exercices SGE
* une tache :
* lancer qsub directement, par exemple :
``` bash
......@@ -617,7 +591,7 @@ sleep 200
qsub -cwd -N mon_super_script script1.sge
```
* Avec ```qstat```, vérifiez le nom du job ainsi soumis. Quelle option a été prise en compte ? Celle de la ligne de commande ou bien celle de l'intérieur du script ?
* Avec `qstat`, vérifiez le nom du job ainsi soumis. Quelle option a été prise en compte ? Celle de la ligne de commande ou bien celle de l'intérieur du script ?
**plusieurs taches, script bash qui lance plusieurs qsub :**
......@@ -629,7 +603,7 @@ qsub -cwd -N second_sleep -b y "sleep 200"
qsub -cwd -N troisieme_sleep -b y "sleep 200"
```
* Observez ensuite l'état des jobs avec la commande ```qstat```. Les jobs sont-ils lancés simultanément ? Sont-ils lancés sur la même machine ?
* Observez ensuite l'état des jobs avec la commande `qstat`. Les jobs sont-ils lancés simultanément ? Sont-ils lancés sur la même machine ?
**script SGE qui fait un array de job :**
......@@ -651,7 +625,7 @@ sleep 200
* Récupérez l'archive présente ici : http://mbb.univ-montp2.fr/MBB/uploads/random_mean.tar.gz avec wget. Puis lancez la commande suivante pour désarchiver son contenu :
``` bash
```bash
tar xvf ./random_mean.tar.gz
```
......@@ -661,13 +635,13 @@ Cela va créer le dossier random_mean.
random.pl un programme qui génère de manière aléatoire un certain nombre de nombre entiers et les places dans un fichier de sortie. Il s'utilise de la sorte :
``` bash
```bash
./random.pl NB_NOMBRES FICHIER_DE_SORTIE
```
* Soumettre un appel à ce programme via SGE en commande en ligne :
``` bash
```bash
qsub -cwd -b y "./random 100 numbers.txt"
```
......@@ -678,38 +652,26 @@ Le script SGE nommé random.sge s'utilise de la même manière que random.pl mai
qsub random.sge 100 numbers.txt
```
Le programme calc_mean.pl prend en entrée un fichier de valeurs entières (issu du prog random) et calcule la moyenne. Il s'utilise de cette manière :
``` bash
./calc_mean input_file output_file
```
* Soumettre via SGE directement un appel à calc_mean.pl en prenant comme entrée un des fichiers de nombre aléatoires précédemment généré.
* Soumettre le script SGE calc_mean.sge . Il prend les mêmes paramètres que calc_mean.pl
* Modifiez calc_mean.sge pour utiliser la variable $TMPDIR et faire en sorte que le résultat de calc_mean.pl soit écrit dans $TMPDIR/ et ensuite copié dans votre HOME.
chain_rand_and_calc.sh est un script de soumission enchaînant les deux programmes (random puis calc_mean sur la sortie du random). Il s'utilise de cette manière :
``` bash
./chain_rand_and_calc.sh NB_NOMBRE FICHIER_NOMBRES FICHIER_MOYENNE
```
* Soumettez un appel à ce script par SGE.
* Exercices supplémentaires
* lancement d'un job en précisant un environnement multicore et en déclarant nombre de slots requis (2 coeurs par exemple)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment