Is there a mathematical algorithm that can determine whether a problem is parallelizable?
Possibly similar to how the definition for "computable" works out:
https://en.wikipedia.org/wiki/Computable_function
So a parallelizable program is a program that ...?
a=2; b=2*a; c=3*a; d=b+c;Here,bandccan be computed in parallel. So by your definition, the algorithm to computedis parallelizable, and indeed nearly every modern compiler will detect this. But is this interesting? Maybe yes, if you're into exploiting superscalar architectures of modern CPU cores. Is it what you are curious about? I don't know -- you need to define more clearly what it is you want to know and how you define "parallelizable". – Wolfgang Bangerth May 06 '22 at 19:54