Research
Specialized computing platforms, implemented on a range of devices including analog, photonic, and digital devices, are becoming pervasive and crucial for satisfying the computational needs of different domains. We are already seeing a proliferation of specialized devices that efficiently solve problems in machine learning, signal processing, and biology. Delivering the potential of such devices to domain specialists is a challenge: because these devices are designed for efficiency, there is a significant gap between the device's programming interface and the programming model the end user can use productively.
My research agenda is to develop new techniques and tools, specifically new programming languages, compilers, and runtime systems, that enable end users to easily develop computations that exploit the potential of these devices.