Computing Systems Architecture

Emerging applications in enterprise information technology are expected to drive the evolution of future computing platforms. Computing Systems Architecture refers to the combination of hardware and system software that comprise a computing platform. Advances in general purpose multi-core and many-core (e.g., GPUs) cluster computing platforms are creating compelling cost/performance tradeoffs. Advances in operating systems, run-time support and parallel domain-specific middleware are opening up new opportunities for improving application performance. Our current focus is on accelerating enterprise workloads on computing clusters that include various types of heterogeneity in computing, interconnect, networking and storage units. Our mission is to innovate, design, evaluate and deliver parallel computing systems architectures for high-performance, energy-efficient enterprise computing.
|
Systems Analysis & Verification

This research area concentrates on analysis and verification of hardware,
software, and embedded systems. We envisage that formal methods will
become an essential part of the best practices in the design and development
of large, open, distributed, general purpose or embedded systems. With
the growth of multi-core processing and concurrent programming in many
key computing segments (mobile, server, gaming), there is a great need
for effective development and verification technologies for concurrent
multi-threaded programs. At the same time, due to the ubiquitous availability
of cyber systems that interact with physical environments, there is a
great need to develop technologies that target the whole system. The
cornerstone of our research is investigation into leading-edge technologies
for formal analysis, bringing together the domains of system modeling,
formal verification, program analysis, automata theory, constraint solvers,
and software engineering. We have made significant progress in these
domains in the recent past, with notable examples in SAT-based model
checking and software program verification.
Going forward, we believe it is essential to combine formal verification
with other static and dynamic analysis techniques, with the overall goals
of improving design quality, improving developer productivity, and reducing
the cost of system development by finding bugs early and cheaply.
|