Simultaneous multithreading (SMT), a new hardware paradigm combining uni- and multi-processor features, currently lacks adequate software support. Most of today's software --- operating systems, runtime systems, and applications --- naively treats an SMT as a conventional multiprocessor. Thus, today's SMT-equipped computers do not fully unfold their potential.
This project focuses on a synergistic approach combining runtime and operating system support to fully exploit the capabilities of SMTs. To meet this objective, this project stud-ies three different approaches. First, it investigates the benefits of using a helper thread along side the primary thread, by building a reference implementation of an SMT-aware Message Passing Interface (MPI) library. Second, this project investigates the benefits of dynamic mode switching an application between single-thread and multi-threaded con-figurations. Third, it modifies the operating system creating an SMT-aware scheduler. Benefits of this work are demonstrated for a variety of applications, including large-scale benchmarks and other nationally relevant parallel codes.
The broader impact of this work is in three main areas. First, both PIs are working to create an inter-disciplinary educational and research program. Second, students will be educated in the interaction between distributed systems, operating systems, and architecture. Finally, the project allows for technology transfer to a wide arena of fields, such as server-style computing, cluster computing, and massively parallel comput-ing. The developed framework and tools will be made generally available to the research community and labs.
"Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation."