VNC on XWindows platforms creates a local virtual XWindow desktop that supports your choice of window managers, has low latency and can be viewed by a phelora of platform supporting viewers off your client machine of choice. I am using a JAVA viewer, as I lack local admin. The X tcp or unix sockets run inside the host for min laatency (unless you point off-host X clients to it), and a VNC socket connects the viewer. You can run the VNC tcp though an ssh tunnel for security.
Heterogenous clustering requires smarter load balancing and code compatability or porting. Java is portable, compared to C++/g++, which produces code specific to the CPU and O/S, but still is very widely available to compile locally compatible code.
VM makes sense. In practice, very few modern systems page much, and it makes the environment that much more robust. It can support huge sparse matrixes in an mmap()'d space, key to many problems.
Going highly parallel on cpu and ram suggest that net and file access will become bottlenecks, so yes, you need to put lots of work into making them as parallel as possible, too. Network fabric needs to be many path switches and high bandwidth. If you go fiber with either, remember that with its higher speeds comes higher latency, so problems may need to be structured to avoid that. Net and file have been becoming the same problem, as more and more file is remote from the host.