CARS Group - Projects

Efficient Software Execution on Modern Multi-Core Machines

Recently, several technical factors, including the power wall, memory wall, and ILP wall have caused the demise of the era of high-performance uniprocessor machines. Future increases in processor performance are likely to come, not from perpetually increasing uniprocessor clock-speeds, but by increasing the number of cores on a single processor die. Such multi-core and many-core processors may either employ all identical cores (homogeneous processors), or may contain cores with varying architectural features (heterogeneous processors). Performance gains on such modern machines can only be gained if the software application is able to distribute its work-load and concurrently conduct its operations across multiple processing cores. Unfortunately, a majority of popular software programs are still not able to sufficiently and scalably exploit the available multi-core resources. At the same time, manually parallelizing existing software or generating new parallel software has been found to be highly complex, error-prone and tedious. Therefore, we are conducting research in constructing new automated static and runtime system tools to ease the task of producing and executing parallel software.
  1. Automatic code refactoring to produce thread-safe code.
  2. Novel parallelization model for virtual machines.
  3. System tools development for heterogeneous computing environments.

Improving Performance of Embedded System Software

Software execution in an embedded environment imposes several additional constraints that are not present in traditional computing domains. For example, most embedded systems are highly cost and power (for battery-operated devices) sensitive, often operate in tough external environments, and may have other real-time requirements. Improving the speed, code size, and/or power characteristics is extremely crucial for many embedded applications, as reducing processor or memory costs can result in huge savings for products with millions of units shipped. Smart-grids is a national priority initiative, but guarantying the secure and safe operation of the grid is highly complex. Our research in the embedded systems area attempts to address such and other important problems in this area.
  1. Understanding and addressing compiler optimization phase ordering.
  2. Optimal data layout to maximize performance.
  3. Cyber-security in the smart-grids.

Undergraduate Projects

We encourage undergraduate students to get involved in computing-related research projects. Such participation enables the students to understand research and make a more informed decision regarding graduate school. Furthermore, these are typically paid positions and provide the students an opportunity to work along-side other graduate students, publish papers, attend and present their work at prestigious international conferences.
  1. Targeting general-purpose applications for GPUs.
  2. Prediction models for detecting hot methods in Java programs.
  3. Ideal just-in-time compilation policy for virtual machines.

Last Updated on 22 January 2011