Computer Science Speaking Skills Talk
In Person - Mehrabian Collaborative Innovation Center, Panther Hollow Conference Room 4105
CHRISMA PAKHA , Ph.D. Student, Computer Science Department, Carnegie Mellon University
Evaluating User-Interrupt as an inter-thread communication mechanism for fine-grained parallelism
Achieving high-performance portable parallel programs with low programmer effort is becoming even more important as multicore processors are becoming prevalent. This talk describes how User-Level Interrupts (ULI) can help achieve this. In particular, we describe Intel's ULI implementation, User Inter-Processor Interrupt (UIPI), and how it can be used to realize a low overhead and low latency inter-thread communication for fine-grained parallel programs.
In most fine-grained parallel programs, inter-thread communication is built using polling. A thread monitors a specific memory location to detect requests from another thread and invoke the appropriate handler. Programmers or compilers need a policy to balance the overhead introduced by polling and its response latency.
However, finding a good policy that works for all cases may require effort. With UIPI, instead, a thread installs a UIPI handler that is invoked when it receives requests from a different thread. As a result, the software is no longer responsible for detecting requests and invoking handlers. Unlike Inter-processor Interrupt (IPI), UIPI does not have high interrupt handling overheads as it does not involve switching privilege levels. We compared the performance of UIPI with polling in our work-stealing framework, where inter-thread communication is used to load balance tasks between threads.
Presented in Partial Fulfillment of the CSD Speaking Skills Requirement.