Block-diagonal coding for distributed computing with straggling servers