I have some desktops (the tower kind) lying around and I’m wondering if there’s a way that I can connect them all to one display and combine their computational power or at least make them all accessible in one place. I want to get into server hosting but only have one monitor. They’re currently running LMDE.
Any ideas?
connect them all to one display
The X Window System was invented originally with this idea. It can even connect multiple machines to multiple displays seamlessly.
https://en.m.wikipedia.org/wiki/X_Window_System
It still works fine, but after most people have been using it only on 1 PC and screen, they abandoned it in favor of Wayland.
Nowadays even self hosters, the cream of the crop of all nerds ;-) usually prefer headless servers and only 1 PC with many screens connected to it.
Are you telling me Beowulf clusters are back?
Jokes aside, it depends what you want to do. You can’t really build one powerful gaming PC out of multiple, but your can run parallel workloads in a number of different ways. What exactly, comes down to what you’re doing. A kubernetes cluster is different from a Blender render farm, for example.
As others mentioned you can just remote into the servers with ssh, vnc, rdp, etc. if you want physical displays on them, you can look for a cheap KVM which lets you control multiple PCs with one keyboard, monitor, and mouse.
Holy Slashdot batman!
Back in the day I used to use Synergy to have one mouse and keyboard across multiple monitors and OSes
https://symless.com/synergy/software-kvm
I could seamlessly scroll across 3 monitors pushed by 3 different computers.
I use Deskflow. It’s an upstream for Synergy. I’ve Tumbleweed and Mac connected. Buttons can be mapped to avoid difference in keyboard layouts and streamline the experience. Been happy with it. 🙂
I’m old enough to have clustered some 16 desktop PCs using openMOSIX a long time ago, before the era of multiple cores and threads.
The whole cluster would function like a single Linux system, automatically spreading the work between nodes.
I used it to run SETI@Home for a bit of fun.
It was a neat idea, but never went mainstream. Soon single PCs were powerful enough to run virtual machines and be partitioned instead of clustered.
Now software bloat has caught up to the gains we’ve made in hardware and we’re back to it taking 15 seconds to load a word processor.
Bloody got a new Windows 11 lenovo something today. It’s so slow to just open settings up.
I know the Windows vs Linux thing is like beating a dead horse, but I use both, and the Linux machine never gets slow like Windows does. Windows does so much crap in the background that you and I don’t need want or care about, and Linux just does what it’s told when it’s told. Give it a try if you’re feeling adventurous.
The term for combining their computational power is “concurrent computing”, “parallel computing” or “distributed computing” which aren’t really all exactly the same but i can’t find distinctions betwen them that are well defined. making them all accesible in one place is something i want to do as well but i get distracted easily and haven’t made much progress.
KVM is an abbreviation that means ‘keyboard video mouse’ which also might be something to look into but it can be confusing as it also is an abbreviation for ‘kernel virtual machine’ which also might be related but that’s as far as i got mostly.
i believe you can create a local network if you have a router/hub/switch device with multiple ethernet ports. if all the devices have wifi you should be able to connect through that, using something like jellyfin or maybe proxmox. wish i knew more and could help, hopefully you get better advice because i want to do the same or something similar.
You can install a Proxmox virtualisation cluster, a popular (the most popular?) option for self-hosting services. All nodes in the cluster are visible in a single web interface. For additional system coordination, you can set up High Availability and clustered file systems that the nodes can share.
Do I need to have elevated network permissions to do that? I don’t have admin access on my WiFi network and it is shared with a lot of people.
It depends how much shit is blocked on the network at the user level.
There are several ways around it. If you are self hosting for a small trusted group, or just yourself, you can use Tailscale.
You don’t need to connect them to a display. Give them power and network, and access them remotely via ssh (or graphical protocol if you really want to, but unless you specifically want to run interactive GUIs there’s not much point).
As for combining their power… it depends on what kind of work you want to do.
I’m thinking use it to host a Minecraft or matrix server. I’m not expierenced with networking so nothing super advanced.
Matrix server is pretty complicated. You’ll need a reverse proxy, SSL certificates, and preferably a database like Postgresql. Minecraft would be a lot easier.
Either way, a lot of it would involve the command-line anyway, so I would second the SSH suggestion. It’s fairly easy to set up. When installing Ubuntu Server for example it asks you right away if you want to install one.
I’m wondering if there’s a way [to] combine their computational power.
Only if your problem can be be split up reasonably, otherwise you will spend more time waiting for data to move.
Where it can work: video encoding, CI pipelines, data analysis
Where it won’t work: interactive stuff, most single file operationsI want to get into server hosting […]
Then you don’t need another reason to do it.
[If] I can connect them all to one display [or] make them all accessible in one place.
You can either get a hardware switch or chose a primary computer and connect to the others. For that you can use remote desktop software or be a try hard and use ssh.
The hardware switch looks promising. Are there any decent ones for under $50 out there or are they usually a big investment?
You don’t even need hardware for it. Barrier is a software solution.
Barrier is only for inputs IIRC. To get Keyboard Mouse and Video (more usually KVM) you need some kind of remote desktop software. Rustdesk is pretty straightforward. I think Gnome handles RDP access natively now if you’re running a Gnome based Linux distro. Otherwise XRDP is a bit of a faff, but solid once it’s working.
You can connect all mashines via LAN and make a Proxmox cluster.
It is complicated. There are several options, each with tradeoffs in functionality, compatible software, and performance.
A simple method is to use one system as a desktop, and SSH into the others as “headless”.
Other options include making a K8s or HPC cluster (there are other cluster types).
Spreading a single set of communicating processes requires a low latency interconnect. Something better than Ethernet, like Infiniband. But many programs don’t support that.