Reliable Computing At The Nanoscale