File tree Expand file tree Collapse file tree 6 files changed +18
-27
lines changed Expand file tree Collapse file tree 6 files changed +18
-27
lines changed Original file line number Diff line number Diff line change 1
1
import time
2
2
import zmq
3
- import democfg
4
-
5
- def process_results (receiver ):
6
- data = []
7
- # Process results from the workers
8
- for _ in range (democfg .task_count ):
9
- result = receiver .recv_pyobj ()
10
- print ("Processing result: {}" .format (result ))
11
- data .append (result )
12
- # Calculate final result
13
- print ("Final result: {}" .format (sum (data )/ len (data )))
3
+ import democfg , processor
14
4
15
5
def collect ():
16
6
context = zmq .Context ()
@@ -22,8 +12,8 @@ def collect():
22
12
controller .bind (democfg .routing_table ["controller" ])
23
13
# Wait for start signal
24
14
assert receiver .recv () == democfg .start_flag
25
- process_results (receiver )
15
+ processor . process (receiver )
26
16
# Let workers know that all results have been processed
27
17
controller .send (democfg .done_msg )
28
- # Finished
29
- time .sleep (5 * democfg .pause_time ) # Give 0MQ time to deliver
18
+ # Finished, but give 0MQ time to deliver
19
+ time .sleep (5 * democfg .pause_time )
Original file line number Diff line number Diff line change @@ -18,6 +18,5 @@ def main(tasks):
18
18
distributor .distribute (tasks )
19
19
20
20
if __name__ == "__main__" :
21
- count = range (democfg .task_count )
22
- tasks = [1e8 / democfg .task_count for _ in count ]
21
+ tasks = [1e8 / democfg .task_count ] * democfg .task_count
23
22
main (tasks )
Original file line number Diff line number Diff line change @@ -7,7 +7,7 @@ def distribute(tasks):
7
7
# Socket to send messages on
8
8
sender = context .socket (zmq .PUSH )
9
9
sender .bind (democfg .routing_table ["receiver" ])
10
- # Socket with direct access to the sink used to syncronize start of batch
10
+ # Socket with direct access to the sink used to synchronize start of batch
11
11
syncher = context .socket (zmq .PUSH )
12
12
syncher .connect (democfg .routing_table ["sender" ])
13
13
# Give 0MQ time to start up
Original file line number Diff line number Diff line change 5
5
import IPython
6
6
7
7
8
+ def hide_axes (axes ):
9
+ axes .set_frame_on (False )
10
+ [n .set_visible (False ) for n in axes .get_xticklabels () + axes .get_yticklabels ()]
11
+ [n .set_visible (False ) for n in axes .get_xticklines () + axes .get_yticklines ()]
12
+
13
+
8
14
def pycat (filename ):
9
15
with open (filename ) as f :
10
16
code = f .read ()
Original file line number Diff line number Diff line change 3
3
import democfg
4
4
5
5
def process (receiver ):
6
+ return get_results (receiver )
7
+
8
+ def get_results (receiver ):
6
9
data = []
7
10
# Process results from the workers
8
11
for _ in range (democfg .task_count ):
@@ -11,3 +14,4 @@ def process(receiver):
11
14
data .append (result )
12
15
# Calculate final result
13
16
print ("Final result: {}" .format (sum (data )/ len (data )))
17
+ return data
Original file line number Diff line number Diff line change 1
1
import random
2
2
import zmq
3
- import democfg
4
-
5
- def run_task (task_data ):
6
- in_circle = 0
7
- for _ in range (int (task_data )):
8
- (x , y ) = (random .random (), random .random ())
9
- if (x ** 2 + y ** 2 ) <= 1 :
10
- in_circle += 1
11
- return 4 * in_circle / task_data
3
+ import democfg , tasker
12
4
13
5
def is_done (socks , controller ):
14
6
if (socks .get (controller ) == zmq .POLLIN and
@@ -39,7 +31,7 @@ def work(worker_id):
39
31
if socks .get (receiver ) == zmq .POLLIN :
40
32
task_data = receiver .recv_pyobj ()
41
33
# Process task data
42
- result = run_task (task_data )
34
+ result = tasker . task (task_data )
43
35
sender .send_pyobj (result )
44
36
if is_done (socks , controller ):
45
37
run_loop = False
You can’t perform that action at this time.
0 commit comments