CS 6504: Co-Design for Parallel Computing Dr. Wu Feng Fall 2013 With processor core counts doubling every 18-24 months and penetrating all markets from high-end servers in supercomputers to desktops and laptops down to even mobile phones, we sit at the dawn of a world of ubiquitous parallelism, one where extracting performance via parallelism is paramount. The burden falls on developers to exploit parallel hardware for performance gains. But how do we lower the cost of extracting such parallelism, particularly in the face of the increasing heterogeneity of processing cores? This course seeks to study advanced topics around these issues and to realize methodologies for the synergistic co-design of algorithms, software, and hardware in order to deliver better performance speed-ups while also making it easier for the end user to do so.