About
We seek to advance the state of the art for parallel systems. Usually, the layers of a parallel system—the compiler, run-time system, operating system, and hardware—are considered as separate entities with a rigid division of labor. This project investigates an alternative model, interweaving, in which these layers are integrated as needed to improve the performance, scalability, and efficiency of the specific parallel system.
The research involves five thrusts:
- Blending studies using compiler technology to achieve integration of code that would normally be found in distinct, separately compiled layers.
- Coherence considers hardware without memory coherence and its implications throughout the interwoven parallel system.
- Predictability studies the integration of hard real-time behavior into a parallel system through hardware and compiler support.
- Mapping considers address translation for parallel systems given hardware and compiler support.
- Debugging studies how to debug an interwoven system.
Team
Faculty
- Peter Dinda, Northwestern
- Kyle Hale, IIT
- Nikos Hardavellas, Northwestern
- Simone Campanoni, Northwestern
Students
- Conor Hetland, Ph.D. Student, Northwestern
- Brian Suchy, Ph.D. Student, Northwestern
- Michael Wilkins, Ph.D. Student, Northwestern
- Vijay Kandiah, Ph.D. Student, Northwestern
- Enrico A. Deiana, Ph.D. Student, Northwestern
- Brian Tauro, Ph.D. Student, IIT
- Conghao Liu, Ph.D. Student, IIT
- Nanda Velugoti, Ph.D. Student, IIT
- Mike Leonard, M.S. Student, Northwestern (graduated)
- John Albers, M.S. Student, Northwestern (graduated)
- Xiaoyang Wang, M.S. Student, Northwestern (graduated)
- Wenyi Wang, M.S. Student, Northwestern (graduated)
- Zhen Huang, M.S. Student, Northwestern (graduated)
- Souradip Ghosh, Undergraduate, Northwestern (graduated)
- Drew Kersnar, Undergraduate, Northwestern
- Dave Washington, Undergraduate, Northwestern
- Alex Bernat, REU student, Northwestern
- Nicholas Wanninger, Undergraduate, IIT (graduated)
- Josh Bowden, BS/MS, IIT (graduated)
- Jin Han, Undergraduate, Northwestern (graduated)
- Jinhang (Frank) Wang, Undergraduate, Northwestern (graduated)
- Christopher Beauchene, Undergraduate, Northwestern (graduated)
- Michael Cuevas, Undergraduate, Northwestern (graduated)
- Aaron Nelson, Undergraduate, Northwestern (graduated)
- Siyuan Chai, Undergraduate, Northwestern (graduated)
- Jiacheng Ma, visiting student, Northwestern
- Karl Hallsby, Undergraduate, IIT
Publications
- N. Wanninger, J. Bowden, K. Shetty, A. Garg, K. Hale, Isolating Functions at the Hardware Limit with Virtines, Proceedings of the 17th European Conference on Computer Systems (EuroSys 2022), April, 2022. [paper] (best artifact)
- B. Suchy, S. Ghosh, D. Kersnar, S. Chai, Z. Huang, A. Nelson, M. Cuevas, A. Bernat, G. Chaudhary, N. Hardavellas, S. Campanoni, P. Dinda, CARAT CAKE: Replacing Paging via Compiler/Kernel Cooperation, Proceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2022), February-March, 2022. [paper]
- J. Ma, W. Wang, A. Nelson, M. Cuevas, B. Homerding, C. Liu, Z. Huang, S. Campanonoi, K. Hale, P. Dinda, Paths to OpenMP in the Kernel, Proceedings of the International Conference for High Performance Computing, Networking, Storage, and Analysis (SC '21), November, 2021. [paper]
- P. Nookala, P. Dinda, K. Hale, I. Raicu, K. Chard, Extremely Fine-grained Parallelism via Scalable Concurrent Queues on Modern Many-core Architectures, Proceedings of the 28th IEEE International Symposium on the Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS '21), November, 2021.
- K. Hale, Coalescent Computing, Proceedings of ACM Asia-Pacific Workshop on Systems (APSys '21), August, 2021. [paper]
- Q. Zeng, K. Hale, B. Glavic, Playing Fetch with CAT - Composing Cache Partitioning and Prefetching for Task-based Query Processing, Proceedings of the 17th International Workshop on Data Management on New Hardware (DaMoN 2021), June, 2021. [paper]
- V. Kandiah, A.M. Gok, G. Tziantzioulis, and N. Hardavellas, ST2GPU: An Energy-Efficient GPU Design with Spatio-Temporal Shared-Thread Speculative Adders, Proceedings of the 58th ACM/EDAC/IEEE Design Automation Conference (DAC 2021), October, 2021. [paper]
- M. Rainey, R. Newton, K. Hale, N. Hardavellas, S. Campanoni, P. Dinda, U. Acar, Task Parallel Assembly Language for Uncompromising Parallelism, Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2021), June, 2021. [paper]
- S. Ghosh, M. Cuevas, S. Campanoni, P. Dinda, Compiler-based Timing for Extremely Fine-Grain Preemptive Parallelism, Proceedings of the ACM/IEEE International Conference for High Performance Computing, Networking, Storage, and Analysis (SC 2020), November 2020. [paper]
- P. Dinda, A. Bernat, C. Hetland, Spying on the Floating Point Behavior of Existing, Unmodifed Scientific Applications, Proceedings of the 29th ACM Symposium on High-performance Parallel and Distributed Computing (HPDC 2020), June, 2020. [paper] [talk (youtube)] (best paper)
- B. Suchy, S. Campanoni, N. Hardavellas, P. Dinda, CARAT: A Case for Virtual Memory through Compiler- and Runtime-Based Address Translation, Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2020), June, 2020. [paper]
- S. Apostolakis, Z. Xu, S. Tan, G. Chan, S. Campanoni, and D. I. August, SCAF: A Speculation-Aware Collaborative Dependence Analysis Framework, Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2020), June, 2020. [paper]
- S. Apostolakis, Z. Xu, G. Chan, S. Campanoni, and D. I. August, Perspective: A Sensible Approach to Speculative Automatic Parallelization, Proceedings of the 25th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2020), March, 2020. [paper]
- C. Hetland, G. Tziantzioulis, B. Suchy, K. Hale, N. Hardavellas, P. Dinda, Prospects for Functional Address Translation, Proceedings of the 27th IEEE International Conference on the Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS 2019), October, 2019. [paper] [talk]
- B. Tauro, C. Liu, and K. Hale, Modeling Speedup in Multi-OS Environments, Proceedings of the 27th IEEE International Symposium on the Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS 2019), October, 2019. [paper]
- C. Liu, K. Hale, Towards a Practical Ecosystem of Specialized OS Kernels, Proceedings of the International Workshop on Runtime and Operating Systems for Supercomputers (ROSS '19), June, 2019. [paper]
- C. Hetland, G. Tziantzioulis, B. Suchy, M. Leonard, J. Han, J. Albers, N. Hardavellas, P. Dinda, Paths to Fast Barrier Synchronization on the Node, Proceedings of the 28th ACM Symposium on High-performance Parallel and Distributed Computing (HPDC 2019), June, 2019. [paper] [talk (google)] [talk (pdf) poster]
- K. Hale, P. Dinda, An Evaluation of Asynchronous Software Events on Modern Hardware, Proceedings of the 26th IEEE International Symposium on the Modeling, Analysis, and Simulaton of Computer and Telecommunication Systems (MASCOTS 2018), September, 2018. [paper]
- P. Dinda, X. Wang, J. Wang, C. Beauchene, C. Hetland, Hard Real-time Scheduling for Parallel Run-time Systems, Proceedings of the 27th ACM Symposium on High-performance Parallel and Distributed Computing (HPDC 2018), June, 2018. [paper] [talk]
- K. Hale, C. Hetland, P. Dinda, Multiverse: Easy Conversion Of Runtime Systems Into OS Kernels Via Automatic Hybridization, Proceedings of the 14th IEEE International Conference on Autonomic Computing (ICAC 2017), July, 2017. [paper]
- K. Hale, C. Hetland, P. Dinda, Automatic Hybridization of Runtime Systems, Proceedings of the 25th ACM Symposium on High-performance Parallel and Distributed Computing (HPDC 2016), June, 2016. [paper] [talk]
- K. Hale, P. Dinda, Enabling Hybrid Parallel Runtimes Through Kernel and Virtualization Support, Proceedings of the 12th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments (VEE 2016), April, 2016. [paper] [talk]
- K. Hale, P. Dinda, A Case for Transforming Parallel Runtime Systems Into Operating System Kernels, Proceedings of the 24th ACM Symposium on High-performance Parallel and Distributed Computing (HPDC 2015), June, 2015. [paper] [talk]
Software
Teaching
- CS 446, Kernel and Other Low-level Software Development, Northwestern
- CS 343, Operating Systems, Northwestern
- CS 450, Operating Systems, IIT
- CS 562, Virtual Machines, IIT
- CS 595-03, OS and Runtime Design for Supercomputing, IIT
- CS 595-01, Advanced Topics in Serverless and Edge Computing, IIT
- CS 322. Compiler Construction, Northwestern
- CS 323. Code Analysis and Transformation, Northwestern
- CS 397/497. Advanced Topics in Compilers, Northwestern
- CE 368/468. Programming Massively Parallel Processors with CUDA, Northwestern
- CE 456. Modern Topics in Computer Architecture, Northwestern
Sponsors
The Interweaving Project is made possible by support from the National Science Foundation via awards CCF-1533560 (Northwestern), CNS-1763743 (Northwestern), CCF-2028958 (IIT), CNS-1763612 (IIT), CNS-1730689 (IIT), CCF-1757964 (IIT), equipment donations through the Intel Parallel Computing Center at Northwestern, and generous equipment access by Intel.