I believe we previously decided that there should be a different (pseudo) RNG in each chain for transformed data. The problem with this approach is that it gives us no way to monitor convergence. I now think we should not modify the current behavior, which is to use the same RNG in each chain.
Further, I want to make sure that the RNG that is used in the constructor of the generated model class is a reference to the one that’s used later.
Allen suggested in a GitHub issue https://github.com/stan-dev/stan/issues/2241 that we should not make the interfaces do all this monkeying with the RNG, but instead just pass in a seed. I don’t really mind one way or another how it’s done, but the same RNG that’s going to be used for the draws should be used to instantiate the model.
The only way I can see this working is if we use the seed for the model class as is, then advance it based on chain ID. I don’t think we want to reuse the same draws from the RNG, so maybe we can have effectively a minimum chain ID of 1 and advance from the initial seed for chain 1 and other chains beyond what was used in the constructor for the model class.