Paper Review 05 - Junkyard Computing
My thoughts on Junkyard Computing: Repurposing Discarded Smartphones to Minimize Carbon
Today’s paper has received a Distinguished Paper award from ASPLOS ‘23. It aims to understand the carbon impacts of reusing discarded consumer computing devices as servers in datacenters.
Do you have old smartphones at home? Maybe old laptops?
Many of us likely have e-waste that we haven’t quite gotten around to disposing of yet. In my apartment I currently have 3 old smartphones, 2 old laptops, and 2 unused raspberry pis. While I am mildly ashamed of my e-excess, I like to tell myself that someday I’ll find uses for these things. Most of my daydreams involve repurposing these discarded devices in someway - I’d like to self-host this website on an rpi eventually, I’d like to put a media server on one of the laptops, I’d like to dabble in smarthome/automation solutions with some of the other devices, one of the phones could permanently live next to our bluetooth speaker as a media controller, etc. There’s a lot of latent computing power in these devices, and as all of them are less than a decade old, they would generally perform acceptably for most tasks today. This is just the devices in my apartment though. Consider all such phones/laptops across the world - how much latent computing power do we have that’s destined for landfills?
This paper proposes using discarded consumer devices instead of traditional
servers in datacenters. It goes on to define a way of representing the carbon
emissions, and compares the repurposed cluster against a similarly powerful
server. Finally, it also compares how the repurposed cluster fares against a
traditional server using memcached
to benchmark.
Aren’t newer devices more efficient?
The paper highlights a key observation that while newer computing devices may have better power efficiency, manufacturing those new devices specifically for use in datacenters poses a unique carbon cost that repurposing existing devices is immune from (the claim is that the carbon cost of usage is better amortized over the lifespan of the device). The paper then goes on to show that while modern smartphone/laptop compute capability is impressive, it doesn’t quite match up to mid-range server-class hardware, and clustering multiple devices together is required. While this means that some applications will not run as well, many common tasks do perform reasonably well, and some smartphones/laptops are similarly spec’ed compared to some low-tier AWS instances.
The paper also sketches out a way to efficiently charge the devices in a carbon-friendly way by only charging when the California energy grid is being supplied with solar energy. This charging is also enabled/disabled depending on the state of the battery which likely helps with battery longevity (though no such study is done as part of this work). The built-in presence of batteries makes this much simpler to implement than with traditional servers, which may require special infrastructure to implement similar techniques.
The paper also benchmarks the cluster in a number of ways, including running
memcached
, which shows that this architecture is promising, and could host
real-world applications.
My Thoughts
- This would be super cool to power the indie web
There’s so many interesting “indie web” projects out there from LOW TECH MAGAZINE, nekoweb, and even protocols like Gemini. The common thread between all these projects is that they don’t require very powerful resources - it’s a small amount of data that serves a low-number of requests, with maybe some occasional spikes of traffic, but still nothing near the high-volume traffic that “popular” website incur. The kind of server architecture in this paper would definitely be sufficient to power these communities, and it makes me think about getting some friends together and making a free hosting platform for personal websites built with repurposed devices.
- It would be interesting to see what the numbers would look like if the carbon impacts of manufacturing the smartphones was included.
In some ways, an aftermarket for smartphones still contributes to/enables the demand for new manufacturing of smartphones. That doesn’t mean that finding ways of reusing existing devices isn’t important or useful, but it does mean that compared to solutions that find ways of prevent consumers from buying new devices (or repairing devices they already own instead of buying new) would eliminate the carbon emissions of manufacturing as well.
- Battery concerns
Batteries can fail catastrophically, which jeopardizes all co-located compute nodes. While the smart-charging algorithm probably helps more than just charging all the time, is this a better solution than removing the battery entirely? Removing the battery isn’t necessarily easy though, as it’s unclear if most phone would work without a battery present (maybe some kind of shim that bridges the battery pins would work?), and disassembling the phone to get to the battery isn’t easy in most phones.
- How can consumers reuse their own devices?
Even if there was a free way to send your old phones/laptops to datacenters, there are many barriers to adoption. First, a convenient distribution network. Shipping phones/laptops requires some amount of care/padding, and most people are unlikely to take the trouble of doing it. Second, data privacy concerns. People maybe reluctant to send devices that at one point may have stored sensitive data to untrusted third parties. This probably isn’t a huge deal, since many people regularly resell their devices after using them, but the additional steps of having to wipe your device before shipping it is definitely a non-trivial hurdle. The ideal scenario would be that consumers are able to repurpose discarded devices on their own, but most people don’t have a clear usecase of additional computing resources. While there are some possibilities like self-hosting websites, everyone self-hosting their own websites is probably more carbon emissions than using hosting services that can better achieve economies of scale and amortize emissions.
- Heterogeneous computing
The heterogeneous nature of discarded compute devices is particularly interesting to me. While implementing this approach large scale would likely be able to avoid the issue by only using the most popular devices, on a smaller scale it is beneficial to be able to use any device. While there’s prior work on building hypervisors to abstract over heterogeneous/disaggregated resources, I don’t think I’ve seen any that build on top of consumer computing devices. That would be very cool to see.
Overall, I’m glad this paper exists and seeing real numbers on what the potential benefits of reusing devices in this way could be is encouraging. However, it doesn’t address logistics around aggregating devices, or around how this approach could scale as new devices are added to a cluster (specifically, in terms of the cost of setting up new devices). In my opinion, the fundamental issue with modern e-waste is that consumers are incentivized to throw away devices in favor of buying new, higher-margin devices compared to buying parts to repair or upgrade devices. It follows that, right to repair legislation, regulations around planned obsolescence, and less wasteful software (do you really need multiple megabytes of JS to render a static page?!) are more likely to have more meaningful impacts on carbon emissions.