AI Centre of Excellence

GPU-accelerated AI, in your browser.

Powered by NVIDIA DGX Spark and Kubernetes, the KRMU AI Centre of Excellence gives students and researchers a GPU lab in the browser: personal notebooks, shared storage, experiment tracking and a university language model, all pre-connected.

One Kubernetes cluster DGX SparkGB10 GPU DGX SparkGB10 GPU DGX SparkGB10 GPU Your browser Your notebook runs on the Spark assigned to you.
01The platform

One lab, three machines

Three NVIDIA DGX Spark systems, each with an NVIDIA GB10 GPU, run at KRMU as one Kubernetes cluster. Your notebook runs on the Spark assigned to your account, the same one every time.

Up to 20 students share each physical GPU and take turns on it. The Qwen language model runs across all three Sparks, and the storage service keeps a copy of your files on each of them.

The lab at a glance

Hover or focus a block to see what it does.

Kubernetes: places notebooks and shares the GPUs DGX Spark 1GB10 GPU DGX Spark 2GB10 GPU DGX Spark 3GB10 GPU MLflow Garage storage Qwen model NAS archive
02Capabilities

Five things you can do on day one

From a first notebook to tracked experiments, stored results and a built-in language model.

  1. 1

    Work in a personal notebook

    JupyterLab in your browser. Choose a CPU or a GPU notebook each time you start. Super accounts also get a Super Notebook for 3-GPU training.

    Notebook profiles
  2. 2

    Develop and train models

    PyTorch with CUDA 13, scikit-learn, XGBoost, Hugging Face Transformers and more are pre-installed, so you can start training straight away.

    How it works
  3. 3

    Track every experiment

    MLflow records your parameters, metrics, models and plots so you can compare runs. It is already connected to your notebook.

    How it works
  4. 4

    Store data and results safely

    Garage S3 storage for datasets and results, plus a home folder that is backed up to the university NAS every 30 minutes and archived every 7 days.

    Your data
  5. 5

    Ask the university language model

    Qwen3-30B-A3B is available in every notebook through an OpenAI-compatible API. Its address is provided automatically.

    About Qwen
03Get started

Four steps to your first notebook

Your account has already been created. If you are one of the 40, there is nothing to register: use the username and password given to you by the platform administrator.

01

Open the login page

The login address is provided by the administrator. Open it in your web browser from the lab network.

02

Sign in, change your password

Sign in with the details you were given, then change your first password straight away from the platform's change-password page.

03

Choose a notebook

Pick a CPU or GPU notebook. Super accounts see a single option, Super Notebook. It starts in a few seconds.

04

Run the setup cells once

A short setup notebook checks the lab services and creates your storage folder and MLflow experiment.

New users: if you do not have an account yet, use Sign up on the login page. New accounts must be approved by an administrator before notebook access is enabled.
04Accounts

Student and super accounts

The lab has 40 accounts, all created. Both kinds have the same services. Super accounts can also train on all three GPUs.

40 accounts
33 student7 super
Student accountSuper account
Notebook choicesCPU Notebook or GPU NotebookSuper Notebook (the only option shown)
Inside the notebook8 GB RAM, up to 8 GiB GPU memory (GPU Notebook)8 GB RAM, up to 8 GiB GPU memory
Training on all 3 GPUsNoYes: 1 or 3 GPUs, up to 40 GiB on each, one job at a time
Storage, MLflow, Qwen, archiveYesYes
Where it runsYour assigned SparkNotebook on your assigned Spark; 3-GPU jobs on all three
Students take turns on each GPU, so speed depends on how many people are working at the same time.
05Choose your workspace

CPU, GPU and Super notebooks

Pick a profile to see its limits. To switch later, open File → Hub Control Panel, stop your server, start it again and pick the other profile. Your files are kept.

Best for:

guaranteed up to (limit)

GPU memory limit: past 8 GiB, PyTorch reports "CUDA out of memory" and your kernel keeps running, so use a smaller batch or model. If a notebook goes past 10 GiB, the lab stops that kernel to protect other students. Your files are safe.
  • Your notebook starts on the Spark assigned to your account, the same one every time.
  • If your home folder needs restoring, it is restored from the NAS automatically.
  • A server with no activity for 60 minutes is stopped automatically, and your files are kept.
06Your data

Where your files live

Save anything important to your home folder, Garage or MLflow before a long job, because anything only in notebook memory is lost when your server stops.

LocationUse it forKept after your server stops?
Home folderNotebooks, code, small working filesYes, for 7 days. Backed up to the NAS every 30 minutes, then archived after 7 days.
NAS archive (read-only)Reading your backed-up and archived filesYes. One dated folder for each 7-day period.
Garage storageDatasets, results, anything to store safely or shareYes. A copy is kept on all three Sparks.
MLflowExperiment history, metrics, saved models, plotsYes
Notebook memoryData while you workNo. Lost when the kernel or server restarts.
Nothing is deleted. After a rotation your old files stay readable in the read-only archive folder, and you can copy back what you need. A running server is never interrupted.
Shared storage is not private. All students use the same Garage and MLflow credentials, so keep your files under your own folder, and never store passwords, personal data or anything confidential in the lab.
07Super accounts

Train on all three GPUs

A normal notebook runs on one Spark and uses one share of its GPU. Super accounts can send a training job to all three Sparks at once, with up to 40 GiB of GPU memory on each. The lab runs it with Ray Train, and a single command from an installed helper starts it.

  • Test your training function on the notebook's own GPU first.
  • With 3 GPUs, each Spark trains on a third of your data and the three copies of your model stay in sync.
  • Output appears live in your notebook, numbers go to MLflow, and the trained model is saved in your storage folder.
One 3-GPU job runs at a time for all super accounts, and a job waits automatically if another super account is training. You set a memory budget per GPU (up to 40 GiB) and a time limit (up to 12 hours). The GPUs are shared with student notebooks and Qwen, so run big jobs outside class hours when you can.

Three GPUs, one model

GPU 1up to 40 GiB GPU 2up to 40 GiB GPU 3up to 40 GiB they share what they learn after every step Result: one trained model
Hover a GPU for details.
08Language model

The university's Qwen model

Every notebook can talk to Qwen3-30B-A3B-FP8, served with vLLM across all three Sparks through an OpenAI-compatible API. You use the standard Python client that is already installed. Nothing is downloaded to your notebook and there is no key to type, because the address is provided automatically.

32,768tokens per request, prompt plus answer
35-40tokens per second for one user
4 minautomatic recovery if the model restarts

The model is shared by the whole lab and is slower when many students use it at once. Keep answers a reasonable length and avoid loops that send thousands of requests.

09Results

Tested with 30 users at the same time

We started 30 GPU notebook sessions together and ran a continuous GPU workload in all of them for 10 minutes.

30GPU notebooks running together
0failures during the 10-minute run
3 saverage time to start a session (5 s slowest)
~204TFLOPS combined, steady throughout

Each user's share of the GPU

Hover or focus a bar. Press a legend button to show or hide a GPU.

GPU throughput (TFLOPS) of each of the 30 users, grouped by the GPU they shared: two GPUs carried 12 users each and one carried 6.
View the data as a table

What happens as more users share a GPU

Switch between the GPU's total output and what each user gets.

Measured with a synthetic GPU benchmark (large matrix multiplications) on the three DGX Spark GPUs. TFLOPS means trillions of operations per second. Where two test runs differ, the average is shown. This load test was run before the per-notebook GPU memory limits were switched on.

10Under the hood

How the system works

When you log in, JupyterHub starts a personal notebook server for you on one of the three DGX Sparks. Your notebook then talks to shared services, and all connection settings are provided automatically. Press a part to read about it.

Your browser JupyterHub Your notebookon 1 of 3 Sparks Garage MLflow Qwen NAS archive
Pre-installed: Python 3.13, PyTorch 2.13 with CUDA 13, torchvision, NumPy, pandas, SciPy, Matplotlib, seaborn, scikit-learn, XGBoost, OpenCV, Hugging Face Transformers and datasets, NLTK, spaCy, MLflow, TensorBoard and Git. Packages you install yourself last until your server restarts, so ask the administrator to add one to the lab image.
11Sharing the GPUs

Good habits for a shared lab

The GPUs and the language model are shared by everyone. A few habits keep them fast for all.

Stop your server when you're done

Use File → Hub Control Panel → Stop My Server. Servers with no activity for 60 minutes are stopped automatically. Your files are kept.

Stay within your limits

8 GiB of GPU memory and 8 GB of RAM. Free memory you no longer need, and load large files in pieces.

Save before long jobs

Keep important results in Garage or MLflow, not only in memory, so nothing is lost if your server stops.

Never put credentials in code

The lab provides them automatically. Do not copy them into notebooks, Git repositories or reports.

12Questions

Frequently asked questions

Will my work be lost if I log out?
No. Files in your home folder, Garage and MLflow stay. Only what is in notebook memory (variables) is lost when the kernel or server restarts, so run your notebook again from the first cell after a restart.
What happens to my files after 7 days?
Your home folder is copied to the NAS and checked file by file, then moved to the read-only archive, and you start with a fresh, empty home. Nothing is deleted: your old files stay readable in the archive folder, and you can copy back what you need.
Can other students see my work?
Your home folder belongs to your account. Garage and MLflow, however, are shared by all students through common lab credentials, so keep your files under your own folder and never store passwords, personal data or anything confidential in the lab.
What is the difference between student and super accounts?
Both have the same notebook limits (8 GB RAM, up to 8 GiB of GPU memory) and the same services. Super accounts (7) also have a Super Notebook that can train on all three GPUs at once, with up to 40 GiB on each, one job at a time.
I can't sign in
Check the username and password you were given, or ask your platform administrator. If you signed up yourself, your account must be approved by an administrator before notebook access is enabled.
What if I run out of GPU memory?
Past 8 GiB, PyTorch reports "CUDA out of memory" and your kernel keeps running: use a smaller batch or model, and free tensors you no longer need. If a notebook goes past 10 GiB, the lab stops that kernel to protect other students and leaves a note in your home folder.
Why did my kernel die while loading data?
Your notebook reached its 8 GB RAM limit. Load large files in pieces, use two to four data-loader workers, and shut down notebooks you are not using.
Can I install extra packages?
Yes, for quick experiments, but they are lost when your server restarts. Ask the administrator to add a package to the lab image if you need it permanently.
Which language model is available, and how fast is it?
Qwen3-30B-A3B-FP8, shared by the whole lab. It answers at about 35 to 40 tokens per second for one user, slower when many students use it at once, with up to 32,768 tokens for your prompt plus the answer.
Can I download my trained models?
Yes. Models are files in your workspace or storage folder, and you can download them whenever you like.
What if something doesn't work?
Restart your Jupyter kernel first (Kernel → Restart). That fixes most problems. Then check two things: your disk space (a full home folder stops files from saving, so delete what you no longer need), and your memory use (your own notebooks and kernels may still be holding memory, and because the GPU is shared, another user may already be using part of it, which is why a job can run out of memory or run slowly). Shut down kernels you are not using and try again. If it still fails, contact the AI CoE lab administrator and quote any error code you see.