Popcorn Linux: Compiler, Operating System and Virtualization Support for Application/Thread Migration in Heterogeneous ISA Environments


One Line Summary

This talk will present the Popcorn Linux infrastructure, composed of compiler/operating system/virtualization support to enable application and thread migration across cores or machines of different Instruction-Set-Architecture.


The Popcorn Linux project (http://www.popcornlinux.org/) aims to help developers, system administrators, and users reap the performance and energy consumption benefits of heterogeneous hardware using highly programmable shared-memory programming languages like C and C++. Popcorn Linux targets OS-capable processors, including clusters of machines equipped with CPUs of different Instruction Set Architectures (ISAs), as well as future Chip Multiprocessors integrating cores of multiple ISAs. Popcorn Linux aims to reach this objective while still maintaining high programmability, i.e. without requiring modification of existing application code.

To achieve this goal, a cornerstone of our work is to enable migration of C/C++ applications from one ISA to another. Popcorn Linux currently implements this feature between the x86-64 and ARM64 ISAs, using a compiler toolchain (based on LLVM) which produces multi-ISA binaries, a distributed operating system (based on Linux), and a set of components which transform the state of an application from one ISA to the other at runtime. Taken together, this infrastructure enables POSIX/OpenMP C/C++ applications, including legacy code, to transparently execute in multi-ISA environments with little architecture-specific code, allowing high performance and energy gains.

The first part of the talk will put the focus on the compiling infrastructure and present more generally the current implementation of our Arm64/x86-64 migration setup. The second part of the talk will depict the design and implementation of an in-kernel distributed shared memory system to ease thread migration. Finally, the third part of the talk will present ongoing work related
to migration of simple virtual machines (unikernels) across ISAs.


Heterogeneous Computing, Application/thread Migration


  • Sang-Hoon Kim

    Virginia Tech


    Dr. Sang-Hoon Kim is a Postdoctoral Associate at the Bradley Department of Electrical and Computer Engineering at Virginia Tech, and have been working with Dr. Ravindran from 2016 fall. Before joining Virginia Tech, he received his Ph.D. in Computer Science from Korea Advanced Institute of Science and Technology (KAIST) in 2016. His doctoral dissertation focuses on the memory management in mobile devices. His research interest includes the storage systems and distributed systems as well as memory systems, and he published the work to high-ranked international conferences and journals. Before starting his Ph.D., he worked for start-up companies to build network intrusion detecting systems (IDS) that were deployed to commercial data centers and Korea government organizations.

  • Rob Lyerly

    Virginia Tech


    I am an enthusiastic and hardworking student who is constantly exploring new technologies in computer engineering & science. While I have many broad interests in computing, my heart lies at the intersection of hardware and software – namely Computer Systems and Systems Software, ranging from operating systems & runtimes to compilers & heterogeneous architectures. I am currently working towards earning my Ph.D. in Computer Engineering at Virginia Tech.

  • Pierre Olivier

    Virginia Tech


    I am a Postdoctoral Associate working in the Electrical and Computer Engineering department at Virginia Tech. My main topic of research concerns Operating Systems. More precisely, I am working on virtualization on the topic of Unikernels in various environments (Xen/Kvm).