IMPRESS: Improving Multicore Performance and Reliability via Efficient Software Support for Monitoring

Author(s): Nagarajan, Vijayanand | Advisor(s): Gupta, Rajiv | Abstract: With the advent of multicores, there is demand for monitoring parallelprograms running on multicores for enhancing reliability andperformance. Debugging tools such as data race detection anddeterministic replay debugging (DRD) require a parallel program to bemonitored at runtime. Likewise, techniques such as dynamicinformation flow tracking (DIFT) that are used for preventingsecurity attacks also require runtime monitoring. Furthermore,techniques such as speculative parallelization and speculativeoptimization, that strive to expose parallelism and increaseperformance of programs, also require runtime monitoring --detecting misspeculation, which is an integral component of anyspeculative technique requiring the program to be monitored atruntime.While each of the above monitoring applications are quite different intheir purpose and implementation, they all share a common requirementin the context of monitoring a parallel program running on a multicore-- the need to detect and react to interprocessor shared memorydependences (ISMD). Current software based monitoring tools, due totheir inability to detect and react to ISMDs efficiently, arerendered inapplicable for monitoring parallel programs running onmulticores. On the contrary, hardware based monitoring tools, whileapplicable in a multicore context, require specialized hardwaremodifications specific for each monitoring task.This dissertation IMPRESS strives to Improve Multicore Performance andand Reliability by providing Efficient Support for enabling Softwarebased monitoring. To enable software based monitoring on multicores,this dissertation proposes ECMon -- lightweight and general purposesupport for exposing cache events to the software, in effect,efficiently exposing ISMDs to the software. Using ECMon, a variety ofmonitoring applications, which were inapplicable on multicores, cannow be used to efficiently monitor parallel program on multicores.More specifically, a class of monitoring applications known as shadowmemory tools such as DIFT for security, Memcheck and Eraser fordebugging, can now monitor parallel programs running on multicores atalmost the same execution overhead as monitoring sequentialprograms, using ECMon support. ECMon can also be used to developnovel monitoring applications for increasing performance andreliability. In particular, ECMon can be used for performingspeculative optimizations on parallel programs which results in about12.5% execution time reduction in a set of seven parallel programsconsidered. Furthermore, ECMon support can be used to record ISMDs insoftware, which only results in 3 fold execution time slowdown.Finally ECMon can be used by servers to recover from memory errorswithout requiring heavy-weight checkpointing or rollback.To summarize, this dissertation proposes light-weight and generalpurpose support in the form of exposing cache events to the software.Using this support, it is shown how parallel programs running onmulticores can be monitored efficiently for increasing performance andenhancing reliability.