Bridging The Scalability Gap By Exploiting Error Tolerance For Emerging Applications