dpstf and dpstrf sometimes give different pivot results. Of course I can read the source code, but I don't get the idea from it. Since pivoting is for stability of the Cholesky decomposition, one of them is more stable. Which and why does the other exist?
The difference is which BLAS level they are utilizing. TRF is BLAS3 and TF2 is BLAS2. BLAS level 3 routines, roughly speaking, optimized for computers with cache memory such that they can perform block calls. BLAS 2 is optimized for vector computers with possibly shared memory.
As you can see in the code (line 209), if the optimum block size turns out to be either larger than the matrix size(which implies the impossibility of blocked algorithm) or less than or equal to 1 then DPSTRF falls back to the unblocked version DPSTF2.