Lien explicatif de la « licence campus »
Description
MATLAB, acronyme de « MATrix LABoratory », est un logiciel de calcul numérique et de programmation développé par MathWorks. Il est largement utilisé dans les domaines de l’ingénierie, des sciences appliquées, des mathématiques et de la recherche académique pour effectuer une variété de tâches, notamment l’analyse de données, la modélisation, la simulation, l’optimisation et la visualisation.
Mise en place de l’environnement
ml apps/matlab
- Versions disponibles : R2024b
- Saisissez vos identifiants MathWorks lors du premier lancement
matlab
, lorsque cela est demandé.
Avertissements
- Lancer un calcul via une session OpenOnDemand sur le noeud de visualisation ou via un job interactif avec un paramétrage par défaut N’est PAS recommandé.
- Un seul coeur de la machine sera attribué.
- Votre calcul risque donc d’être très lent
- NE PAS lancer MATLAB avec la commande : ‘ml apps/matlab; matlab’, car cela entraînera un problème de licence. Au lieu de cela, exécutez les deux commandes séparément : d’abord ‘ml apps/matlab’, puis ‘matlab’.
Démarrage rapide
Session graphique Matlab
- Se connecter à OpenOnDemand
- Ouvrir un terminal dans votre session
- Taper l’une des commandes
salloc
suivante :
# Choix 1 : Uniquement CPU
salloc --nodes=1 --partition=normal --exclusive --mem-per-cpu=4G --time=1:00:00 --x11
# Choix 2 : Avec GPU
salloc --nodes=1 --partition=bigpu --exclusive --gres=gpu:2 --mem-per-cpu=9G --time=1:00:00 --x11
# Choix 3 : Avec FPGA
salloc --nodes=1 --partition=fpga --exclusive --gres=fpga:3 --mem-per-cpu=15G --time=1:00:00 --x11
# Ajuster ou compléter les commandes selon vos besoins
- Une fois le numéro du nœud obtenu, taper les commandes suivantes.
ssh -X nodeYYY
# Remplacer nodeYYY par le nom du noeud sur lequel s'est lancé votre job
ml apps/matlab
matlab
Tutoriels
Préambule – Calcul Matlab sur MatriCS et Matlab Parallel Server
Pour exploiter pleinement la puissance de calcul de MatriCS, nous vous conseillons d’utiliser Matlab Parallel Server. Cet outil, développé par MathWorks, permet d’exécuter des calculs parallèles et distribués à grande échelle sur des clusters ou des environnements de calcul haute performance (HPC). MATLAB Parallel Server étend les capacités de calcul de MATLAB au-delà de la machine locale en répartissant les tâches sur plusieurs nœuds ou processeurs, accélérant ainsi les opérations complexes et gourmandes en ressources.
Il est néanmoins fréquent de lancer des calculs sur une machine unique sans recourir à plusieurs nœuds. Un premier tutoriel présente une utilisation classique de MATLAB, tandis que le second vous guide dans l’utilisation de MATLAB Parallel Server après une connexion à MatriCS.
Lancement d’un calcul Matlab sans utiliser Matlab Parallel Server
Matlab peut être lancé en mode console, sans interface graphique, idéal pour exécuter des scripts rapidement sur un terminal. En mode interactif, Matlab ouvre son interface complète, avec des outils graphiques, pratiques pour explorer des données et développer des algorithmes.
Lancement en mode console
- Lancer un job interactif sans l’option
--x11
# Lancement d'un job interactif sans GPU
srun --cpus-per-task=8 --mem-per-cpu=4G --time=1:00:00 --pty /bin/bash
# Lancement d'un job interactif avec 1 GPU
srun --partition=bigpu --gres=gpu:1 --time=1:00:00 --pty /bin/bash
# Lancement d'un job interactif avec 1 FPGA
srun --partition=fpga --gres=fpga:1 --time=1:00:00 --pty /bin/bash
# Ajuster ou compléter les commandes selon vos besoins
- Le lancement du job peut prendre quelques minutes. Taper
squeue --me
pour voir le statut de votre job (Pour reprendre la main et taper la commandesqueue
, Ctrl+Z puisbg
et pour revenir à votre commandesrun
, taperfg
). - Une fois connecté(e) sur le noeud, lancer
matlab
ml apps/matlab
matlab
- S’il s’agit de votre premier lancement, vos identifiants Mathworks vous seront demandés.
- Lors du premier lancement, taper la commande
pwd
dans l’invite de commande MATLAB pour déterminer dans quel répertoire vous vous trouvez. Ce répertoire devrait être différent de celui depuis lequel vous avez lancé MATLAB. - Naviguer dans les répertoires à l’aide de la commande
cd
- Afficher le contenu des répertoires à l’aide de la commande
ls
- Quitter Matlab avec la commande
quit
Lancement en mode interactif
S’il s’agit de votre premier lancement de Matlab sur MatriCS, veuillez faire d’abord un lancement en mode console afin de configurer votre profil.
- Se connecter via ssh en utilisant l’option -X
ssh -X mylogin@login.matrics.u-picardie.fr
Pour les utilisateurs de MacOS, créer un fichier java.opts à la racine de votre compte MatriCS (par exemple,
nano ~/java.opts
) avec les 2 lignes suivantes :-Dsun.java2d.xrender=false -Dsun.java2d.pmoffscreen=false
Cela permet d’éviter que le fond de l’interface MATLAB ne devienne noir lorsque vous déplacez la souris.
- Lancer un job interactif (utilisation de l’option
--x11
)
# Lancement d'un job interactif sans GPU
srun --cpus-per-task=8 --mem-per-cpu=4G --time=1:00:00 --pty --x11 /bin/bash
# Lancement d'un job interactif avec 1 GPU
srun --partition=bigpu --gres=gpu:1 --time=1:00:00 --pty --x11 /bin/bash
# Lancement d'un job interactif avec 1 FPGA
srun --partition=fpga --gres=fpga:1 --time=1:00:00 --pty --x11 /bin/bash
# Ajuster ou compléter les commandes selon vos besoins
- Le lancement du job peut prendre quelques minutes. Taper
squeue --me
pour voir le statut de votre job (Pour reprendre la main et taper la commandesqueue
, Ctrl+Z puis taperbg
et pour revenir à votre commandesrun
, taperfg
). - Une fois connecté(e) sur le noeud, lancer matlab
ml apps/matlab
matlab
Commandes Matlab utiles
- Nombre de coeurs :
feature('numCores')
>> feature('numCores')
MATLAB detected: 64 physical cores.
MATLAB detected: 64 logical cores.
MATLAB was assigned: 8 logical cores by the OS.
MATLAB is using: 8 logical cores.
MATLAB is not using all logical cores because Operating System restricted the number of cores to: 8.
ans =
8
- Le nombre de coeurs retourné par
feature('numCores')
correspond au nombre X que vous avez spécifié avec l’option--cpus-per-task=X
- Informations sur les GPUs :
gpudevice()
>> gpuDeviceCount
ans =
2
>> gpuDevice(2)
ans =
CUDADevice with properties:
Identity
Name: 'Tesla V100-PCIE-32GB'
...
Index: 2 (of 2)
- Le nombre de GPU retourné par
gpuDeviceCount
correspond au nombre Y de GPU que vous avez spécifié avec l’option--gres=gpu:Y
Utilisation de Matlab Parallel Server
Vous pouvez suivre ce tutoriel depuis votre client Matlab ou bien depuis MatriCS. Dans ce dernier cas, aller à l’étape intitulée ‘Lancement de Matlab depuis MatriCS’.
Configuration de votre client Matlab pour MatriCS
Pour suivre ce tutoriel depuis votre client Matlab, il est nécessaire de l’avoir déjà configuré pour MatriCS en exécutant le fichier .p. La procédure est décrite dans cette page.
Si tel est le cas, vous pouvez passer directement à l’étape intitulée ‘Lancement d’un job’.
Lancement de Matlab depuis MatriCS
Pour suivre ce tutoriel depuis MatriCS, vous pouvez lancer une session interactive sur le noeud de visualisation et ouvrir un terminal (cliquer sur le 2eme icône en bas – le rectangle noir).
- Taper la commande
ml apps/matlab
- Puis la commande
matlab
ml apps/matlab
matlab
- Éventuellement, entrer vos identifiants MathWorks (cela est demandé uniquement lors du premier lancement de MATLAB).
- S’il propose une nouvelle version de Matlab, cliquer sur Do not show again.
Lancement d’un job (exemple : calcul de pi avec ou sans GPU)
- Si le tutoriel ‘Soumission de jobs MATLAB sur MatriCS’ n’est pas affiché, double-cliquer sur le dossier ‘MATLAB’, puis ouvrir le dossier ‘ClusterExample’ et enfin cliquer sur ‘JobExample.mlx’.
- Suite du tutoriel (en anglais) pour lancer un job avec Matlab sur MatriCS
Si le job est bien terminé, vous devriez voir s’afficher la valeur estimée de pi soit environ 3.14 :
results = 1x1 cell array
{[3.1414]}