I want to run an unmodified MS Windows application, distributed across multiple machines. Can I extend its Symmetric Multiprocessing support to span multiple CPUs on multiple machines? Instead of just a single machine.
What you're probably looking for is called Single System Image.
It's not a popular approach due to it own complexity and has it's own set of issues. For instance what would happen if a node went down or offline and took a running thread with it. So your program or an API would have to be able to detect and deal with that issue.
So I don't think you'll get away from having to customize your application to run on a cluster. You're probably better off using one of the more popular distributed computing APIs.