Jupyter


Spis treści:

Instrukcja dostępu do platformy Jupyter

  1. W celu utworzenia konta użytkownika przejść do portalu SSO CI TASK pod adresem: https://sso.task.gda.pl i nacisnąć przycisk „Rejestracja”.
  2. Następnie należy wprowadzić dane dla nowo tworzonego użytkownika. Obecnie możliwe jest utworzenie konta tylko dla osób posiadających adres email w jednej z domen Politechniki Gdańskiej (np. user@pg.edu.pl).
  3. Przesłać na adres cloud@task.gda.pl wiadomość zawierającą nazwę nowo utworzonego użytkownika (login) i prośbę o dostęp do platformy. Tytuł wiadomości proszę rozpocząć od: [Jupyter].
  4. Dostęp do platformy jest możliwy z komputerów w domenie PG. W przypadku logowania się spoza terenu Politechniki należy odpowiednio skonfigurować połączenie VPN zgodnie z wytycznymi CUI PG: https://pomoc.pg.edu.pl/vpn/
  5. Po otrzymaniu informacji o otrzymaniu dostępu do Jupyter przejść na adres: https://jupyter.dev.k8s.mostdanych.apl.task.gda.pl
  6. Wybrać przycisk „Sign in with keycloak”.
  7. Nastąpi przekierowanie do portalu SSO CI TASK. Wprowadzić login i hasło wcześniej utworzonego użytkownika. Po poprawnym zalogowaniu się można przystąpić do pracy z Jupyter.
  8. Z poziomu aplikacji Jupyter użytkownik jest widziany jako użytkownik systemowy jovyan.
  9. Pliki zapisane w katalogu domowym (/home/jovyan) oraz jego podkatalogach są zapisywane w pamięci trwałej i są dostępne pomiędzy poszczególnymi uruchomieniami Jupyter. Pliki zapisywane w innych miejscach zostaną utracone po wylogowaniu się. Maksymalny rozmiar danych przechowywanych w katalogu domowym nie może przekroczyć 10GB. Użytkownik ma dostęp tylko do swoich danych tj. nie może obejrzeć katalogu domowego innych użytkowników.
  10. Po zakończeniu pracy należy wylogować się z aplikacji Jupyter poprzez wybranie z górnego menu: File -> Log Out

Dodawanie plików

Pliki o rozmiarze mniejszym niż 20 MB mogą zostać pobrane z komputera lokalnego poprzez użycie górnego menu (ikona upload) aplikacji Jupyter. Nie jest możliwe lokalne pobranie plików o większym rozmiarze.

Aby pobrać plik o rozmiarze większym niż 20MB:

  1. Umieść plik na serwerze i następnie pobierz jego adres publiczny (np. przy użyciu platformy Dropbox).
  2. W aplikacji Jupyter uruchom nowy terminal poprzez File -> New -> Terminal.
  3. W Terminalu pobierz plik używając polecenia wget, przykładowo:
    wget https://adres_serwera/moj_plik

 

Instalacja dodatkowych modułów python

Tylko dane zapisane w katalogu domowym użytkownika są dostępne pomiędzy poszczególnymi uruchomieniami Jupyterlab. Z tego też powodu nowe moduły muszą być instalowane lokalnie poprzez polecenie pip z użyciem opcji --user.

pip install --user nazwa_modulu

Lokalizację w ten sposób zainstalowanych modułów można sprawdzić poleceniem:

python -m site --user-site

Notatki Jupyter powinny używać kernela "Python 3". Dostęp do nowo zainstalowanych modułów może wymagać restartu kernela. Z górnego menu wybrać: Kernel -> Restart Kernel.

Instalacja dodatkowych modułów przy użyciu Conda

Conda to menadżer pakietów, środowisk i zależności, który jest najczęściej używany razem z językiem Python. W katalogu domowym użytkownika znajduje się plik .condarc, który informuje Conda, by nowe środowiska wirtualne były instalowane w katalogu /home/jovyan/user-environments/. Dzięki temu, moduły instalowane w środowiskach wirtualnych zostaną zapisane w pamięci trwałej i będą dostępne pomiędzy poszczególnymi logowaniami do Jupyter.

Uwaga: stworzenie nowego środowiska wirtualnego uniemożliwia dostęp do modułów zainstalowanych w środowisku głównym Conda. Oznacza to, że wszystkie moduły będą musiały być zainstalowane ponownie przez użytkownika (np. przy pomocy opcji --clone) w jego katalogu domowym. Z tego też powodu zachęcamy do instalacji wszystkich pakietów przy użyciu pip.

 

Najpierw należy uruchomić nowy terminal: File -> New -> Terminal.

W następnym kroku tworzymy środowisko wirtualne Conda. Nazwa środowiska jest dowolna, w tym przypadku będzie to "myenv":

conda create --yes --name myenv ipykernel 

Jeśli chcemy, aby nasza środowisko posiadało dostęp do wszystkich aktualnie zainstalowanych modułów można sklonować główne środowisko condy:

conda create --yes --name myenv --clone base

Uwaga: klonowanie środowiska może trwać nawet kilkadziesiąt minut i zajmie ponad 2,5 GB w katalogu domowym użytkownika!

Po utworzeniu środowiska w menu wyboru plików po lewej stronie można zaobserwować pojawienie się w/w katalogu user-environments.

moduły można zainstalować w nowym środowisku poleceniem (module-name zamieniamy na nazwę modułu):

conda install --yes --name myenv module-name 

na samym końcu należy aktywować środowisko:  

conda activate myenv

Nowo utworzone środowisko można wykorzystać do uruchamiania notatek Jupyter. Należy utworzyć nową notatkę (File -> New -> Notebook) lub przejść do już istniejącej notatki i z górnego menu wybrać: Kernel -> Change Kernel:

W nowym oknie z listy rozwijanej wybrać przed chwilą stworzone środowisko wirtualne myenv ([conda:myenv]) i zatwierdzić wybór przyciskiem Select.

Poprawnie przeprowadzoną zmianę kernela można zaobserwować w prawym górnym rogu:

Jeśli utworzone przez nas środowisko nie jest widoczne w menu zmiany kernela, konieczne jest jednorazowe wykonanie restartu kontenra według informacji zawartych w sekcji: Restart Jupyter

Uwagi

Środowisko można usunąć poleceniem:

conda remove --name myenv --all

Jeśli środowisko było wcześniej używane przez notatki, przed usunięciem należy przejść do odpowiedniej notatki i z górnego menu wybrać: Kernel-> Shut Down Kernel.

Plik konfiguracyjny .condarc jest kopiowany do folderu użytkownika przy starcie kontenera pod warunkiem, że plik ten do tej pory nie istniał. Z tego względu możliwe jest wprowadzenie własnych zmian w tym pliku. W razie potrzeby odtworzenia podstawowej konfiguracji należy usunąć / przenieść plik .condarc i następnie zrestartować serwer:

rm /home/jovyan/.condarc

Więcej informacji na temat stosowania Conda można znaleść w dokumentacji.

Restart Jupyter

W niektórych sytuacjach może okazać się konieczny restart bieżącego kontenera Jupyter. W tym celu należy z górnego menu wybrać: File -> Hub Control Panel.

 Następnie należy kliknąć czerwony przycisk Stop My Server.

Po zatrzymaniu serwera pojawi się przycisk Start My Server. Należy go wcisnąć.

Następnie wcisnąć przycisk Launch Server. Jupyter zostanie zrestartowany a użytkownik zostanie przekierowany do nowego okna Jupyter-lab.

Generowanie wykresów przy użyciu plotly

Plotly to otwarta biblioteka wspierająca tworzenie wykresów. Jupyterlab umożliwia interaktywną współpracę z silnikiem plotly. Bazowy kernel notatnika (Python 3) wspiera plotly bez potrzeby przeprowadzania dodatkowej konfiguracji:

import numpy as np
import scipy.stats as st
import plotly
import plotly.graph_objs as go
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
init_notebook_mode(connected=True)
print(plotly.__version__)
x = np.arange(1,101)
y = st.norm().rvs(100)
iplot([{"x": x, "y": y}])

Użycie plotly w środowisku wirtualnym Conda wymaga zainstalowania dodatkowych modułów:

conda create --yes --name myenv ipykernel
conda install --name myenv -c plotly plotly chart-studio nbformat

Przykładowe wykorzystanie plotly w powyższym środowisku wirtualnym:

import plotly.graph_objects as go
fig = go.Figure(data=go.Bar(y=[2, 3, 1]))
fig.show()

Uruchomienie pierwszego przykładu wymaga zainstalowania scipy oraz numpy:

conda install --name myenv numpy scipy

Uwaga: obrazy generowane przez plotly są zapisywane w treści notatki co znacząco wpływa na rozmiar tworzonego pliku. Obecnie, rozmiar notatki nie może przekraczać 100 MB, w przypadku przekroczenia limitu otrzymany zostanie błąd o kodzie 413.

Instalacja scikit

Moduł scikit można zainstalować w środowisku Conda następującymi poleceniami:

conda create --yes --name scikit ipykernel python=3.8.6
conda install --name scikit scikit-learn

Uwaga: wersja scikit dostępna przez kanał firmy Intel aktualnie nie działa:

conda install -c intel --name skl scikit-learn # nie zadziała

Zainstalowane biblioteki

Użytkownicy mają dostęp do wszystkich bibliotek z bazowego obrazu Jupyter oraz następujących bibliotek:

  • nb_conda
  • ipykernel
  • astropy
  • plotly
  • chart_studio
  • ipyfilechooser