> improve the programmability of emerging heterogeneous hardware
reducing the fiddlyness of developing for mixed hardware
> those with Instruction Set Architecture (ISA)-diverse cores
those with multiple CPUs speaking different machine code
> in both native and virtualized settings
both bare-metal and VMs
> automatically compile/synthesize/execute code on ISA-heterogeneous hardware
automatically translate between the different machine codes.
---
Now for what it actually means, is that Popcorn is a single Linux that can simultaneously run on a bunch of different processors (say, your mobile phone, a raspberry, and a desktop) all at once while being used just like a single Linux system to the end-user/programmer. I don't think it's meant to be used by consumers, but for servers or supercomputers, that kind of stuff.
I believe that the Touch Bar Macbooks also pair an x86_64 processor with an ARM coprocessor that runs the touch bar.
Why would servers/supercomputers care about heterogeneous hardware (including multiple ISAs, even!)? If I'm playing around at home, that's great; I'd love to make a cluster out of a couple of old laptops, an old phone, and a Raspberry Pi. But at work, I'd just... buy a dozen identical servers. Even across generations, x86 is mostly uniform enough to just ignore the changes (with some minor gotchas around extensions, but if you only migrate forward that should be fine too).
Know those moments in movies where they put “all the computers in the world” onto the task of cracking some encryption before it’s too late? This could be used for the technical part of that (once you’ve got all the HPC labs’ cooperation.)
that may have been the only time in history though
That's why your computer has a GPU.
But a system like this is a requisite for non-uniform computers to exist. Thus it must exist without the other, at least for a while.
> The Popcorn Linux project is exploring how to improve the programmability of emerging heterogeneous hardware, in particular, those with Instruction Set Architecture (ISA)-diverse cores, from node-scale (e.g., Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGAs) to rack-scale (e.g., Scale-out processors, Firebox, The Machine), in both native and virtualized settings. Additionally, the project is exploring how to automatically compile/synthesize/execute code on ISA-heterogeneous hardware.
I know some of those words!