- Main
IMPRESS: Improving Multicore Performance and Reliability via Efficient Software Support for Monitoring
- Nagarajan, Vijayanand
- Advisor(s): Gupta, Rajiv
Abstract
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
runtime.
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
Enter the password to open this PDF file:
-
-
-
-
-
-
-
-
-
-
-
-
-
-