|
@@
-63,8
+63,6
b' Message type: ``registration_reply``::'
|
|
63
|
63
|
'control' : 'tcp://...', # addr for control queue
|
|
64
|
64
|
'heartbeat' : (a,b), # tuple containing two interfaces needed for heartbeat
|
|
65
|
65
|
'task' : 'tcp://...', # addr for task queue, or None if no task queue running
|
|
66
|
|
# if error:
|
|
67
|
|
'reason' : 'queue_id already registered'
|
|
68
|
66
|
}
|
|
69
|
67
|
|
|
70
|
68
|
Clients use the same socket as engines to start their connections. Connection requests
|
|
@@
-172,8
+170,6
b' Message type: ``result_reply``::'
|
|
172
|
170
|
# values are the result messages
|
|
173
|
171
|
'pending' : ['msg_id','...'], # msg_ids still pending
|
|
174
|
172
|
'completed' : ['msg_id','...'], # list of completed msg_ids
|
|
175
|
|
# if error:
|
|
176
|
|
'reason' : "explanation"
|
|
177
|
173
|
}
|
|
178
|
174
|
|
|
179
|
175
|
For memory management purposes, Clients can also instruct the controller to forget the
|
|
@@
-199,9
+195,6
b' Message type: ``purge_reply``::'
|
|
199
|
195
|
|
|
200
|
196
|
content = {
|
|
201
|
197
|
'status' : 'ok', # or 'error'
|
|
202
|
|
|
|
203
|
|
# if error:
|
|
204
|
|
'reason' : "KeyError: no such msg_id 'whoda'"
|
|
205
|
198
|
}
|
|
206
|
199
|
|
|
207
|
200
|
:func:`apply` and :func:`apply_bound`
|
|
@@
-210,7
+203,7
b' Message type: ``purge_reply``::'
|
|
210
|
203
|
The `Namespace <http://gist.github.com/483294>`_ model suggests that execution be able to
|
|
211
|
204
|
use the model::
|
|
212
|
205
|
|
|
213
|
|
client.apply(f, *args, **kwargs)
|
|
|
206
|
ns.apply(f, *args, **kwargs)
|
|
214
|
207
|
|
|
215
|
208
|
which takes `f`, a function in the user's namespace, and executes ``f(*args, **kwargs)``
|
|
216
|
209
|
on a remote engine, returning the result (or, for non-blocking, information facilitating
|
|
@@
-220,8
+213,8
b' as little data as we can. The `buffers` property of a Message was introduced for'
|
|
220
|
213
|
purpose.
|
|
221
|
214
|
|
|
222
|
215
|
Utility method :func:`build_apply_message` in :mod:`IPython.zmq.streamsession` wraps a
|
|
223
|
|
function signature and builds the correct buffer format for minimal data copying (exactly
|
|
224
|
|
zero copies of numpy array data).
|
|
|
216
|
function signature and builds a sendable buffer format for minimal data copying (exactly
|
|
|
217
|
zero copies of numpy array data or buffers or large strings).
|
|
225
|
218
|
|
|
226
|
219
|
Message type: ``apply_request``::
|
|
227
|
220
|
|
|
@@
-234,6
+227,8
b' Message type: ``apply_request``::'
|
|
234
|
227
|
buffers = ['...'] # at least 3 in length
|
|
235
|
228
|
# as built by build_apply_message(f,args,kwargs)
|
|
236
|
229
|
|
|
|
230
|
after/follow represent task dependencies
|
|
|
231
|
|
|
237
|
232
|
Message type: ``apply_reply``::
|
|
238
|
233
|
|
|
239
|
234
|
content = {
|