We considered several types of machines (models of computation). We will see now that all these machines can be simulated by the simplest of them: the Turing Machine. In other words, these powerful machines can compute only those functions computable by a TM.
Church-Turing Thesis is a generalization of this conclusion: TMs can compute every function computable in any thinkable physical model of computation. This is not a mathematical result because the notion of model is not formally specified. But the long history of investigations of ways to design real and ideal computing devices makes it very convincing. Moreover, this Thesis has a stronger Polynomial Time version which states that if any model computes a function in polynomial volume, TM can do the same. Both forms of the Thesis play a significant role in foundations of Computer Science.
If a PPM computes a function f(x) in t(x) steps, using s(x) nodes, the simulating TM uses space S = O(slog s), (O(log s) bits for each of O(s) pointers) and time T=O(S2)t, as TM sorting takes quadratic time.
TM cannot outperform Bubble Sort. Is its quadratic overhead a big deal? In a short time all silicon gates on your PC run, say, X=10 23~2(26.25) clock cycles combined. Silicon parameters double almost annually. Decades may bring micron-thin things that can sail sunlight in space in clouds of great computing and physical (light beam) power. Centuries may turn them into a Dyson Sphere enveloping the solar system. Still, the power of such an Ultimate Computer is limited by the number of photons the Sun emits per second: Y~ 2(27.25) =X2. Giga-years may turn much of the known universe into a computer, but its might is still limited by its total entropy 2(28.25 )= Y2. Squaring does matter!
Call array entries i-th partners when their addresses differ only in i-th bit. Operations on partners can be implemented on a Shuffle Exchange graph of 2k nodes. Each node has pointers to its k-th partner and to and from its shift node obtained by moving its first address bit to the end.
A bitonic cycle is the combination of two sorted arrays (one may be shorter), connected by max-to-max and min-to-min entries. We merge sorted arrays by appending the reversed second one to the first, considering the last and first entries as neighbors, and sorting the resulting bitonic cycle.
The sorting of a 2k long bitonic cycle proceeds by comparing each entry with its k-th partner (i.e. diametric opposite on the cycle) and switching if wrongly ordered. Each half becomes then a bitonic cycle and any two entries from different halves are in proper order. The process then repeats for each half recursively (decrementing k through the graph's shift edges).