# AI and Predictive Analytics in Datacenter Environments # http://dcai.bsc.es import numpy as np import datetime from multiprocessing import Pool np.random.seed(25740565) X = np.random.randn(20000) Y = np.random.randn(20000) def scalar_sum(X, y): return sum( x * y for x in X ) time_start = datetime.datetime.now() result = sum(scalar_sum(X, y) for y in Y) time_end = datetime.datetime.now() print(result) print(time_end-time_start) def scalar_sum_2(Xy): return sum( x * Xy[1] for x in Xy[0] ) p = Pool(4) time_start = datetime.datetime.now() result = sum( p.map( scalar_sum_2, ((X,y) for y in Y) )) time_end = datetime.datetime.now() print(result) print(time_end-time_start) ################################### def pairwise_sum(X, Y): return( sum( x*y for x in X for y in Y ) ) time_start = datetime.datetime.now() result = pairwise_sum(X, Y) time_end = datetime.datetime.now() print(result) print(time_end-time_start) def pairwise_sum_2(Xy): return( sum(x * Xy[1] for x in Xy[0]) ) p = Pool(4) time_start = datetime.datetime.now() tuples = ((X, y) for y in Y) result = sum(p.map(pairwise_sum_2, tuples )) time_end = datetime.datetime.now() print(result) print(time_end-time_start)