It is possible that some software components or systems may be compatible in one environment and incompatible in another.
It makes no difference whether a uni-processor or a multi-processor system is used, as it's the allocation of the resources which determines the order of execution.
However, if several of the Ps are set to run at the same time as several of the Qs, then a deadlock condition can arise.
Consider the following example: A variant of Q, Q' has similar behaviour, with the following differences: If P never calls Q with y set to 100, then using Q' instead is a compatible computation.
If P calls Q'' with y = 102 then the results are unpredictable, and failure may arise, possibly due to divide by zero or other errors such as arithmetic overflow.
If P calls Q'' with y= 103 then in the event that P uses the result in a division operation, then a divide by zero failure may occur.
The result may be that disk thrashing occurs, and one or both programs will have significantly reduced performance.