
On 05/11/2016 06:39 PM, Joe Kington wrote:
In python2 it appears that multiprocessing uses pickle protocol 0 which must cause a big slowdown (a factor of 100) relative to protocol 2, and uses pickle instead of cPickle.
Even on Python 2.x, multiprocessing uses protocol 2, not protocol 0. The default for the `pickle` module changed, but multiprocessing has always used a binary pickle protocol to communicate between processes. Have a look at multiprocessing's forking.py <http://forking.py> in Python 2.7.
Are you sure? As far as I understood the code, it uses the default protocol 0. The file forking.py no longer exists, also. https://github.com/python/cpython/tree/master/Lib/multiprocessing (see reduction.py and queue.py) http://bugs.python.org/issue23403