Jupyter : le noyau

Jupyter : le noyau#

Exercice : à quoi sert le noyau

Cliquez sur la cellule suivante puis exécutez la en appuyant sur les touches Maj+Entrée :

1 + 1

Explication

Techniquement parlant, le navigateur web a envoyé le contenu 1 + 1 de la cellule à un noyau qui l’a exécuté, avant de renvoyer le résultat à afficher. Le noyau que nous utilisons ici (Python 3) permet de travailler en Python. Il existe des noyaux pour de nombreux langages de programmation et systèmes de calculs : Julia, Python, R – d’où le nom de Jupyter –, mais aussi des dizaines d’autres dont C++ ou SageMath.

Exercice : changer de noyau

À un moment donné, une feuille Jupyter est reliée à un unique noyau. Le nom de ce noyau est affiché en haut à droite de la feuille de travail. Cliquez dessus pour afficher la liste des noyaux disponibles sur votre instance de Jupyter.

S’il y des noyaux pour d’autres langages, par exemple C++, essayez la cellule ci-dessus avec ces autres noyaux. Puis sélectionnez à nouveau le noyau Python.

Exercice : relancer le noyau

  1. Consultez le code de la cellule ci-dessous. Notez qu’il contient une boucle infinie: la condition étant toujours vraie, la boucle while ne s’arrêtera jamais.

  2. Exécutez les deux cellules ci-dessous avec Maj-Enter :

i = 0
while True:    # boucle infinie!
  i = i + 2
1 + 1

Exercice (suite)

  1. Notez l’étoile dans les In[*] ci-dessus; elle indique que les deux cellules sont en attente de la fin du calcul – fin qui n’arrivera ici jamais du fait de la boucle infinie dans la première cellule.

    Pour pouvoir reprendre la main, il faut arrêter ou redémarrer le noyau.

  2. Relancez le noyau, via le menu déroulant «Noyau» ou «Kernel» de la barre de menu tout en haut de la page web. Alternativement, vous pouvez utiliser le raccourci clavier Esc-0-0 (attention: ce raccourci n’est pas disponible sur certain navigateurs web comme Safari).

  3. Réessayez l’exercice, cette fois en arrêtant le noyau.

Bilan

Dans cette feuille, vous avez vu comment changer, arrêter, ou relancer le noyau. Cela permet notamment de changer de langage de programmation, de sortir d’une boucle infinie, ou de repartir sur une base neuve en oubliant les calculs précédents.