recherche:cluster:softwares

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
recherche:cluster:softwares [29/04/2021 16:43] aurelien.villanirecherche:cluster:softwares [05/04/2023 16:42] (Version actuelle) julien.favre
Ligne 1: Ligne 1:
-====== Liste des logiciels disponibles ======+====== Liste des logiciels disponibles sur Centaure ======
  
-  * dispo en tapant `module avail` dans le terminal centaure +  * La plupart des logiciels sont installés en tant que modules activables en tapant `module avail` dans le terminal centaure. Certaines choses sont installées "de base". 
-  * Certaines personnes ont besoin de versions spécifiques de codes. Elles doivent être faites dans le home. Un exemple est donné ci dessous  pour Gpaw. Si un code peut être utile à tous les utilisateurs, vous pouvez envoyer un mail à `[[centaure-admins@listes.emse.fr]]` pour l'installer en global.+  * Certaines personnes ont besoin de versions spécifiques de codes. Elles doivent être faites dans le home, afin de ne pas polluer l'espace commun. Un exemple est donné ci dessous pour Gpaw. Si un code peut être utile à suffisamment d'utilisateurs, vous pouvez envoyer un mail à `[[centaure-admins@listes.emse.fr]]` pour l'installer en tant que module.
  
  
Ligne 16: Ligne 16:
   * on peut personnaliser l'installation sur son home pour un coût d'espace disque modique.   * on peut personnaliser l'installation sur son home pour un coût d'espace disque modique.
  
-Par défaut, deux modules sont disposanaconda/python2 et anaconda/python3 , qui seront toujours les dernières versionsrégulièrement mises à jour, de python 2 et 3+Un module va etre dispobile disponible 
-Dans les deux casil suffit d'appeler `python` dans le fichier jobune fois le module chargé, et la bonne version sera lancée.+`anaconda2022/python`  
 +qui remplacera les `anaconda3/XXX`  
 +Au chargementle module indique qu'il faudra ajouter une fonction dans votre shellrc
 +Pour bashdans `~/.bashrc
 + 
 +<Code:bash> 
 +XXX 
 +</Code> 
 + 
 +Pour zsh, dans `~/.zshrc`: 
 +<Code:bash> 
 +XXX 
 +</Code> 
 + 
 +Ensuitevous pouvez afficher les environnement disponibles avec `conda env list`, et activer celui qui vous intéresse avec `conda activate celui_que_je_veux` 
 + 
 +==== Env perso ====
  
 Il se peut que vous ayez besoin d'une version spécifique, ou d'un paquet qui n'est pas installé sur le cluster. Il se peut que vous ayez besoin d'une version spécifique, ou d'un paquet qui n'est pas installé sur le cluster.
  
-Pour un python spécifique, par exemple python 2.4, vous pouvez installer un //environnement// qui sera dans votre home, et lié à l'installation système:+Vous pouvez installer un //environnement// qui sera dans votre home, et lié à l'installation système:
  
 <Code:bash> <Code:bash>
-module load anaconda/python2 +module load anaconda/python 
-conda create --name monpythonamoi python=2.4+conda create --name monpythonamoi python=3.6 numpy tensorflow ETC
 </Code> </Code>
  
-Vous aurez alors une installation minimale **sans les modules python du système**. Pour activer cet environnement:+Pour activer cet environnement:
  
 <Code:bash> <Code:bash>
Ligne 60: Ligne 76:
 Çà utilise le module anaconda/python3. Çà utilise le module anaconda/python3.
  
 +Note: si vous avez un alias pour le cluster dans ~/.ssh/config, remplacez l'adresse de centaure (193.49.173.181) par votre alias !
  
-Faites vos résas comme d'habitude et soumettez. Si le job démarre alors que vous êtes conencté sur centaure, un message pop pour vous dire de regarder le fichier slurm-XXX.out.+Faites vos résas comme d'habitude et soumettez. Si le job démarre alors que vous êtes connecté sur centaure, un message pop pour vous dire de regarder le fichier slurm-XXX.out.
 Procédez ensuite comme suit (en anglais parce voilà, comme dans le job): Procédez ensuite comme suit (en anglais parce voilà, comme dans le job):
 +
  
 You now have to connect to your notebook. Open slurm-XXX.out You now have to connect to your notebook. Open slurm-XXX.out
  
   - Open a terminal from your desktop (NOT centaure) and create a tunnel to the compute where you notebook has been assigned, with the command below. It will have the correct values in the slurm-XXX.out. If you want the tunnel to stay in the background, remove use 'ssh -f ...'  Otherwise, don't forget to kill the tunnel once done. <Code:shell>   - Open a terminal from your desktop (NOT centaure) and create a tunnel to the compute where you notebook has been assigned, with the command below. It will have the correct values in the slurm-XXX.out. If you want the tunnel to stay in the background, remove use 'ssh -f ...'  Otherwise, don't forget to kill the tunnel once done. <Code:shell>
-   ssh -L \${port}:localhost:\${port} cluster ssh -L \${port}:localhost:\${port} -N \${computenode} </Code>+   ssh -L \${port}:localhost:\${port} YOUR_cluster_login@193.49.173.181 ssh -L \${port}:localhost:\${port} -N \${computenode} </Code>
   - Now look for the connection link to paste in your browser in the bottom of the file. It looks like %%`http://localhost:YYYY/?token=XXXXX`%%   - Now look for the connection link to paste in your browser in the bottom of the file. It looks like %%`http://localhost:YYYY/?token=XXXXX`%%
   - Happy notebook use !   - Happy notebook use !
-  - **VERY IMPORTANT**: when you are finished and havesaved your notebook, you **must**, in jupyterlab, click on the menu: `File->Shut Down` . This way, the slurm job will finish properly, and your data will be copied back on your home folder (as usual in a subfolder 'youname-$SLURM_JOB_ID'. If you do a scancel, you will have to copy your data from the compute scratch yourself and risk data loss if not done in the next days.+  - **VERY IMPORTANT**: when you are finished and have saved your notebook, you **must**, in jupyterlab, click on the menu: `File->Shut Down` . This way, the slurm job will finish properly, and your data will be copied back on your home folder (as usual in a subfolder 'youname-$SLURM_JOB_ID'. If you do a scancel, you will have to copy your data from the compute scratch yourself and risk data loss if not done in the next days.
  
  
Ligne 83: Ligne 101:
       * trouvez un port libre: `comm -23 <(seq 7777 8888 | sort) <(ss -Htan | awk '{print $4}' | cut -d':' -f2 | sort -u)| shuf | head -n 1` ça vous sors par exemple 8146       * trouvez un port libre: `comm -23 <(seq 7777 8888 | sort) <(ss -Htan | awk '{print $4}' | cut -d':' -f2 | sort -u)| shuf | head -n 1` ça vous sors par exemple 8146
       * `jupyter-lab --no-browser --port=8146`       * `jupyter-lab --no-browser --port=8146`
-      * faites le tunnel `ssh  -L 8146:localhost:8146 cluster ssh -L 8146:localhost:8146 -N compute-0-5`+      * faites le tunnel `ssh  -L 8146:localhost:8146 YOUR_cluster_login@193.49.173.181 ssh -L 8146:localhost:8146 -N compute-0-5`
       * connectez vous depuis votre navigateur %%`http://127.0.0.1:8146/?token=XXXX`%%       * connectez vous depuis votre navigateur %%`http://127.0.0.1:8146/?token=XXXX`%%
       * `File->Shut Down` quand vous avez finis       * `File->Shut Down` quand vous avez finis
       * rapatriez vos données du scratch avec un scp       * rapatriez vos données du scratch avec un scp
  
 +
 +====== MTEX ======
 +
 +==== Utiliser MTEX sur le cluster ====
 +Référent: `[[julien.favre@emse.fr]]`
 +
 +Mtex est un package utilisable avec Matlab pour traiter les cartes EBSD. La documentation est disponible sur : https://mtex-toolbox.github.io/
 +
 +Le traitement pouvant être lourd, cela devient intéressant d'utiliser le cluster pour ça. Par contre vous devez installer Mtex sur votre home, et ça demande quelques manips.
 +
 +Plusieurs étapes pour l'installation:
 +
 +1) Télécharger et décompresser Mtex
 +Télecharger avec la commande (pensez à télécharger la dernière version bien sur, le lien peut changer):
 +<Code:bash>
 +wget https://github.com/mtex-toolbox/mtex/releases/download/mtex-5.9.0/mtex-5.9.0.zip
 +</Code>
 +Puis décompresser l'archive avec
 +<Code:bash>
 +unzip mtex-5.9.0.zip
 +</Code>
 +Ces deux commandes vont créer un dossier mtex-5.9.0 sur votre home (bien sur le nom des dossiers et des archives va varier avec la version que vous aurez téléchargé).
 +
 +2) Dans votre dossier home, vous allez devoir installer et compiler en local une librairie. Suivez le guide...
 +Importer le module GCC9 avec la commande module load gcc/9.3.0
 +Importer matlab aussi, sinon ça va planter: module load matlab/R2020b
 +
 +Télécharger la librairie NFFT avec (pensez à télécharger la dernière version bien sur, le lien peut changer):
 +<Code:bash>
 +wget https://www-user.tu-chemnitz.de/~potts/nfft/download/nfft-3.5.3.tar.gz
 +</Code>
 +Puis décompresser l'archive avec:
 +<Code:bash>
 +tar -xf nfft-3.5.3.tar.gz
 +</Code>
 +On navigue dans le dossier décompressé:
 +<Code:bash>
 +cd nfft-3.5.3/
 +</Code>
 +Puis exécuter les commandes suivantes pour faire la compilation. Faites attention au chemin d'installation de Matlab qui peut différer selon la version installée:
 +<Code:bash>
 +./bootstrap.sh
 +./configure --with-matlab=/export/apps/MATLAB/R2020b --enable-nfsoft --enable-nfsft --enable-openmp --enable-portable-binary 
 +make
 +</Code>
 +
 +Normalement la compilation doit se dérouler sans problème. Sinon, c'est dommage pour vous.
 +
 +Maintenant copiez certains fichiers obtenus de la compilation vers le répertoire de mtex que vous avez décompressé:
 +<Code:bash>
 +cp ~/nfft-3.5.3/matlab/nfsoft/nfsoftmex.mex* ~/mtex-5.9.0/extern/nfft_openMP
 +cp ~/nfft-3.5.3/matlab/nfsft/nfsftmex.mex* ~/mtex-5.9.0/extern/nfft_openMP
 +cp ~/nfft-3.5.3/matlab/nfft/nfftmex.mex* ~/mtex-5.9.0/extern/nfft_openMP
 +</Code>
 +
 +3) Installation à proprement dit de Mtex.
 +Naviguez dans le répertoire d'installation de Mtex avec la commande cd ~/mtex-5.9.0/
 +Vérifiez bien que vous avez importé GCC9 et Matlab avec "module load gcc/9.3.0" et "module load matlab/R2020b"
 +Lancer la commande "matlab -nodisplay -nojvm -nodesktop -nosplash -r install_mtex" (c'est mieux de lancer ça d'un noeud de calcul ou bien du noeud compute-build)
 +Normalement Mtex va s'installer...
 +
 +4) Vous pensez avoir fini... ben non... En fait quand on lance Matlab, Mtex ne se lance pas spontanément. Donc pour lancer un job avec Mtex il faut quelques astuces.
 +Déja, commencez par générer un fichier job pour votre calcul avec :
 +<Code:bash>
 +module load tools/cluster-bin
 +cluster-create-slurm-script-01.sh -matlab
 +</Code>
 +Pensez bien à modifier la version importée de matlab en mettant la commande module load matlab/R2020b
 +Pour lancer un job matlab il faut bien utiliser la commande "matlab -nodisplay -nojvm -nodesktop -nosplash -r run_mtex" avec "run_mtex" le nom de votre fichier de script (sans marquer l'extension ".m"), vérifiez que c'est bien cette commande que vous avez dans le fichier job. Gardez le nom de script "run_mtex", car on va l'utiliser juste après...
 +
 +Une fois que vous avez fait ça, dans votre script il faut d'abord lancer Mtex, puis après seulement lancer votre script de post-traitement. Je vous propose donc de faire un script matlab de lancement; faites un fichier "run_mtex.m" contenant :
 +<Code:bash>
 +cd ~/mtex-5.9.0
 +startup_mtex
 +cd ~/mtex
 +monscriptmtexici
 +</Code>
 +avec "monscriptmtexici" à remplacer par votre nom de fichier de script Mtex (sans marquer l'extension ".m"). On suppose aussi ici que votre répertoire de travail est /export/home/tartempion/mtex. Donc pensez bien à ajuster ce nom de répertoire dans le script de lancement.
 +
 +Pour résumer, quand vous lancez un traitement depuis un dossier de travail, mettez le fichier job dedans, celui-ci va lancer run_mtex.m, qui démarre Mtex et lance votre script. A priori ça devrait marcher. Sinon, n'hésitez pas à compléter ce tuto...
  
  
  • recherche/cluster/softwares.1619707410.txt.gz
  • Dernière modification : 29/04/2021 16:43
  • de aurelien.villani