Understanding parallel efficiency