Can different samples be merged?

In my comment, “chain” refers to a single sequence of n NUTS draws from the posterior, starting at some initial (random) point. Re-setting to a different starting point and generating a new sequence therefore generates a new chain.

By default, these are done in parallel in PyMC3, with one core of a CPU devoted to sampling from a single chain.

This can be expanded to multiple CPUs by providing each CPU with a copy of the entire dataset.

Splitting the dataset up across multiple CPUs (“batching”) is another matter entirely, and is an active area of research generally. See here for some ideas: