The problem
Anything interesting in machine learning wants a GPU, and a machine with one costs more than most undergraduates have. The demand is also lumpy. A student needs the whole machine for an afternoon, or a small slice of it for a fortnight, and almost never the thing they would have had to buy outright. That argues for pooling the hardware and handing out allocations that can be resized and given back.
What we built
A private cloud on a departmental server running OpenStack, brought up with DevStack on Ubuntu. The hardware underneath was Nvidia 3000-series GPUs, 128 GB of RAM and a terabyte of disk. OpenStack handles the plumbing: Nova for compute, Glance for images, Keystone for identity, Neutron for networking, Cinder for block storage, and Horizon for the dashboard an administrator actually clicks. A student gets an instance sized to what they asked for, reached over SSH with a key pair, with security groups and a floating IP in front of it.
Reaching any of it from outside was the awkward part. The server sat behind the college NAT, so an instance with a perfectly good address on the internal network was invisible from a dorm room. We ran Jupyter on the instance and exposed it through an ngrok tunnel, which gives you a public URL without anyone having to reconfigure the campus network. The student opens that link and enters a token the administrator hands out.
What it is, and what it is not
This is a systems paper. It documents a build in enough detail to repeat it, down to the
local.conf settings and the IP-forwarding rules that made the tunnel work. It
is not an evaluation. There are no throughput numbers, no measurement of utilisation
against the dedicated machines it was meant to replace, and no scheduling policy beyond an
administrator deciding who gets what. Scheduling is the part I would build next, and the
part worth measuring.
It is also the earliest thing I built that was infrastructure for other people's research rather than for a grade, which is why it stays on this list. The work was joint, with four collaborators, and appeared in the International Research Journal of Engineering and Technology, volume 9, issue 4 (April 2022), pages 1045 to 1055.