Our Mascot: The noble groundhog

The Prognostic Lab is an experimental systems research group in the Computer Science Department at the University of Pittsburgh led by Assoc. Prof. Jack Lange. Our work focuses on the design of core systems software capable of fully utilizing next generation hardware environments while at the same time being amenable to dynamic resource managers. Our research is based primarily in the context of high performance and extreme scale computing. To increase the applicability of high performance systems, we seek to provide unmodified applications transparent access to high performance resources. Our methods are based on the design, implementation and evaluation of experimental systems.

  • Jack Lange, Associate Professor
  • Nick Gordon, PhD Student
  • Maddie Boby, PhD Student
  • Jinpeng Zhou, PhD Student
Former Members
  • Charles Smith -- Built VM configuration framework for Palacios
  • Scott Whipkey -- Investigated Nested Virtualization I/O performance
Active Projects (Source code repositories are here)

    Leviathan Node Manager

    Leviathan is a intra-node management and information service for multi-enclave environments. It's goal is to explore the use of in memory databases to manage and integrate enclave instances, each running independent and isolated OS/Rs. Leviathan also serves to integrate many of our other projects under a common runtime API. At the heart of Leviathan is an information service built on a in-memory No-SQL database.
    (If you are looking for the Hobbes environment download this first, and run ./setup.sh)

    Pisces Co-kernel

    Pisces is a lightweight co-kernel architecture that is designed to allow multiple native Operating Systems to run concurrently on the same local compute node. Each Operating System instance provides an isolated enclave to a co-located workload while ensuring that it's performance not impacted by other workloads on the same local node. Pisces is primarily designed to support in-situ and composed HPC applications, which require strong performance isolation to prevent cross workload interference.

    Palacios VMM

    Palacios is an OS independent virtualization library, that provides VMM functionality to a host Operating System. Palacios is highly configurable and designed to be embedded into different host operating systems, such as Linux and the Kitten lightweight kernel. Palacios is a non-paravirtualized VMM that makes extensive use of the virtualization extensions in modern Intel and AMD x86 processors. Palacios is designed specifically for HPC environments, and has been used to virtualize the full range of hardware from desktop workstations to Top 500 ranked Cray supercomputers.

    XEMEM Shared Memory

    XEMEM is a cross enclave local shared memory architecture meant to allow applications to directly share memory even when they are deployed inside separate OS/R instances. XEMEM provides a common API that is portable across arbitrary enclave topologies and allows unmodified application binaries to be deployed to any OS/R instance based on runtime configuration decisions.

    Kitten Lightweight Kernel

    Kitten is a lightweight kernel (LWK) compute node operating system, similar to previous LWKs such as SUNMOS, Puma, Cougar, and Catamount. Kitten distinguishes itself from these prior LWKs by providing a Linux-compatible user environment, a more modern and extendable codebase, and a virtual machine monitor capability via Palacios that allows full-featured guest operating systems to be loaded on-demand.

Completed Projects


    HPMMAP (High Performance Memory Mapping and Allocation Platform) is a lightweight memory manager for commodity operating systems. It provides a memory management stack that can support unmodified high performance computing (HPC) applications running on Linux.

All content and images © 2015 Jack Lange