C_rec = collect_Strassen_result(np.split(P_rec, m)) end_time = time() logging['decoding_time'] = end_time - start_decoding_time logging['time'] = end_time - start_time print(f'Sending time: {logging["sending_time"]:.2f} sec') print(f'Receiving time: {logging["receiving_time"]:.2f} sec', end='\n\n') print(f'Encoding time: {logging["encoding_time"]:.2f} sec') print(f'Decoding time: {logging["decoding_time"]:.2f} sec') print('Encoding + decoding time:', f'{logging["encoding_time"]+logging["decoding_time"]:.2f} sec', end='\n\n') print(f'Time: {logging["time"]:.2f} sec') print( f'Ratio: {(logging["encoding_time"]+logging["decoding_time"]) /logging["time"]:.2f}' ) C = A.T @ B nmse = np.linalg.norm(abs(C - C_rec)) / np.linalg.norm(C) print('NMSE:', nmse) logging['nmse'] = nmse if len(sys.argv) == 3: save_logs(logging, sys.argv[2]) else: multiply_parts(comm, s, l, p, timeout=1)
start_decoding_time = time() C_rec = recovery_matrix_cheb(C_tilda, N, m, n, saved_nodes, l, p) end_time = time() logging['decoding_time'] = end_time - start_decoding_time logging['time'] = end_time - start_time print(f'Sending time: {logging["sending_time"]:.2f} sec') print(f'Receiving time: {logging["receiving_time"]:.2f} sec', end='\n\n') print(f'Encoding time: {logging["encoding_time"]:.2f} sec') print(f'Decoding time: {logging["decoding_time"]:.2f} sec') print('Encoding + decoding time:', f'{logging["encoding_time"]+logging["decoding_time"]:.2f} sec', end='\n\n') print(f'Time: {logging["time"]:.2f} sec') print( f'Ratio: {(logging["encoding_time"]+logging["decoding_time"]) /logging["time"]:.2f}' ) C = A.T @ B nmse = np.linalg.norm(abs(C - C_rec)) / np.linalg.norm(C) print('NMSE:', nmse) logging['nmse'] = nmse if len(sys.argv) == 3: save_logs(logging, sys.argv[2]) else: multiply_parts(comm, s, l, p, 1)