Skip to main content
Open Access Publications from the University of California

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

  • Author(s): Nagarajan, Vijayanand
  • Advisor(s): Gupta, Rajiv
  • et al.

With the advent of multicores, there is demand for monitoring parallel

programs running on multicores for enhancing reliability and

performance. Debugging tools such as data race detection and

deterministic replay debugging (DRD) require a parallel program to be

monitored at runtime. Likewise, techniques such as dynamic

information flow tracking (DIFT) that are used for preventing

security attacks also require runtime monitoring. Furthermore,

techniques such as speculative parallelization and speculative

optimization, that strive to expose parallelism and increase

performance of programs, also require runtime monitoring --

detecting misspeculation, which is an integral component of any

speculative technique requiring the program to be monitored at


While each of the above monitoring applications are quite different in

their purpose and implementation, they all share a common requirement

in the context of monitoring a parallel program running on a multicore

-- the need to detect and react to interprocessor shared memory

dependences (ISMD). Current software based monitoring tools, due to

their inability to detect and react to ISMDs efficiently, are

rendered inapplicable for monitoring parallel programs running on

multicores. On the contrary, hardware based monitoring tools, while

applicable in a multicore context, require specialized hardware

modifications specific for each monitoring task.

This dissertation IMPRESS strives to Improve Multicore Performance and

and Reliability by providing Efficient Support for enabling Software

based monitoring. To enable software based monitoring on multicores,

this dissertation proposes ECMon -- lightweight and general purpose

support for exposing cache events to the software, in effect,

efficiently exposing ISMDs to the software. Using ECMon, a variety of

monitoring applications, which were inapplicable on multicores, can

now be used to efficiently monitor parallel program on multicores.

More specifically, a class of monitoring applications known as shadow

memory tools such as DIFT for security, Memcheck and Eraser for

debugging, can now monitor parallel programs running on multicores at

almost the same execution overhead as monitoring sequential

programs, using ECMon support. ECMon can also be used to develop

novel monitoring applications for increasing performance and

reliability. In particular, ECMon can be used for performing

speculative optimizations on parallel programs which results in about

12.5% execution time reduction in a set of seven parallel programs

considered. Furthermore, ECMon support can be used to record ISMDs in

software, which only results in 3 fold execution time slowdown.

Finally ECMon can be used by servers to recover from memory errors

without requiring heavy-weight checkpointing or rollback.

To summarize, this dissertation proposes light-weight and general

purpose support in the form of exposing cache events to the software.

Using this support, it is shown how parallel programs running on

multicores can be monitored efficiently for increasing performance and

enhancing reliability.

Main Content
Current View