Is there any low level software for 32 bit x86 that just does clustering and presents the cluster as a single virtual machine with many cores and share memory, disk.<p>Basically I am looking to take a bunch of x86 systems tie them together to make a unified virtual machine and then run a higher level OS on the virtual machine as if it was one computer. Local node RAM would appear as cache for the local CPU.<p>I am aware I can install linux on each node and make a beowulf cluster but I am wondering if there is a cleaner, lower level solution.<p>This is a hobbyist project at this point.
I doubt there's any such software under active development, because the only entities that run large clusters would be (1) uninterested in 32-bit x86 and (2) want to avoid the reliability problems inherent in a pseudo-unified view of a multi-machine system.<p>Your best bet might be to hack something together on top of QEMU. You could represent each physical machine as a NUMA node, and maybe use iSCSI for persistent storage. Note that this would imply full virtualization (not VTx), so the performance would be dreadful.<p>Google suggests the GiantVM project (<a href="https://giantvm.github.io/" rel="nofollow">https://giantvm.github.io/</a>) is an attempt at this. It's a years-old snapshot for a research paper, but you might be able to use it as a starting point.<p><pre><code> > I am aware I can install linux on each node and make a beowulf cluster
> but I am wondering if there is a cleaner, lower level solution.
</code></pre>
As general advice, be really careful about conflating "low level" and "clean". Most architectures benefit from layers of abstraction. If you want to build a distributed VMM and make it host a 200-core 32-bit x86 then that's about as far from "clean" as you can get. It'd be much better, architecturally, to run a distributed process scheduler such as Kubernetes that can directly represent the physical machines.