We can make smaller transistors, but we have a hard time making them run faster. Yet, the demand for computing power is growing. This challenge has led to a renewed interest in novel computing architectures that can take advantage of shrinking transistor size and deliver the necessary application performance improvements.