New submission from mikefc <[email protected]>:

Trying to use a multiprocessing.Pool() to map a function onto a list of numpy 
arrays fails in latest pypy nightly (OSX).

Code attached. 

In python 2.7.x:
Not MP: [0.0, 0.0, 0.0, 0.0]
MP: [0.0, 0.0, 0.0, 0.0]

In pypy (OSX nightly latest)
Not MP: [0.0, 0.0, 0.0, 0.0]
<Float64 object at 0x101755110>
<Float64 object at 0x101755110>
Process PoolWorker-1:
Traceback (most recent call last):
  File 
"/Users/mike/python/pypy-latest/lib-python/2.7/multiprocessing/process.py", 
line 258, in _bootstrap
    self.run()
  File 
"/Users/mike/python/pypy-latest/lib-python/2.7/multiprocessing/process.py", 
line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/multiprocessing/pool.py", 
line 99, in worker

----------
files: bugreport.txt
messages: 5710
nosy: mikefc, pypy-issue
priority: bug
status: unread
title: numpy pickling

________________________________________
PyPy bug tracker <[email protected]>
<https://bugs.pypy.org/issue1484>
________________________________________
Not MP: [0.0, 0.0, 0.0, 0.0]
<Float64 object at 0x101755110>
<Float64 object at 0x101755110>
Process PoolWorker-1:
Traceback (most recent call last):
  File 
"/Users/mike/python/pypy-latest/lib-python/2.7/multiprocessing/process.py", 
line 258, in _bootstrap
    self.run()
  File 
"/Users/mike/python/pypy-latest/lib-python/2.7/multiprocessing/process.py", 
line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/multiprocessing/pool.py", 
line 99, in worker
Process PoolWorker-2:
Traceback (most recent call last):
  File 
"/Users/mike/python/pypy-latest/lib-python/2.7/multiprocessing/process.py", 
line 258, in _bootstrap
    put((job, i, result))
  File 
"/Users/mike/python/pypy-latest/lib-python/2.7/multiprocessing/queues.py", line 
390, in put
    return send(obj)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 1417, in 
dumps
    self.run()
  File 
"/Users/mike/python/pypy-latest/lib-python/2.7/multiprocessing/process.py", 
line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/multiprocessing/pool.py", 
line 99, in worker
    Pickler(file, protocol).dump(obj)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 224, in 
dump
    self.save(obj)
    put((job, i, result))
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 286, in 
save
  File 
"/Users/mike/python/pypy-latest/lib-python/2.7/multiprocessing/queues.py", line 
390, in put
    f(self, obj) # Call unbound method with explicit self
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 548, in 
save_tuple
    return send(obj)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 1417, in 
dumps
    save(element)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 286, in 
save
    f(self, obj) # Call unbound method with explicit self
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 548, in 
save_tuple
    save(element)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 286, in 
save
    f(self, obj) # Call unbound method with explicit self
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 600, in 
save_list
    self._batch_appends(iter(obj))
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 636, in 
_batch_appends
    save(tmp[0])
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 306, in 
save
    rv = reduce(self.proto)
TypeError: unsupported operand type for __getnewargs__: 'float64'
    Pickler(file, protocol).dump(obj)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 224, in 
dump
    self.save(obj)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 286, in 
save
    f(self, obj) # Call unbound method with explicit self
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 548, in 
save_tuple
    save(element)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 286, in 
save
    f(self, obj) # Call unbound method with explicit self
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 548, in 
save_tuple
    save(element)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 286, in 
save
    f(self, obj) # Call unbound method with explicit self
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 600, in 
save_list
    self._batch_appends(iter(obj))
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 636, in 
_batch_appends
    save(tmp[0])
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 306, in 
save
    rv = reduce(self.proto)
TypeError: unsupported operand type for __getnewargs__: 'float64'
MP:<Float64 object at 0x101755110>
Process PoolWorker-3:
<Float64 object at 0x101755110>
Traceback (most recent call last):
  File 
"/Users/mike/python/pypy-latest/lib-python/2.7/multiprocessing/process.py", 
line 258, in _bootstrap
    self.run()
  File 
"/Users/mike/python/pypy-latest/lib-python/2.7/multiprocessing/process.py", 
line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/multiprocessing/pool.py", 
line 99, in worker
    put((job, i, result))
  File 
"/Users/mike/python/pypy-latest/lib-python/2.7/multiprocessing/queues.py", line 
390, in put
Process PoolWorker-4:
Traceback (most recent call last):
  File 
"/Users/mike/python/pypy-latest/lib-python/2.7/multiprocessing/process.py", 
line 258, in _bootstrap
    return send(obj)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 1417, in 
dumps
    self.run()
  File 
"/Users/mike/python/pypy-latest/lib-python/2.7/multiprocessing/process.py", 
line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/multiprocessing/pool.py", 
line 99, in worker
    Pickler(file, protocol).dump(obj)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 224, in 
dump
    self.save(obj)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 286, in 
save
    f(self, obj) # Call unbound method with explicit self
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 548, in 
save_tuple
    save(element)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 286, in 
save
    f(self, obj) # Call unbound method with explicit self
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 548, in 
save_tuple
    save(element)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 286, in 
save
    put((job, i, result))
    f(self, obj) # Call unbound method with explicit self
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 600, in 
save_list
  File 
"/Users/mike/python/pypy-latest/lib-python/2.7/multiprocessing/queues.py", line 
390, in put
    self._batch_appends(iter(obj))
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 636, in 
_batch_appends
    save(tmp[0])
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 306, in 
save
    rv = reduce(self.proto)
TypeError: unsupported operand type for __getnewargs__: 'float64'
    return send(obj)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 1417, in 
dumps
    Pickler(file, protocol).dump(obj)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 224, in 
dump
    self.save(obj)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 286, in 
save
    f(self, obj) # Call unbound method with explicit self
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 548, in 
save_tuple
    save(element)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 286, in 
save
    f(self, obj) # Call unbound method with explicit self
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 548, in 
save_tuple
    save(element)
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 286, in 
save
    f(self, obj) # Call unbound method with explicit self
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 600, in 
save_list
    self._batch_appends(iter(obj))
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 636, in 
_batch_appends
    save(tmp[0])
  File "/Users/mike/python/pypy-latest/lib-python/2.7/pickle.py", line 306, in 
save
    rv = reduce(self.proto)
TypeError: unsupported operand type for __getnewargs__: 'float64'
_______________________________________________
pypy-issue mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-issue

Reply via email to