@leungi, with the same compiler, same settings, same hardware, same operating system, same versions of Stan, same random seed and chain id, the runs will be identical. Not just within MCMC SE, but identical.
I think PyStan, by default, has a compiler optimization option of
-O2, which will make it not run the same way. But I'm not absolutely sure.
You might have to explicitly set seed to make them match. Just setting number of chains might not be good enough.