The Junkyard project repurposes discarded smartphones as compute nodes for distributed systems. My focus is autograding: in a recent offering of CSE 160, 330 students shared 40 reservable GPU pods on UCSD's DSMLP cluster. Around deadlines, demand reliably outpaced supply — students waited for feedback at exactly the moment they needed it most.
The insight is that student submissions don't need raw GPU power; they need a consistent, available execution environment. A cluster of repurposed phones can provide that at a fraction of the cost, using hardware that would otherwise be discarded. Phones are power-efficient, self-contained, and cheap(er than GPUs) to source. I'm investigating two core questions: how many phones are needed to serve a class of n students without meaningful queuing delays, and what is the throughput ceiling of a phone cluster before it degrades under load?