For my Uplink code, I’ve dedicated a 12-core machine here. A single core easily handles our current compute loads, so it’ll be awhile before I need anything more.
Currently, bringing the PC down for updates is very quick. Should even that delay become intolerable, I have several alternate machines in the area, that can load-share (or completely take over whenever I update the main one).
To deal with power issues, every machine has a sizeable battery backup.
To deal with Microsoft-induced Patch Tuesday reboots, I will be using AlwaysUp, which runs my Uplink code (and any related programs) as Windows services.