NRP, Access & Resources

Teaching: 15 min · Exercises: 0 min · Total: 15 min

Questions
  • What is the National Research Platform, and what does it offer a classroom?
  • How do students and instructors get access?
  • What accelerators are available, and how do I ask for them?
Objectives
  • Describe what NRP provides and where JupyterHub fits for teaching.
  • Sign in through CILogon and request a namespace of your own.
  • Say what hardware a course can ask for, and where to see what is available.

Time: 00:00–00:15

Welcome to the NAIRR AI Education Webinar Series. This hour has one concrete goal: show you what it takes to run your own JupyterHub classroom on the National Research Platform — how to get in, what you can ask for, and then a live deployment of a multi-user hub.

This session is a demonstration. You are welcome to follow along, but you do not have to: there is nothing to install or configure beforehand, and the demo hub is already set up for everyone on the call.

Objectives

By the end of the hour you will know how instructors and students get onto NRP, what resources a course can use, and what it takes to deploy a multi-user JupyterHub for a class.

Schedule

TimeTopicWhat you walk away with
00:00–00:15NRP, access & resourcesAn account path and a namespace request
00:15–00:50Deploy a JupyterHub classroomA deployed course hub, an image menu, and shared class storage
00:50–01:00Q&AYour questions

What NRP is

The National Research Platform is shared national cyberinfrastructure built on the Nautilus Kubernetes cluster: hundreds of nodes, many NVIDIA GPU types, shared storage, and hosted services — JupyterHub, GitLab, S3, a managed vector database, and a managed LLM inference endpoint.

The mental model is short:

  1. CILogon authenticates users through their institutional identity provider.
  2. JupyterHub gives each participant a browser-based JupyterLab workspace and terminal.
  3. Kubernetes runs the workloads; users interact with it through kubectl and YAML.
  4. Helm packages a whole application — like a JupyterHub — into one installable chart.

Anatomy of a Kubernetes cluster

Scale

NRP dashboard
Click to reveal more

NRP

Capabilities

NRP as a NAIRR Classroom provider

For teaching, NRP acts as a classroom provider: you get a Jupyter platform for your course plus access to NRP resources — CPU, GPUs, storage, and LLM services — without running any infrastructure yourself.

NAIRR Classroom

NAIRR Classroom

What that means in practice for an instructor:

You wantNRP gives you
Every student in the same environmentA container image you control, identical for the whole class
No laptop setup on day oneBrowser-based JupyterLab, campus login
GPUs for a deep-learning unitGPU profiles on the spawn menu, with per-profile limits
An AI assistant students can actually useA hosted chatbot and an OpenAI-compatible API, no per-seat billing
Shared datasets and notebooksOne RWX volume mounted into every student's server
No passwords to distributeCILogon institutional login

The hardware you can ask for

NRP is deliberately heterogeneous. A course should ask for the class of device that matches the work, not the biggest one available.

CPUs. The default. Most teaching workloads — pandas, scikit-learn, the whole intro-to-data-science curriculum — never need anything else, and CPU-only pods schedule fastest because there is the most of that capacity.

NVIDIA GPUs. Many models across the cluster, from older training-friendly cards to current datacenter parts. They are not interchangeable: ask for a class that matches the job.

GPU distribution GPU model list

Seeing what is actually available

Before requesting anything, look at what the cluster has right now — GPU models and counts, regions, node labels, and current utilization.

NRP resource view

Three ways to request resources

Top Uses

Almost everyone reaches the cluster one of three ways. They differ in how much Kubernetes you have to know, which is exactly the axis that matters for a classroom.

RouteWhat it isBarrierBest for
JupyterHubA browser-based JupyterLab server, sized from a spawn menuLowest — a login and a dropdownStudents, coursework, anyone new to the cluster
Kubernetes (kubectl)Submit pods, jobs, and services directly with YAMLHighest — you write manifestsBatch work, training runs, services, deploying a hub
CoderA browser-based VS Code connected to cluster resourcesLowDevelopment that outgrows a notebook

Today we use both. We start in JupyterHub, because that is where a class starts, and then drive Kubernetes from a hub terminal to deploy a JupyterHub of our own.

There is also a second sense of the word "request", and mixing them up is a common source of confusion:

  1. A portal or allocation request — asking NRP for access, namespace membership, quotas, or a policy exception for a class.
  2. A Kubernetes workload request — asking the scheduler for CPU, memory, and accelerator devices inside a YAML manifest.

Workload requests are declarative. Over-requesting does not make anything faster; it just makes your students wait longer for a slot.

Access with CILogon

NRP authenticates through CILogon, so users sign in with an existing campus account — there is no separate NRP password to issue or reset. For a course this is the single biggest operational win: enrollment is an allowlist, not a credential-distribution problem.

When you sign in, CILogon asks which identity provider to authenticate against. The order of preference:

  1. Your own institution. Search for it by name — this is the right answer whenever it is available, because your account is then tied to your campus identity and survives as long as your affiliation does.
  2. Google or Microsoft, using your campus email address. Many institutions are not listed as CILogon identity providers. If yours is not, sign in with Google or Microsoft and choose your @your-institution.edu address, not a personal one — access is judged on the institutional address behind it.

Whichever you pick, use the same one every time: a different provider produces a different NRP identity, and namespace membership is attached to the identity, not to you.

Namespaces: where a course lives

Compute on NRP lives in a namespace — a Kubernetes grouping that scopes resources and membership. For teaching, the namespace is the course:

Namespaces, roles, and resource scope

Most of what you create — pods, deployments, services, secrets, storage claims — is namespace-scoped: it lives in your course's namespace and is invisible to everyone else's. A smaller set of things is cluster-scoped and shared by the whole platform: the nodes themselves, StorageClasses, PersistentVolumes. That split is why a course namespace is a safe sandbox — students can fill it without touching anyone else's work.

A JupyterHub can be deployed once per namespace, so one namespace maps naturally onto one course hub.

Getting your own access

Two steps, neither of which has to happen live today:

1. Sign in once at nrp.ai with CILogon, as above. That creates your NRP identity — nothing is allocated to you yet, but the identity has to exist before anything can be.

2. Request a namespace with the form at get-started.nrp-nautilus.io. It asks who you are, your institution, the email on your NRP account, and whether you want the hosted LLM endpoints. An administrator reviews it, usually within a working day, and replies by email.

Namespaces are requested by faculty, staff, and research scientists. If you are a student, your advisor or instructor submits the request — and for a course, that is the right shape anyway: the instructor owns the namespace and adds students to it.

Already have a namespace and just want to be added? Ask its admin, and send them the identity shown when you sign in at nrp.ai.

From there, NRP's Getting started is the reference for everything else — installing kubectl and the kubelogin plugin, downloading your kubeconfig, and your first pod. Nothing in today's demo needs any of it.

Next

Next we deploy a multi-user JupyterHub from a notebook: Deploy a JupyterHub classroom.

Key Points
  • NRP is shared national cyberinfrastructure built on the Nautilus Kubernetes cluster.
  • CILogon means students sign in with existing campus credentials — no new passwords.
  • Compute lives in a namespace, which for teaching maps onto a course.
  • JupyterHub is the lowest-barrier way in; kubectl and Coder are there when you outgrow it.