We are interested in the design of systems software for high-performance and parallel computing. As we see hardware scale up--both in terms of the number of interconnected machines and in terms of the number of computing elements on a single chip--We believe it is time to reconsider some of the design decisions that have sustained the popularity of the Linux/x86 software stack for general-purpose computing. Particularly, how should we organize/structure systems software stacks for future massive-scale machines?
Kyle C. Hale, Assistant Professor
Email: khale [at] cs [dot] iit [dot] edu
Office: SB 237F
Amal Rizvi
Email: arizvi1 [at] hawk [dot] iit [dot] edu
Office: SB 115
Conghao Liu
Email: cliu115 [at] hawk [dot] iit [dot] edu
Office: SB 115
Brian Tauro
Email: btauro [at] hawk [dot] iit [dot] edu
Office: SB 115
Hybrid Runtimes are a combination of a parallel runtime and a traditional OS kernel layer called an Aerokernel, which is similar to a library OS, but fully implemented in kernel-mode. This mash-up of the runtime and OS kernel allows the runtime to choose its own abstractions and access privileged hardware which is typically only accessed at ring 0. Hybrid runtimes are a good match for high-performance systems where performance is critical. Take a look at the case paper here.
Nautilus is an Aerokernel that we built to support the Legion runtime and other home-grown parallel runtimes. It is designed for the hybrid runtime model and supports large many-core chips with complex memory hierarchies. It boots on commodity x86-64 hardware and the Intel Xeon Phi. You can find out more at the Nautilus website.
Multiverse is a runtime system that enables legacy applications to run in the context of a Hybrid Runtime (HRT) environment without any porting effort. The runtime (with the application) is automatically split into two parts. One part provides a legacy general-purpose OS and library environment. The other part constitutes an accelerated environment wherein the runtime enjoys direct hardware access and the light-weight, high-performance mechanisms provided by an Aerokernel.
Nemo is an accelerated, asynchronous software event system designed for the Hybrid Runtime (HRT) model. Nemo events leverage Inter-processor Interrupt (IPI) hardware and the privileged execution model of HRTs to speed up software events by several orders of magnitude.
Our primary funding currently comes from the National Science Foundation via the following awards:
Some ongoing FPGA work is enabled through access to the HARPv2 (now vLab) testbed, courtesy of Intel.