Software also has to determine the size of partition boundaries and consequent message-passing requirements. Careful planning of what data to pass between processors, and when to do so, is important. System architecture, communications subsystems, and message-passing software will affect parallel scaling. SGI's studies suggest that a CFD engineer can expect well-designed parallel CFD software to yield a linear increase in computing speed to a limit of 16 processors. Up to that point, doubling the number of processors will cut computing time in half.
More complex problems can see some tapering in the curve of increase.
But a nearly linear increase is not impossible.