Students

Depending on the courses, students can have access to e2x JupyterHub servers to work on assignments. These servers can also be used for a light computing or programming. However, if you need more resources (CPU, RAM and GPU) for your projects, you can have a look at Bonn-Rhein-Sieg university scientific computing.

Hint

We are currently testing GPU-capable Jupyter Notebook server on our workstations equipped with dual NVIDIA RTX3090 with 24GB memory each.

You can find the details here.

Currently, there are two JupyterHub servers running on our in-house infrastructure and external server running on Hetzner cloud.

1. Hetzner cloud: notebooks.inf.h-brs.de used for the following courses:

2. In-house server: e2x.inf.h-brs.de/jupyterhub/uebung used for the following courses:

Archived courses:

Note

The JupyterHub servers are not a replacement of the current LMS (LEA.). You can use the servers to work on your assignments. Most courses assignments are managed through the hub, while some graders prefer the distribution and submission through LEA. The assignments and feedback might also be released on LEA. LEA forum is also available should you have any problem with the assignments or the server.

Login to E2x JupyterHub

1. Hetzner cloud: notebooks.inf.h-brs.de

First, you need to sign up to the server if you have not done so, then the instructor will authorize you. However, if you have been registered on LEA course, you should be able to log in automatically once you have signed up. Otherwise you should contact you instructors in order to get access to the server.

  • Signup

    Click on Signup and fill in your username (FB02 UID, for examlple mwasil2s) and your password. The server only accepts FB02 UID as username. Also, do not use the same password as your username.

    ../_images/e2x-native-login.jpg

    Note

    If you are already registered on the LEA course, you can sign in automatically after you have signed up. Otherwise you should contact you instructors and e2x sys admin will authorize you upon your instructors approval.

  • Change password

    If you are not happy with your password, you can change it via JupyterHub home. Open control panel on the top right,

    ../_images/e2x-hub-control-panel.png

    Then on the top left, you will find a button Change password which brings you to change-password form

    ../_images/e2x-hub-home-native.png

    Change password form

    ../_images/e2x-hub-native-change-pw.png

Warning

Do not use the same password as your username. If you forget your password, please contact your instructors or e2x admin.

2. In-house server: e2x.inf.h-brs.de/jupyterhub/uebung

  • Access

    Starting from SS21, students can access the university server without using vpn or ssh-ing to the FB02 network.

  • Login

    The local server uses FB02 LDAP to authenticate the users. Thus, you do not need to signup to get access to the server. The username and password are the same as your horde account.

    ../_images/e2x-jupyterhub-login.png

    If you are registered in multipe courses, you will be prompted with different server options during spawning. In some cases, we provide different environments with datasets, particular libraries, etc. Unless requested, each course uses the same environment as defined in Environment.

    ../_images/e2x-server-options.png

    Warning

    Default server does not have any course and the data is not persistent, meaning it will be destroyed once the server is shut down.

Assignments

We use nbgrader to manage the assignments. The due date should be the same as on LEA. So you have to submit the assignments before the due date.

  • Fetch Assignments

    • Navigate to the assignments tab and click fetch

      ../_images/assignment-fetch.png
    • Open the fetched assignments

      ../_images/assignment-open.png

      You can also go to Files tab, and refresh the page to see all fetched assignments.

      Warning

      Do not open the assignment in multiple tabs, windows or browser. You might overwrite unsaved changes!

  • Submit Assignments

    To submit the assignments, go to Assignments tab again, and click Submit. You can submit your assignments multiple time as long as you do it before the due date.

    ../_images/assignment-submit.png

    Note

    If you have problems submiting the assignments via the servers, you can of course submit them via LEA.

  • Fetch Feedback

    Under Assignments tab, you will be notified if the feedback has been released by the instructors.

    ../_images/feedback-available.png

    You will see feedback available to fetch if it has been released. You can then fetch it.

    Once you fetch it, you can now open it.

    ../_images/feedback-fetched.png

    Click view feedback to open the assignment feedback.

    Note

    You can also find your feedback under the assignment directory e.g. WuS-01/feedback

Resources and Quota

The student server is limited to 2 cores of CPUs and 1GB of RAM, and 1GB of storage. Anything under /home/jovyan is persistent and the rest will be regenerated when you restart the server. This storage can be increased according to the request from the instructors, but this can only be done if the request is proposed before the semester starts.

Automatic kernel and server culling

  • Culling idle kernel

    Idle notebook kernel whithout any activities for one hour will be culled automatically. If this happens and you want to come back to your work, you should restart your kernel by going to Kernel tab and choose Restart and Clear Output. You can also close your notebook and reopen it.

    You can also restart your server by going to Control Panel menu (on the top right) and choose Stop My Server and once it’s done stopping the server, click Start My Server to start your server.

  • Culling idle server

    The idle culler automatically shuts down singleuser notebook servers when they are not used for one hour to reduce the resource usage. Users need to relogin to spawn a new server.

    We also recommend you to shutdown or close your Jupyter Notebook server if you are not using it and help us reducing the resource usage.

Note

The persistent data will be deleted after Einsicht which is regularly scheduled in the next semester after the exam.

We suggest you to always backup you data in your local machine.

Zip and dowload files from the server

../_images/zip-and-download-hw.png

Working on the assignments locally

The easiest way to setup your local environment is via docker. With docker, you can just pull our docker image and mount the assignments you have downloaded from the server to your container.

  • Linux and Mac OS

    • Install docker engine for Linux

    • Install docker engine for Mac OS

    • Open terminal and run our image (this will automatically pull and run the docker image)

      docker run -it --name notebook -v $HOME/assignments:/home/jovyan/assignments --rm -p 8888:8888 digiklausur/notebook-dev:latest
      
      Replace the following:
      • $HOME/assignments –> replace this with the path to your assignment in your local machine

      You can also replace the image,
      • digiklausur/notebook-dev:latest –> digiklausur/notebook:latest

      where latest and 8bf9827 are the image tags.

    • The output should look like the following

      [I 13:24:27.563 NotebookApp] The Jupyter Notebook is running at:
      [I 13:24:27.564 NotebookApp] http://8ad5cc4be28c:8888/?token=b537e4e4a92b8ba7ac0ca2f5ea2034ac36fcc1d20d0eb53a
      [I 13:24:27.564 NotebookApp]  or http://127.0.0.1:8888/?token=b537e4e4a92b8ba7ac0ca2f5ea2034ac36fcc1d20d0eb53a
      

      Click on the http://127.0.0.1:8888/?token=….

      This will take you to your browser once you click that link.

    • You can also open your browser manually and go to localhost:8888. Then input your token manually if asked.

      In this example, your token is b537e4e4a92b8ba7ac0ca2f5ea2034ac36fcc1d20d0eb53a.

  • Windows

    • Follow this instruction to install docker engine on Windows 10

    • Once it gets installed, open Command Prompt

    • Run our docker figure:

      docker run -it --name notebook -v C:\Users\MohammadWasil\Downloads\WuS-WS20 --rm -p 8888:8888 digiklausur/notebook-dev:latest
      

      This may take some times to pull from docker image.

      Replace C:\Users\MohammadWasil\Downloads\WuS-WS20 with the proper path to your assignments or course.

    • Once it is done pulling from docker hub, you will get the link and the token, copy that link and open it in your browser

      ../_images/e2x-docker-windows-run-token.png
    • Open Jupyter Notebook server

      ../_images/e2x-docker-windows-nb-tree.png

      Notebook tree which shows all files and directories under C:\Users\MohammadWasil\Downloads\WuS-WS20

    • Open the assignment

      ../_images/e2x-docker-windows-nb-tree-assignment.png

      Assignment 01 directory (WuS-HW01) for WuS.

      ../_images/e2x-docker-windows-nb-hw.png

      SuperTest.ipynb is the notebook file that you have to work on.

Note

If you work locally on your machine, you should re-upload your work to the server, under the corresponding assignment directory. Only files under assignment directory are uploaded to the grading server. Also, make sure all the files required to run your assignment are also uploaded and the paths to the files are properly given in the notebook file.

The Don’ts

You are not allowed to:
  • Change the cell metadata

  • Change directory structure of the assignment

  • Rename directories or files

  • Use other libraries which are not defined in our environment

  • Use different version of our libraries

  • Change the kernel

Warning

Your submission may fail to run on the grading server, or cannot be graded if you do the don’ts.

Environment

All environments we use on the servers can be found here.

FAQs

  • [notebooks.inf.h-brs.de] I cannot login after signup. You may not be registered on the LEA course, contact your instructors to authorize you.

  • [notebooks.inf.h-brs.de] my username is already used. Please contact your instructors, e2x admins or post this on LEA forum so that they can check and come back to you as soon as possible.