Ultimate limits to computation