timer = {} if USE_MPI: comm = MPI.COMM_WORLD rank = comm.Get_rank() size = comm.Get_size() root = 0 if USE_MPI is False or rank == root: timer['detector'] = timeit.default_timer() if USE_MPI: if rank == root: grid = RectGrid(pathname=infile, varname=var, trange=trange) grid = grid.split(size) else: grid = None grid = comm.scatter(grid, root=root) else: grid = RectGrid(pathname=infile, varname=var, trange=trange) centers = grid.detect() if USE_MPI: comm.Barrier() if USE_MPI is False or rank == root: timer['detector'] = timeit.default_timer()-timer['detector'] timer['linker'] = timeit.default_timer()
tracks.append_center(c) print("Linking time: " + str(timeit.default_timer()-timer)) num_tracks = len([t for t in tracks if len(t)>=8 and t[0].abs_dist(t[-1])>=1000.]) print("Number of long tracks: "+str(num_tracks)) pickle.dump(tracks, open("tracks.pickle", "wb")) print("Starting multiple detector...") timer = timeit.default_timer() grid2 = RectGrid(pathname="../slp.2012.nc", varname="slp", trange=(0,120)) grids2 = grid2.split(4) centers2 = [g.detect() for g in grids2] print("Detection time: " + str(timeit.default_timer()-timer)) print("Starting multiple linker...") timer = timeit.default_timer() tracks2 = [[] for i in range(4)] for i, cs in enumerate(centers2): tracks2[i] = Tracks() for c in cs: tracks2[i].append_center(c)
print("Linking time: " + str(timeit.default_timer() - timer)) num_tracks = len( [t for t in tracks if len(t) >= 8 and t[0].abs_dist(t[-1]) >= 1000.]) print("Number of long tracks: " + str(num_tracks)) pickle.dump(tracks, open("tracks.pickle", "wb")) print("Starting multiple detector...") timer = timeit.default_timer() grid2 = RectGrid(pathname="../slp.2012.nc", varname="slp", trange=(0, 120)) grids2 = grid2.split(4) centers2 = [g.detect() for g in grids2] print("Detection time: " + str(timeit.default_timer() - timer)) print("Starting multiple linker...") timer = timeit.default_timer() tracks2 = [[] for i in range(4)] for i, cs in enumerate(centers2): tracks2[i] = Tracks() for c in cs: tracks2[i].append_center(c)
timer = {} if USE_MPI: comm = MPI.COMM_WORLD rank = comm.Get_rank() size = comm.Get_size() root = 0 if USE_MPI is False or rank == root: timer['detector'] = timeit.default_timer() if USE_MPI: if rank == root: grid = RectGrid(pathname=infile, varname=var, trange=trange) grid = grid.split(size) else: grid = None grid = comm.scatter(grid, root=root) else: grid = RectGrid(pathname=infile, varname=var, trange=trange) centers = grid.detect() if USE_MPI: comm.Barrier() if USE_MPI is False or rank == root: timer['detector'] = timeit.default_timer() - timer['detector'] timer['linker'] = timeit.default_timer()