You program a machine like this much like you work with the unix command line when you string together a series of commands using 'pipes'. Only now the pipes are the comms links between the CPUs and the programs are the pieces of software executing on each of the CPUs, rather than that they all run on the same CPU.
So it's more of a data flow model than a function-call model, and every node will transform its input rather than that it will return results to callers.
This means that not every problem is easily mapped to such an architecture, but when there is a good correspondence between the topology of the network of CPUs and the problem then the throughput can be very good.
After all, there is no bottleneck where all of these have to access a shared resource (RAM) so when it pays off it pays off big.