[IPython-dev] Qt console making great strides, please use it and let us know what works, what doesn't

Dave Hirschfeld dave.hirschfeld at gmail.com
Mon Apr 11 16:24:43 EDT 2011


I did some testing of the parallel code, but ran into the same problem as:

http://article.gmane.org/gmane.comp.python.ipython.user/5616

C:\dev\code>python C:\dev\bin\Python26\Scripts\ipcluster start -n 4
[IPClusterApp] Using existing cluster dir:
C:\Users\dhirschfeld\.ipython\cluster_default
[IPClusterApp] Cluster directory set to:
C:\Users\dhirschfeld\.ipython\cluster_default
[IPClusterApp] Starting ipcluster with [daemon=False]
[IPClusterApp] Creating pid file:
C:\Users\dhirschfeld\.ipython\cluster_default\pid\ipcluster.pid
[IPClusterApp] Starting LocalControllerLauncher: ['C:\\dev\\bin\\Python26
\\python.exe', '-u', u'C:\\dev\\bin\\Python26\\lib\\site-packages\\IPython
\\parallel\\apps\\ipcontrollerapp.py', '--log-to-file', '--log-level', '20', 
'--cluster-dir', u'C:\\Users\\dhirschfeld\\.ipython\\cluster_default']
[IPClusterApp] Process 'C:\\dev\\bin\\Python26\\python.exe' started: 7096
[IPClusterApp] IPython cluster: started
Assertion failed: Socket operation on non-socket (..\..\..\src\zmq.cpp:632)

I sent an email to the Users list but it appears to have gotten lost. So I've 
reproduced it below:


Starting the controller and engines seperately appeared to work:

c:\dev\code>python C:\dev\bin\Python26\Scripts\ipcontroller
[IPControllerApp] Using existing cluster dir:
C:\Users\dhirschfeld\.ipython\cluster_default
[IPControllerApp] Cluster directory set to:
C:\Users\dhirschfeld\.ipython\cluster_default
[IPControllerApp] Hub listening on tcp://127.0.0.1:57543 for registration.
[IPControllerApp] Hub using DB backend:
'IPython.parallel.controller.dictdb.DictDB'
[IPControllerApp] hub::created hub
[IPControllerApp] task::using Python leastload Task scheduler
[IPControllerApp] Heartmonitor started
[IPControllerApp] Creating pid file:
C:\Users\dhirschfeld\.ipython\cluster_default\pid\ipcontroller.pid
tcp://127.0.0.1:57564
tcp://127.0.0.1:57565
tcp://127.0.0.1:57544
tcp://127.0.0.1:57557
Scheduler started...
<IPython.parallel.controller.scheduler.TaskScheduler object at 0x029C4E10>


c:\dev\code>python C:\dev\bin\Python26\Scripts\ipengine
[IPEngineApp] Using existing cluster dir:
C:\Users\dhirschfeld\.ipython\cluster_default
[IPEngineApp] Cluster directory set to:
C:\Users\dhirschfeld\.ipython\cluster_default
[IPEngineApp] registering
[IPEngineApp] Completed registration with id 0

...

In IPython I can connect to the engines but any attempt to do any calculation 
results in each engine dying with the error 
"Assertion failed: Invalid argument (..\..\..\src\zmq.cpp:632)" in the console.


from IPython.parallel import Client

rc = Client()

rc.ids
Out[3]: [0, 1]

dview = rc[:]

parallel_result = dview.map_sync(lambda x: x**10, range(32))
---------------------------------------------------------------------------
CompositeError                            Traceback (most recent call last)
C:\dev\bin\Python26\Scripts\<ipython-input-5-678d85c014d0> in <module>()
----> 1 parallel_result = dview.map_sync(lambda x: x**10, range(32))

C:\dev\bin\Python26\lib\site-packages\IPython\parallel\client\view.pyc 
in map_sync(self, f, *sequences, **kwargs)
    336             raise TypeError("map_sync doesn't take a `block` keyword 
                                     argument.")
    337         kwargs['block'] = True
--> 338         return self.map(f,*sequences,**kwargs)
    339 
    340     def imap(self, f, *sequences, **kwargs):

C:\dev\bin\Python26\Scripts\<string> in map(self, f, *sequences, **kwargs)

C:\dev\bin\Python26\lib\site-packages\IPython\parallel\client\view.pyc
in spin_after(f, self, *args, **kwargs)
     62 def spin_after(f, self, *args, **kwargs):
     63     """call spin after the method."""
---> 64     ret = f(self, *args, **kwargs)
     65     self.spin()
     66     return ret

C:\dev\bin\Python26\lib\site-packages\IPython\parallel\client\view.pyc
in map(self, f, *sequences, **kwargs)
    571         assert len(sequences) > 0, 
                        "must have some sequences to map onto!"
    572         pf = ParallelFunction(self, f, block=block, **kwargs)
--> 573         return pf.map(*sequences)
    574 
    575     def execute(self, code, targets=None, block=None):

C:\dev\bin\Python26\lib\site-packages\IPython\parallel\client\remotefunction.pyc
in map(self, *sequences)
    193         self._map = True
    194         try:
--> 195             ret = self.__call__(*sequences)
    196         finally:
    197             del self._map

C:\dev\bin\Python26\lib\site-packages\IPython\parallel\client\remotefunction.pyc
in __call__(self, *sequences)
    179         if self.block:
    180             try:
--> 181                 return r.get()
    182             except KeyboardInterrupt:
    183                 return r

C:\dev\bin\Python26\lib\site-packages\IPython\parallel\client\asyncresult.pyc
in get(self, timeout)
     96                 return self._result
     97             else:
---> 98                 raise self._exception
     99         else:
    100             raise error.TimeoutError("Result not ready.")

CompositeError: one or more exceptions from call to method: <lambda>
[Engine Exception]EngineError: Engine 0 died while running task 
'c89ab757-1db6-4976-a7aa-86b859fe8f4f'
[Engine Exception]EngineError: Engine 1 died while running task 
'436ffdf6-c082-45e0-a7f1-b09c10c74fe4'


NB: pyzmq tests seem to pass except for the one below which seems like it's
getting tripped up ove a deprecation warning.

C:\dev\bin\Python26\Lib\site-packages\zmq\tests>nosetests --pdb-failures
................................S...............................>
c:\dev\bin\python26\lib\site-packages\zmq\tests\__init__.py(104)
assertRaisesErrno() -> got '%s'" % (zmq.ZMQError(errno), zmq.ZMQError(e.errno)))
(Pdb) print e.message
C:\dev\bin\Python26\Lib\site-packages\zmq\tests\__init__.py:1:
DeprecationWarning: BaseException.message has been deprecated as of Python 2.6
(Pdb) exit
F........
======================================================================
FAIL: test_create (zmq.tests.test_socket.TestSocket)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\dev\bin\Python26\Lib\site-packages\zmq\tests\test_socket.py", line
47, in test_create
    self.assertRaisesErrno(zmq.EPROTONOSUPPORT, s.bind, 'ftl://a')
  File "C:\dev\bin\Python26\Lib\site-packages\zmq\tests\__init__.py", line 104,
in assertRaisesErrno
    got '%s'" % (zmq.ZMQError(errno), zmq.ZMQError(e.errno)))
AssertionError: wrong error raised, expected 'Unknown error' got 'Protocol not
supported'

----------------------------------------------------------------------
Ran 73 tests in 29.960s

FAILED (SKIP=1, failures=1)

HTH,
Dave










More information about the IPython-dev mailing list