Visual Studio Code

From Alliance Doc
Jump to navigation Jump to search
This page is a translated version of the page Visual Studio Code and the translation is 100% complete.


Visual Studio Code est un environnement de développement intégré (IDE pour integrated development environment) de Microsoft qui peut être utilisé pour faire du développement à distance via SSH sur nos grappes. Vous pouvez installer Visual Studio Code sur votre ordinateur et vous connecter à une grappe où vous effectuerez du débogage et des tests. Visual Studio Code s'adapte à plusieurs langages de programmation, mais nous utiliserons ici Python.

Avec un environnement polyvalent et modulaire comme Visual Studio Code, il faut faire attention au type d’action que vous faites. La modification d’un script Python ou de tout autre fichier texte de taille raisonnable (quelques milliers de lignes) est un processus léger qui utilise peu de puissance de traitement ou de mémoire. Par contre, cet environnement offre plusieurs autres fonctionnalités avancées telles que la possibilité de déboguer votre script à distance. Dans ce cas, l’environnement démarre l’exécution du script Python sur la grappe, ce qui crée une charge de calcul significative sur potentiellement plusieurs CPU si le script ou les bibliothèques qu’il utilise sont multifil.

Remarque : Quand vous utilisez Visual Studio Code avec Python, évitez d'installer Conda et ses variantes en raison de leur mauvaise adaptation à l'environnement de nos grappes. Plutôt que d'utiliser Conda, utilisez un environnement virtuel Python ou utilisez un conteneur Apptainer.

Configurer l'accès à distance

Configuration de vos clés SSH

  1. Si ce n’est pas déjà fait, générez votre clé SSH; ici nous l’appelons ~/.ssh/ccdb.
  2. Si ce n’est pas déjà fait, ajoutez votre clé publique SSH dans CCDB.
  3. Copiez la clé publique dans ~/.ssh/authorized_keys sur le serveur distant; créez ce fichier s’il n’existe pas déjà. Ceci est nécessaire parce que les nœuds de connexion n'ont pas accès aux clés publiques entrées dans CCDB.

Fichier de configuration SSH

VS Code fonctionne bien avec votre fichier de configuration SSH local (~/.ssh/config). Les options recommandées sont :

File : ~/.ssh/config

Host *
  ServerAliveInterval 300

Host beluga cedar graham narval
  HostName %h.alliancecan.ca
  IdentityFile ~/.ssh/ccdb
  User your_username

Host bc????? bg????? bl?????
  ProxyJump beluga
  IdentityFile ~/.ssh/ccdb
  User your_username

Host cdr*
  ProxyJump cedar
  IdentityFile ~/.ssh/ccdb
  User your_username

Host gra1* gra2* gra3* gra4* gra5* gra6* gra7* gra8* gra9*
  ProxyJump graham
  IdentityFile ~/.ssh/ccdb
  User your_username

Host nc????? ng????? nl?????
  ProxyJump narval
  IdentityFile ~/.ssh/ccdb
  User your_username


Connexion initiale

Accès à distance et modification du code

https://carleton.ca/scs/2023/vscode-remote-access-and-code-editing/

Puisque certaines grappes ne permettent pas l’accès à internet via les nœuds de calcul, il faut d’abord installer Visual Studio Code Server avant de se connecter à distance à un nœud de calcul. Il faut donc se connecter une première fois à un nœud de connexion. Sélectionnez la grappe sur laquelle vous voulez travailler :

  • beluga
  • cedar
  • graham
  • narval
Invite pour la phrase de passe SSH

Remarque : L’invite à entrer votre phrase de passe sera affichée à plusieurs reprises. Si ce n'est pas le cas, copiez votre clé publique comme indiqué au point 3 de Configuration de vos clés SSH ci-dessus.

À votre connexion initiale, VS Code Server sera installé dans ~/.vscode-server/, ce qui peut prendre jusqu’à 5 minutes. Lorsque c’est terminé, fermez la connexion.

Se connecter avec l’authentification multifacteur

À la connexion, cliquez sur details pour faire afficher dans le terminal l’invite pour l’entrée du deuxième facteur

Si l’authentification multifacteur est demandée, cliquez sur details pour faire afficher le terminal VS Code Terminal où vous pourrez entrer le second facteur.

Fermer la connexion

Lors de la fermeture de la fenêtre de VS Code locale, le processus distant de VS Code Server peut continuer à s'exécuter en arrière-plan, ce qui a tendance à accumuler des processus orphelins sur le nœud de connexion. De plus, votre prochaine connexion pourrait se faire à un nœud de connexion différent, ce qui causerait des problèmes et de la confusion. Pour fermer proprement la connexion, cliquez sur le coin inférieur gauche de VS Code et sélectionnez Close Remote Connection dans le haut de la fenêtre.

Se connecter à un nœud de calcul

Étapes à suivre :

  1. Vérifiez que VS Code Server est installé comme décrit ci-dessus.
  2. Dans un client SSH externe connecté à la grappe, lancez une tâche interactive avec salloc.
    1. Important : demandez au moins 2000M de mémoire.
    2. Notez le nom du nœud de calcul alloué.
    3. Si vous avez besoin de travailler avec des variables d'environnement SLURM_* dans VS Code, sauvegardez-les toutes dans un fichier à sourcer.

[name@server ~]$ env | grep SLURM_ | sed -e 's/^\(.*\)=\(.*\)$/export \1="\2"/g' > slurm_var.sh
  1. Dans VS Code, lancez une nouvelle session à distance portant le nom du nœud de calcul alloué :
    1. Appuyez sur F1 ou Ctrl+Shift+P pour faire afficher l’invite de commande > dans la palette des commandes.
    2. Commencez à écrire Remote et sélectionnez Remote-SSH: Connect to Host... > Remote-SSH: Connect to Host...
    3. Entrez le nom du nœud de calcul alloué.
      1. Si on vous demande quel est le système d’exploitation, sélectionnez Linux.
  2. Si vous avez besoin de travailler avec des variables d'environnement SLURM_*, allez au répertoire de travail dans un terminal VS Code et sourcez le fichier slurm_var.sh.

[name@server ~]$ source slurm_var.sh

Dépannage

Échec de connexion à Béluga

La version 1.101 de VS Code Server ne fonctionne pas sur Béluga. Une fois que VS Code Server est téléchargé et installé, le processus de connexion redemande vos identifiants et répète le téléchargement et l'installation sans arrêt.

La solution est d'installer la version précédente de VS Code.

  1. Désactivez les mises à jour automatiques en sélectionnant none pour update mode.
  2. Installez ensuite VS Code version 1.100.3.

Une prochaine version de VS Code pourrait résoudre le problème; cependant, aucune garantie n'est donnée.

Session à distance qui ne fonctionne plus

Les plus récentes versions de VS Code Server ne supportent plus CentOS 7, ce qui affecte les connexions à Graham et Niagara.

Si vous avez besoin de VS Code pour du débogage, notre recommandation est d'utiliser la version disponible via JupyterHub. Autrement,

  • utilisez une autre grappe, ou
  • développez et testez vos programmes localement, sur votre ordinateur; quand un programme semble stable, importez-le sur la grappe de votre choix à l'aide d'un outil de transfert de données ou de contrôle de version.

Pour plus d'information