Using Graphics Processing Units (GPUs) for general-purpose computing has made high-performance parallel computing very cost-effective for a wide variety of applications. However, programming these highly-parallel processors still remains somewhat of an art.
We have several projects investigating how GPUs can be applied to different application domains, including:
A variety of new technologies are being proposed for future processors, such as spintronic components, carbon nanotubes, and graphene. We are investigating how processors can be efficiently designed to best take advantage of these new technologies.