====== Mémo NIC4 ====== Nic 4 est le cluster ULG du Ceci. Il est composé de 168 noeuds : 16 coeurs (2*8) & 64 Gb par noeud. Plus d'info sur les sites du [[http://www.ceci-hpc.be/clusters.html#nic4|CECI]] et du [[http://www.ulg.ac.be/cms/c_3826073/fr/nic4|Segi]]. La demande de création de compte se fait via ce [[https://login.ceci-hpc.be/init/|formulaire]]. ===== slurm info ===== Le gestionnaire de queues sur les clusters du CECI est [[http://www.schedmd.com/slurmdocs/slurm.html|Slurm]]. Lisez le [[devel:slurm|]] de Romain, le [[http://www.ceci-hpc.be/slurm_tutorial.html|]], le [[http://www.cism.ucl.ac.be/Services/Formations/slurm.pdf|cours du CECI]] avant de commencer ... et n'hésitez pas à vous référer à la documentation de [[http://slurm.schedmd.com/slurm.html|Slurm]]. ===== Configuration du compte pour Metafor ===== Une fois que vous savez vous connecter sur Nic4 à partir de votre machine qu'elle soit [[http://www.ceci-hpc.be/windows.html|windows]] ou [[http://www.ceci-hpc.be/linux.html|Linux]], il faut configurer votre compte à la compilation/utilisation de Metafor. Le [[http://metafor.ltas.ulg.ac.be/dokuwiki/devel/configcomptelinux|système de configuration des comptes]] a été adapté à Nic4. Si pour des besoins particuliers des modifications de configurations devaient être apportées à la configuration, notez que le serveur d'accès se nomme "master2" (faites vos modifs dans ''~/bin/cfg/master2/...''). ===== Compiler Metafor ===== ==== Compilation de Swig ==== Pour compiler Metafor, il faut auparavant recompiler [[http://www.swig.org/|]] en version 2.x (la version système est 1.3 et il existe des versions 3.x plus récentes, mais elles sont incompatibles avec la version actuelle de Metafor. * détarrer les sources (swig-2.0.12.tar.gz) * configurer : ./configure --without-pcre --prefix=$HOME/local/ (l'installation dans ~/local/ sera automatiquement détectée par le système de configuration de metafor) * compiler : make * installer : make install ===== Compilation de Metafor ===== La compilation est classique avec CMake. Le fichier ''oo_meta/CMake/nic4-icc.cmake'' défini la configuration actuelle * avec le compilateur intel * sans interface graphique (ni vtk, ni Qt pas utile sur cluster) * sans stp2py * sans GenIso * sans Mumps (to do : voir si dispo ou compiler !!!) ==== Execution de Metafor ==== ATTENTION : Toute execution sur Nic doit être faite sur le disque ''/scratch'' (tapez ''cd $SCRATCH'') le quota sur ''/home'' est fixé à 20Gb... Launch.py a été adapté à l'utilisation via Slurm. ''Nic4'' ne disposant que d'une seule queue (''defq''), il n'y a pas de choix de queue. Le système de queue déterminant la priorité de lancement des jobs en fonction de la demande en terme de noeuds/coeurs/mémoire/CPU, il est important de ne pas trop sur-estimer les ressources nécessaires. ATTENTION : il est plus capital encore de ne pas sous-estimer vos besoins (sans quoi les jobs sont automatiquement stoppés!!!). L'execution d'un premier test avec une estimation large de la memoire et peu de temps de calcul (5 à 10 minutes) permet généralement de connaitre la mémoire nécessaire (MaxRSS) et d'estimer le temps de calcul nécessaire (sur base du test.res). N'oubliez pas d'ajouter une marge de sécurité tant en memoire que en temps de calcul... {{ :devel:launchonnic4.jpg? |}} * ATTENTION : Le temps de calcul DOIT être écrit au format J-HH:MM:SS (il n'y a pas de validation du format !!!). * ATTENTION : Le temps de calcul max accepté sur nic4 est de 2 jours. * ATTENTION : La memoire est la mémoire TOTALE nécessaire au calcul en Mb. launch écrit et soumet à la queue le script ''runSlurm.sh''automatiquement généré #!/bin/bash # Metafor launch.py slurm script... #SBATCH --job-name=metafor #SBATCH --mail-user=lpapeleu #SBATCH --mail-type=ALL # Ressources needed... #SBATCH --partition=defq #SBATCH --ntasks=1 #SBATCH --cpus-per-task=16 #SBATCH --time=0-0:05:00 #SBATCH --mem=500 . /home/ulg/aea/lpapeleu/.bash_profile master2 srun /home/ulg/aea/lpapeleu/bin/launch.py -x -i $SLURM_JOB_ID -m master2 La configuration d'execution est copiée dans le fichier ''launch$SLURM_JOB_ID.cfg'' et relu pour lancer l'execution. Un script d'arret/suppression du calcul est aussi généré ''sCancel$SLURM_JOB_ID.py'' alors que la sortie standard est redirigée vers ''slurm-$SLURM_JOB_ID.out'' (en plus des mails d'info).