Problem size, parallel architecture, and optimal speedup