Skip to content
ahughes12 edited this page Jul 16, 2020 · 7 revisions

Welcome to Popcorn Linux - "Kernel Upstream Edition"

Background

Popcorn Linux is a Linux kernel-based software stack that enables applications to execute, with a shared code base, on distributed hosts. Popcorn allows applications to start execution on a particular host and migrate, at run-time, to a remote host. Multi-threaded applications may migrate any particular thread to any remote host.

This version of Popcorn Linux was published as an RFC to the kernel mailing list in April 2020. It supports only x86 configurations, and it is based off of Linux 5.2 commit 72a20ce. The stack includes a modified kernel and a userspace run-time library. Our objective is to arrive at a version of Popcorn Linux that may be included in the upstream Linux kernel. For this we wish to work closely with the kernel developer community. We appreciate your feedback and input in the project.

To get started with Popcorn Linux, please visit our Getting Started page.

To learn more about the Popcorn Linux modules please visit our Popcorn Modules page.

Pipeline

Distributed Signals

Code base to support distributed signals is actively being integrated into this version of Popcorn Linux.

Benchmarking

There are NPB benchmarks and NGNIX test code found here. These have not been run with this "5.2" version of Popcorn Linux. Results for this stable version of Popcorn Linux is in our current work queue.

Linux 5.7

Porting the code for Linux 5.7 is also actively being worked on. We hope to have a stable 5.7 version soon.

Heterogenous Popcorn Linux

Currently, the code base being purported for mainlining into the upstream kernel is the core distributed thread migration feature set (X86 only). Virginia Tech research teams, however, have already developed a version of Popcorn Linux that allows applications to concurrently execute across ISA-different cores (.e.g. X86, ARM). This version adds an LLVM-compiler toolchain to the stack.

Both the compiler toolchain and the heterogeneous implementation of Popcorn Linux may be found at these github locations. Note these branches are in a constant state of flux and may not be stable versions.

Heterogeneous Popcorn Linux

LLVM Compiler

Finally, please read Popcorn Linux’s security disclaimer here.

Clone this wiki locally