Understanding and Visualizing Full Systems with Data Flow Tomography
Tuesday March 18, 2008
Hamerschlag Hall D-210
Carnegie Mellon University
Data Flow Tomography is a recently proposed technique by Mysore et al.
from the University of California, Santa Barbara for visualizing and
understanding the interactions between complex components in modern computer
systems. Software abstraction layers enable developers to construct more
sophisticated systems without the need to understand the details of the
underlying system. While these abstractions are necessary, few people
understand or are aware of the many layers of software that run and interact
beneath and around their programs.
Data flow tomography uses data flow tagging at the ISA level to identify
data regions of interest. Data tags can be generated at the
network-interface, application, or by instruction-rules and is tracked at
the ISA level to aid the examination and visualization of systems composed
of many independently developed components. In this talk, I will discuss
three data tagging policies: 1) feed-forward tag-and-release for finding
data uses, 2) source-flow tagging for tracking data back to its source, and
3) a confluence method that relies on the collision of tags to map
boundaries between components. A prototype of the system on QEMU is used to
test these methods over distributed systems with a variety of components
(OS, Mongrel, Ruby, Rails, Apache, Perl, and MySQL) and to generate
visualization results for the end-user.
Eric is a fourth-year PhD student in the Computer Architecture Laboratory at
Carnegie Mellon, where he is advised by Prof. James C.
Hoe. His interests are in computer architecture and FPGA-accelerated
simulation technologies for full-system, multiprocessor architectural