m = T.shape[0] percentiles = list(arange(0.5, 100.0, 0.5)) seed(0) seeds = random_integers(0, 2 ** 31 - 2, size=EX_NUM) for tr in trends: results = zeros((len(percentiles), len(T), EX_NUM)) * nan filename = 'adf_z_' + tr + '.npz' for i in range(EX_NUM): print("Experiment Number {0} for Trend {1}".format(i + 1, tr)) # Non parallel version # out = lmap(wrapper, T, [tr] * m, [EX_SIZE] * m, [seeds[i]] * m)) now = datetime.datetime.now() out = lview.map_sync(wrapper, T, [tr] * m, [EX_SIZE] * m, [seeds[i]] * m) # Prevent unnecessary results from accumulating lview.purge_results('all') rc.purge_everything() print(datetime.datetime.now() - now) quantiles = lmap(lambda x: percentile(x, percentiles), out) results[:, :, i] = array(quantiles).T if i % 50 == 0: savez(filename, trend=tr, results=results, percentiles=percentiles, T=T) savez(filename, trend=tr, results=results, percentiles=percentiles, T=T)
180, 200, 250, 300, 350, 400, 450, 500, 600, 700, 800, 900, 1000, 1200, 1400, 2000)) T = T[::-1] m = T.shape[0] percentiles = list(arange(0.5, 100.0, 0.5)) seed(0) seeds = random_integers(0,2**31-2,size=EX_NUM) for tr in trends: results = zeros((len(percentiles), len(T), EX_NUM)) * nan filename = 'adf_z_' + tr + '.npz' for i in range(EX_NUM): print("Experiment Number {0} for Trend {1}".format(i + 1, tr)) # Non parallel version # out = lmap(wrapper, T, [tr] * m, [EX_SIZE] * m, [seeds[i]] * m)) now = datetime.datetime.now() out = lview.map_sync(wrapper, T, [tr] * m, [EX_SIZE] * m, [seeds[i]] * m) # Prevent unnecessary results from accumulating lview.purge_results('all') rc.purge_everything() print(datetime.datetime.now() - now) q = lambda x: percentile(x, percentiles) quantiles = lmap(q, out) results[:, :, i] = array(quantiles).T if i % 50 == 0: savez(filename, trend=tr, results=results, percentiles=percentiles, T=T) savez(filename, trend=tr, results=results, percentiles=percentiles, T=T)
import sys from IPython.parallel import Client, interactive from util import timer client = Client() view = client[:] view.execute('import numpy') @interactive # this runs on the engins def calc_pi_on_engines(n): x = numpy.random.rand(n) y = numpy.random.rand(n) r = numpy.hypot(x, y) return 4. * (r < 1.).sum() / n @timer def calc_pi(n): """Estimate pi using IPython.parallel.""" n_engines = n/len(view) results = view.apply_sync(calc_pi_on_engines, n_engines) return float(sum(results))/len(results) if __name__ == "__main__": N = int(sys.argv[1]) result, time = calc_pi(N) print('time : %3.4g\nresult: %.7f' % (time, result)) client.purge_everything()