In this talk, I will discuss two of our recent projects. The first is an optimizing compiler for high performance GPGPU programs. With their extraordinary computational throughput and memory access bandwidth, GPUs become a promising platform for high performance computing. However, developing high performance GPGPU programs to effectively utilize the GPU hardware resources is a challenging task. In our proposed solution, we argue for a simplified GPU hardware abstraction model so that the programmers can focus on the inherent parallelism of their applications rather than spending time on low-level performance optimizations. The compiler, on the other hand, will go through a sequence of code optimizations to achieve the high performance for different GPU architecture. The second part of the talk focuses on the lifetime issue of the phase change memory (PCM), an emerging technology for the next generation memory devices. In our approach, we propose to track the age of the PCM cells and employ variable strength ECC (Error Correction Code) for adaptive error detection and correction. Bio: Huiyang Zhou received his Bachelor of Electrical Engineering from Xian Jiaotong University, P.R. China in 1992 and his Ph.D. in Computer Engineering from North Carolina State University in 2003. He is currently an associate professor in the Department of Electrical and Computer Engineering at North Carolina State University. Between 2003 and 2009, he was an assistant and an associate professor at the School of Electrical Engineering and Computer Science, University of Central Florida. His research focuses on high performance microarchitecture, low- power design, GPU Computing (General Purpose computing on Graphics Processing Units or GPGPU), architecture support for system dependability, and backend compiler optimization. He is an associate editor for ACM transactions on architecture and code optimizations. He is a recipient of NSF CAREER award and a senior member of the IEEE.