def test_square(num=1, order=ORDER, order_of_block=ORDER_OF_BLOCK): total_time = 0 for times in range(0,10): q = [Queue()] q_manager = Queue() for i in range(0, num): q.append(Queue()) mat1 = np.random.rand(order, order) t0 = time.time() graph = p.dependency_graph(pow(2,num)) Process(target=p.print_process, args=(graph, q_manager)).start() Process( target=p.matrix_to_queue, args=(q[0], mat1, order, order_of_block )).start() for count in range(0, num): Process( target=p.square, args=(q[count], q[count+1], order, (q_manager, pow(2,count+1)), order_of_block)).start() mat2 = p.queue_to_matrix(q[num], order, order_of_block) t1 = time.time() total_time += t1 - t0 print order, "\t", order_of_block, "\t\t", num, "\t", total_time/10
def test_print_process(): power = 15 graph = p.dependency_graph(power) q = Queue() Process(target=p.print_process, args=(graph, q)).start() for i in range(0, 11): time.sleep(1) q.put( (15, i*10) )
def test_square(): # mat1 = np.arange(ORDER*ORDER).reshape(ORDER, ORDER) mat1 = np.random.rand(ORDER, ORDER) # mat2 = np.random.rand(ORDER, ORDER) # mat3 = np.dot(mat1, mat1) q1 = Queue() q2 = Queue() q3 = Queue() q4 = Queue() q5 = Queue() t0 = time.time() graph = p.dependency_graph(8) Process(target=p.print_process, args=(graph, q5)).start() Process(target=p.matrix_to_queue, args=(q1, mat1, ORDER, ORDER_OF_BLOCK)).start() Process(target=p.square, args=(q1, q2, ORDER, (q5, 2), ORDER_OF_BLOCK)).start() Process(target=p.square, args=(q2, q3, ORDER, (q5, 4), ORDER_OF_BLOCK)).start() Process(target=p.square(q3, q4, ORDER, (q5, 8), ORDER_OF_BLOCK)).start() mat2 = p.queue_to_matrix(q4, ORDER, ORDER_OF_BLOCK) t1 = time.time() print t1 - t0