March 2020: Popcorn’s improved distributed shared memory protocol and subsystem has been accepted at Systor 2020! Paper to be available soon.
March 2020: Popcorn’s distributed shared memory subsystem, DeX, has been accepted at ICDCS 2020! Paper to be available soon.
March 2020:
We were planning to be at VEE/ASPLOS 2020 with a version of Popcorn completely in user-space! Virtual presentation available here. Paper is available here.
September 2019:
We will be at PLOS/SOSP 2019 with a new take on multi-kernel OSes! Paper is available here.
August 2019: We will be at SOSP 2019 with a
tutorial on Popcorn Linux! See our teaser!
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.
The project is exploring a replicated-kernel OS model for the Linux operating system. In this model, multiple Linux kernel instances running on multiple nodes collaborate each other to provide applications with a single-image operating system over the nodes. The kernels transparently provide a consistent memory view across the machine boundary, so threads in a process can be spread across the nodes without an explicit declaration of memory regions to share nor accessing through a custom memory APIs. The nodes are connected through a modern low-latency interconnect, and each of them might be based on different ISA and/or hardware configuration. In this way, Popcorn Linux utilizes the ISA-affinity in applications and scale out the system performance beyond a single system performance while retaining full POSIX compatibility.
Popcorn Linux uses an LLVM-based customized compiler that translates C/C++ applications into machine code suitable for execution and runtime migration across multiple instruction set architectures. The compiler generates machine code for each target ISA on which Popcorn Linux runs and instruments the code with migration points. The linker aligns global data, code and thread-local storage to be available at identical locations across all ISAs. A run-time system translates a program’s execution state (e.g., runtime stack and registers) at migration time between ISA-specific formats based on metadata generated by the compiler.
The native version of Popcorn Linux targets execution and runtime migration of native application across multiple ISA. Concerning the ongoing virtualization effort, Popcorn Xen, it focuses on Unikernels: minimal small sized-guests where a single application is statically compiled with a small OS layer in a LibOS fashion.
September 2019:
Popcorn-er Yihan Pang has defended his MS thesis. Read his thesis here!
April 2019: We will be at HPDC 2019 with new results on unikernel Popcorn! Read the paper and poster that we will be presenting!
April 2019: We will be at Systor 2019 with new results on Popcorn!
Read the paper that we will be presenting!
Popcorn Linux is an open-source project of the Systems Software Research Group at Virginia Tech.
This work is supported in part by ONR under grants N00014-13-1-0317, N00014-16-1-2104, and N00014-16-1-2711, AFOSR under grants FA9550-14-1-0163 and FA9550-16-1-0371, and NAVSEA/NEEC under grants 3003279297 and N00174-16-C-0018. Any opinions, findings, and conclusions or recommendations expressed in this site are those of the author(s) and do not necessarily reflect the views of ONR, AFOSR, and NAVSEA.