Python mpi4py.MPI.COMM_WORLD Examples
The following are 30
code examples of mpi4py.MPI.COMM_WORLD().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
mpi4py.MPI
, or try the search function
.
Example #1
Source File: mpi_util.py From ICML2019-TREX with MIT License | 6 votes |
def sync_from_root(sess, variables, comm=None): """ Send the root node's parameters to every worker. Arguments: sess: the TensorFlow session. variables: all parameter variables including optimizer's """ if comm is None: comm = MPI.COMM_WORLD rank = comm.Get_rank() for var in variables: if rank == 0: comm.Bcast(sess.run(var)) else: import tensorflow as tf returned_var = np.empty(var.shape, dtype='float32') comm.Bcast(returned_var) sess.run(tf.assign(var, returned_var))
Example #2
Source File: mpi_moments.py From HardRLWithYoutube with MIT License | 6 votes |
def _helper_runningmeanstd(): comm = MPI.COMM_WORLD np.random.seed(0) for (triple,axis) in [ ((np.random.randn(3), np.random.randn(4), np.random.randn(5)),0), ((np.random.randn(3,2), np.random.randn(4,2), np.random.randn(5,2)),0), ((np.random.randn(2,3), np.random.randn(2,4), np.random.randn(2,4)),1), ]: x = np.concatenate(triple, axis=axis) ms1 = [x.mean(axis=axis), x.std(axis=axis), x.shape[axis]] ms2 = mpi_moments(triple[comm.Get_rank()],axis=axis) for (a1,a2) in zipsame(ms1, ms2): print(a1, a2) assert np.allclose(a1, a2) print("ok!")
Example #3
Source File: profile.py From pyGSTi with Apache License 2.0 | 6 votes |
def profile(filename=None, comm=MPI.COMM_WORLD): def prof_decorator(f): def wrap_f(*args, **kwargs): pr = cProfile.Profile() pr.enable() result = f(*args, **kwargs) pr.disable() if filename is None: pr.print_stats() else: filename_r = filename # + ".{}".format(comm.rank) pr.dump_stats(filename_r) return result return wrap_f return prof_decorator
Example #4
Source File: kccsd_rhf.py From pyscf with Apache License 2.0 | 6 votes |
def read_eom_amplitudes(vec_shape, filename="reom_amplitudes.hdf5", vec=None): task_list = generate_max_task_list(vec_shape) read_success = False return False, None # TODO: find a way to make the amplitudes are consistent # with the signs of the eris/t-amplitudes when restarting print("attempting to read in eom amplitudes from file ", filename) if os.path.isfile(filename): print("reading eom amplitudes from file. shape=", vec_shape) feri = h5py.File(filename, 'r', driver='mpio', comm=MPI.COMM_WORLD) saved_v = feri['v'] if vec is None: vec = np.empty(vec_shape,dtype=saved_v.dtype) assert(saved_v.shape == vec_shape) task_list = generate_max_task_list(vec.shape) for block in task_list: which_slice = [slice(*x) for x in block] vec[tuple(which_slice)] = saved_v[tuple(which_slice)] feri.close() read_success = True if vec is not None and vec_shape[-1] == 1: vec = vec.reshape(vec_shape[:-1]) return read_success, vec
Example #5
Source File: mpi_moments.py From Reinforcement_Learning_for_Traffic_Light_Control with Apache License 2.0 | 6 votes |
def _helper_runningmeanstd(): comm = MPI.COMM_WORLD np.random.seed(0) for (triple,axis) in [ ((np.random.randn(3), np.random.randn(4), np.random.randn(5)),0), ((np.random.randn(3,2), np.random.randn(4,2), np.random.randn(5,2)),0), ((np.random.randn(2,3), np.random.randn(2,4), np.random.randn(2,4)),1), ]: x = np.concatenate(triple, axis=axis) ms1 = [x.mean(axis=axis), x.std(axis=axis), x.shape[axis]] ms2 = mpi_moments(triple[comm.Get_rank()],axis=axis) for (a1,a2) in zipsame(ms1, ms2): print(a1, a2) assert np.allclose(a1, a2) print("ok!")
Example #6
Source File: mpi_moments.py From Reinforcement_Learning_for_Traffic_Light_Control with Apache License 2.0 | 6 votes |
def _helper_runningmeanstd(): comm = MPI.COMM_WORLD np.random.seed(0) for (triple,axis) in [ ((np.random.randn(3), np.random.randn(4), np.random.randn(5)),0), ((np.random.randn(3,2), np.random.randn(4,2), np.random.randn(5,2)),0), ((np.random.randn(2,3), np.random.randn(2,4), np.random.randn(2,4)),1), ]: x = np.concatenate(triple, axis=axis) ms1 = [x.mean(axis=axis), x.std(axis=axis), x.shape[axis]] ms2 = mpi_moments(triple[comm.Get_rank()],axis=axis) for (a1,a2) in zipsame(ms1, ms2): print(a1, a2) assert np.allclose(a1, a2) print("ok!")
Example #7
Source File: mpi_util.py From Reinforcement_Learning_for_Traffic_Light_Control with Apache License 2.0 | 6 votes |
def sync_from_root(sess, variables, comm=None): """ Send the root node's parameters to every worker. Arguments: sess: the TensorFlow session. variables: all parameter variables including optimizer's """ if comm is None: comm = MPI.COMM_WORLD rank = comm.Get_rank() for var in variables: if rank == 0: comm.Bcast(sess.run(var)) else: import tensorflow as tf returned_var = np.empty(var.shape, dtype='float32') comm.Bcast(returned_var) sess.run(tf.assign(var, returned_var))
Example #8
Source File: mpi_moments.py From Reinforcement_Learning_for_Traffic_Light_Control with Apache License 2.0 | 6 votes |
def _helper_runningmeanstd(): comm = MPI.COMM_WORLD np.random.seed(0) for (triple,axis) in [ ((np.random.randn(3), np.random.randn(4), np.random.randn(5)),0), ((np.random.randn(3,2), np.random.randn(4,2), np.random.randn(5,2)),0), ((np.random.randn(2,3), np.random.randn(2,4), np.random.randn(2,4)),1), ]: x = np.concatenate(triple, axis=axis) ms1 = [x.mean(axis=axis), x.std(axis=axis), x.shape[axis]] ms2 = mpi_moments(triple[comm.Get_rank()],axis=axis) for (a1,a2) in zipsame(ms1, ms2): print(a1, a2) assert np.allclose(a1, a2) print("ok!")
Example #9
Source File: mpi_util.py From Reinforcement_Learning_for_Traffic_Light_Control with Apache License 2.0 | 6 votes |
def sync_from_root(sess, variables, comm=None): """ Send the root node's parameters to every worker. Arguments: sess: the TensorFlow session. variables: all parameter variables including optimizer's """ if comm is None: comm = MPI.COMM_WORLD rank = comm.Get_rank() for var in variables: if rank == 0: comm.Bcast(sess.run(var)) else: import tensorflow as tf returned_var = np.empty(var.shape, dtype='float32') comm.Bcast(returned_var) sess.run(tf.assign(var, returned_var))
Example #10
Source File: mpi.py From westpa with MIT License | 6 votes |
def __init__(self): # Initialize communicator and obtain standard MPI variables comm = MPI.COMM_WORLD self.comm = comm self.rank = comm.Get_rank() self.num_procs = comm.Get_size() self.name = MPI.Get_processor_name() # Define master rank self.master_rank = 0 # Define message tags for task, result, and announce self.task_tag = 10 self.result_tag = 20 self.announce_tag = 30 # create an empty message buffer messages = []
Example #11
Source File: mpi_moments.py From stable-baselines with MIT License | 6 votes |
def mpi_mean(arr, axis=0, comm=None, keepdims=False): """ calculates the mean of an array, using MPI :param arr: (np.ndarray) :param axis: (int or tuple or list) the axis to run the means over :param comm: (MPI Communicators) if None, MPI.COMM_WORLD :param keepdims: (bool) keep the other dimensions intact :return: (np.ndarray or Number) the result of the sum """ arr = np.asarray(arr) assert arr.ndim > 0 if comm is None: comm = MPI.COMM_WORLD xsum = arr.sum(axis=axis, keepdims=keepdims) size = xsum.size localsum = np.zeros(size + 1, arr.dtype) localsum[:size] = xsum.ravel() localsum[size] = arr.shape[axis] globalsum = np.zeros_like(localsum) comm.Allreduce(localsum, globalsum, op=MPI.SUM) return globalsum[:size].reshape(xsum.shape) / globalsum[size], globalsum[size]
Example #12
Source File: mpi_moments.py From stable-baselines with MIT License | 6 votes |
def mpi_moments(arr, axis=0, comm=None, keepdims=False): """ calculates the mean and std of an array, using MPI :param arr: (np.ndarray) :param axis: (int or tuple or list) the axis to run the moments over :param comm: (MPI Communicators) if None, MPI.COMM_WORLD :param keepdims: (bool) keep the other dimensions intact :return: (np.ndarray or Number) the result of the moments """ arr = np.asarray(arr) assert arr.ndim > 0 mean, count = mpi_mean(arr, axis=axis, comm=comm, keepdims=True) sqdiffs = np.square(arr - mean) meansqdiff, count1 = mpi_mean(sqdiffs, axis=axis, comm=comm, keepdims=True) assert count1 == count std = np.sqrt(meansqdiff) if not keepdims: newshape = mean.shape[:axis] + mean.shape[axis + 1:] mean = mean.reshape(newshape) std = std.reshape(newshape) return mean, std, count
Example #13
Source File: mpi_moments.py From stable-baselines with MIT License | 6 votes |
def _helper_runningmeanstd(): comm = MPI.COMM_WORLD np.random.seed(0) for (triple, axis) in [ ((np.random.randn(3), np.random.randn(4), np.random.randn(5)), 0), ((np.random.randn(3, 2), np.random.randn(4, 2), np.random.randn(5, 2)), 0), ((np.random.randn(2, 3), np.random.randn(2, 4), np.random.randn(2, 4)), 1)]: arr = np.concatenate(triple, axis=axis) ms1 = [arr.mean(axis=axis), arr.std(axis=axis), arr.shape[axis]] ms2 = mpi_moments(triple[comm.Get_rank()], axis=axis) for (res_1, res_2) in zipsame(ms1, ms2): print(res_1, res_2) assert np.allclose(res_1, res_2) print("ok!")
Example #14
Source File: mpi_moments.py From learning2run with MIT License | 6 votes |
def mpi_moments(x, axis=0): x = np.asarray(x, dtype='float64') newshape = list(x.shape) newshape.pop(axis) n = np.prod(newshape,dtype=int) totalvec = np.zeros(n*2+1, 'float64') addvec = np.concatenate([x.sum(axis=axis).ravel(), np.square(x).sum(axis=axis).ravel(), np.array([x.shape[axis]],dtype='float64')]) MPI.COMM_WORLD.Allreduce(addvec, totalvec, op=MPI.SUM) sum = totalvec[:n] sumsq = totalvec[n:2*n] count = totalvec[2*n] if count == 0: mean = np.empty(newshape); mean[:] = np.nan std = np.empty(newshape); std[:] = np.nan else: mean = sum/count std = np.sqrt(np.maximum(sumsq/count - np.square(mean),0)) return mean, std, count
Example #15
Source File: mpi_moments.py From learning2run with MIT License | 6 votes |
def test_runningmeanstd(): comm = MPI.COMM_WORLD np.random.seed(0) for (triple,axis) in [ ((np.random.randn(3), np.random.randn(4), np.random.randn(5)),0), ((np.random.randn(3,2), np.random.randn(4,2), np.random.randn(5,2)),0), ((np.random.randn(2,3), np.random.randn(2,4), np.random.randn(2,4)),1), ]: x = np.concatenate(triple, axis=axis) ms1 = [x.mean(axis=axis), x.std(axis=axis), x.shape[axis]] ms2 = mpi_moments(triple[comm.Get_rank()],axis=axis) for (a1,a2) in zipsame(ms1, ms2): print(a1, a2) assert np.allclose(a1, a2) print("ok!")
Example #16
Source File: mpi_moments.py From DRL_DeliveryDuel with MIT License | 6 votes |
def _helper_runningmeanstd(): comm = MPI.COMM_WORLD np.random.seed(0) for (triple,axis) in [ ((np.random.randn(3), np.random.randn(4), np.random.randn(5)),0), ((np.random.randn(3,2), np.random.randn(4,2), np.random.randn(5,2)),0), ((np.random.randn(2,3), np.random.randn(2,4), np.random.randn(2,4)),1), ]: x = np.concatenate(triple, axis=axis) ms1 = [x.mean(axis=axis), x.std(axis=axis), x.shape[axis]] ms2 = mpi_moments(triple[comm.Get_rank()],axis=axis) for (a1,a2) in zipsame(ms1, ms2): print(a1, a2) assert np.allclose(a1, a2) print("ok!")
Example #17
Source File: mpi_moments.py From rl_graph_generation with BSD 3-Clause "New" or "Revised" License | 6 votes |
def _helper_runningmeanstd(): comm = MPI.COMM_WORLD np.random.seed(0) for (triple,axis) in [ ((np.random.randn(3), np.random.randn(4), np.random.randn(5)),0), ((np.random.randn(3,2), np.random.randn(4,2), np.random.randn(5,2)),0), ((np.random.randn(2,3), np.random.randn(2,4), np.random.randn(2,4)),1), ]: x = np.concatenate(triple, axis=axis) ms1 = [x.mean(axis=axis), x.std(axis=axis), x.shape[axis]] ms2 = mpi_moments(triple[comm.Get_rank()],axis=axis) for (a1,a2) in zipsame(ms1, ms2): print(a1, a2) assert np.allclose(a1, a2) print("ok!")
Example #18
Source File: mpi_moments.py From ICML2019-TREX with MIT License | 6 votes |
def _helper_runningmeanstd(): comm = MPI.COMM_WORLD np.random.seed(0) for (triple,axis) in [ ((np.random.randn(3), np.random.randn(4), np.random.randn(5)),0), ((np.random.randn(3,2), np.random.randn(4,2), np.random.randn(5,2)),0), ((np.random.randn(2,3), np.random.randn(2,4), np.random.randn(2,4)),1), ]: x = np.concatenate(triple, axis=axis) ms1 = [x.mean(axis=axis), x.std(axis=axis), x.shape[axis]] ms2 = mpi_moments(triple[comm.Get_rank()],axis=axis) for (a1,a2) in zipsame(ms1, ms2): print(a1, a2) assert np.allclose(a1, a2) print("ok!")
Example #19
Source File: mpi_moments.py From ICML2019-TREX with MIT License | 6 votes |
def _helper_runningmeanstd(): comm = MPI.COMM_WORLD np.random.seed(0) for (triple,axis) in [ ((np.random.randn(3), np.random.randn(4), np.random.randn(5)),0), ((np.random.randn(3,2), np.random.randn(4,2), np.random.randn(5,2)),0), ((np.random.randn(2,3), np.random.randn(2,4), np.random.randn(2,4)),1), ]: x = np.concatenate(triple, axis=axis) ms1 = [x.mean(axis=axis), x.std(axis=axis), x.shape[axis]] ms2 = mpi_moments(triple[comm.Get_rank()],axis=axis) for (a1,a2) in zipsame(ms1, ms2): print(a1, a2) assert np.allclose(a1, a2) print("ok!")
Example #20
Source File: mpi_moments.py From lirpg with MIT License | 6 votes |
def _helper_runningmeanstd(): comm = MPI.COMM_WORLD np.random.seed(0) for (triple,axis) in [ ((np.random.randn(3), np.random.randn(4), np.random.randn(5)),0), ((np.random.randn(3,2), np.random.randn(4,2), np.random.randn(5,2)),0), ((np.random.randn(2,3), np.random.randn(2,4), np.random.randn(2,4)),1), ]: x = np.concatenate(triple, axis=axis) ms1 = [x.mean(axis=axis), x.std(axis=axis), x.shape[axis]] ms2 = mpi_moments(triple[comm.Get_rank()],axis=axis) for (a1,a2) in zipsame(ms1, ms2): print(a1, a2) assert np.allclose(a1, a2) print("ok!")
Example #21
Source File: mpi_tf.py From spinningup with MIT License | 5 votes |
def __init__(self, **kwargs): self.comm = MPI.COMM_WORLD tf.train.AdamOptimizer.__init__(self, **kwargs)
Example #22
Source File: mpi_adam.py From HardRLWithYoutube with MIT License | 5 votes |
def __init__(self, var_list, *, beta1=0.9, beta2=0.999, epsilon=1e-08, scale_grad_by_procs=True, comm=None): self.var_list = var_list self.beta1 = beta1 self.beta2 = beta2 self.epsilon = epsilon self.scale_grad_by_procs = scale_grad_by_procs size = sum(U.numel(v) for v in var_list) self.m = np.zeros(size, 'float32') self.v = np.zeros(size, 'float32') self.t = 0 self.setfromflat = U.SetFromFlat(var_list) self.getflat = U.GetFlat(var_list) self.comm = MPI.COMM_WORLD if comm is None else comm
Example #23
Source File: track.py From ocelot with GNU General Public License v3.0 | 5 votes |
def da_mpi(lat, nturns, x_array, y_array, errors=None, nsuperperiods=1): from mpi4py import MPI mpi_comm = MPI.COMM_WORLD rank = mpi_comm.Get_rank() track_list = create_track_list(x_array, y_array, p_array=[0]) track_list = track_nturns_mpi(mpi_comm, lat, nturns, track_list, errors=errors, nsuperperiods=nsuperperiods, save_track=False) if rank == 0: da = np.array(map(lambda track: track.turn, track_list))#.reshape((len(y_array), len(x_array))) nx = len(x_array) ny = len(y_array) return da.reshape(ny, nx)
Example #24
Source File: track.py From ocelot with GNU General Public License v3.0 | 5 votes |
def fma(lat, nturns, x_array, y_array, nsuperperiods = 1): from mpi4py import MPI mpi_comm = MPI.COMM_WORLD rank = mpi_comm.Get_rank() track_list = create_track_list(x_array, y_array, p_array=[0]) track_list = track_nturns_mpi(mpi_comm, lat, nturns, track_list, nsuperperiods=nsuperperiods) if rank == 0: nx = len(x_array) ny = len(y_array) ctr_da = contour_da(track_list, nturns) #ctr_da = tra.countour_da() track_list = freq_analysis(track_list, lat, nturns, harm = True) da_mux = np.array(map(lambda pxy: pxy.mux, track_list)) da_muy = np.array(map(lambda pxy: pxy.muy, track_list)) return ctr_da.reshape(ny,nx), da_mux.reshape(ny,nx), da_muy.reshape(ny,nx)
Example #25
Source File: mpi_moments.py From HardRLWithYoutube with MIT License | 5 votes |
def mpi_mean(x, axis=0, comm=None, keepdims=False): x = np.asarray(x) assert x.ndim > 0 if comm is None: comm = MPI.COMM_WORLD xsum = x.sum(axis=axis, keepdims=keepdims) n = xsum.size localsum = np.zeros(n+1, x.dtype) localsum[:n] = xsum.ravel() localsum[n] = x.shape[axis] globalsum = np.zeros_like(localsum) comm.Allreduce(localsum, globalsum, op=MPI.SUM) return globalsum[:n].reshape(xsum.shape) / globalsum[n], globalsum[n]
Example #26
Source File: mpi_running_mean_std.py From learning2run with MIT License | 5 votes |
def update(self, x): x = x.astype('float64') n = int(np.prod(self.shape)) totalvec = np.zeros(n*2+1, 'float64') addvec = np.concatenate([x.sum(axis=0).ravel(), np.square(x).sum(axis=0).ravel(), np.array([len(x)],dtype='float64')]) MPI.COMM_WORLD.Allreduce(addvec, totalvec, op=MPI.SUM) self.incfiltparams(totalvec[0:n].reshape(self.shape), totalvec[n:2*n].reshape(self.shape), totalvec[2*n])
Example #27
Source File: mpi_running_mean_std.py From learning2run with MIT License | 5 votes |
def test_dist(): np.random.seed(0) p1,p2,p3=(np.random.randn(3,1), np.random.randn(4,1), np.random.randn(5,1)) q1,q2,q3=(np.random.randn(6,1), np.random.randn(7,1), np.random.randn(8,1)) # p1,p2,p3=(np.random.randn(3), np.random.randn(4), np.random.randn(5)) # q1,q2,q3=(np.random.randn(6), np.random.randn(7), np.random.randn(8)) comm = MPI.COMM_WORLD assert comm.Get_size()==2 if comm.Get_rank()==0: x1,x2,x3 = p1,p2,p3 elif comm.Get_rank()==1: x1,x2,x3 = q1,q2,q3 else: assert False rms = RunningMeanStd(epsilon=0.0, shape=(1,)) U.initialize() rms.update(x1) rms.update(x2) rms.update(x3) bigvec = np.concatenate([p1,p2,p3,q1,q2,q3]) def checkallclose(x,y): print(x,y) return np.allclose(x,y) assert checkallclose( bigvec.mean(axis=0), U.eval(rms.mean) ) assert checkallclose( bigvec.std(axis=0), U.eval(rms.std) )
Example #28
Source File: mpi_adam.py From learning2run with MIT License | 5 votes |
def __init__(self, var_list, beta1=0.9, beta2=0.999, epsilon=1e-08, scale_grad_by_procs=True, comm=None): self.var_list = var_list self.beta1 = beta1 self.beta2 = beta2 self.epsilon = epsilon self.scale_grad_by_procs = scale_grad_by_procs size = sum(U.numel(v) for v in var_list) self.m = np.zeros(size, 'float32') self.v = np.zeros(size, 'float32') self.t = 0 self.setfromflat = U.SetFromFlat(var_list) self.getflat = U.GetFlat(var_list) self.comm = MPI.COMM_WORLD if comm is None else comm
Example #29
Source File: mpi_moments.py From DRL_DeliveryDuel with MIT License | 5 votes |
def mpi_mean(x, axis=0, comm=None, keepdims=False): x = np.asarray(x) assert x.ndim > 0 if comm is None: comm = MPI.COMM_WORLD xsum = x.sum(axis=axis, keepdims=keepdims) n = xsum.size localsum = np.zeros(n+1, x.dtype) localsum[:n] = xsum.ravel() localsum[n] = x.shape[axis] globalsum = np.zeros_like(localsum) comm.Allreduce(localsum, globalsum, op=MPI.SUM) return globalsum[:n].reshape(xsum.shape) / globalsum[n], globalsum[n]
Example #30
Source File: hetr_server.py From ngraph-python with Apache License 2.0 | 5 votes |
def write_server_info(filename, port): pid = os.getpid() rank = MPI.COMM_WORLD.Get_rank() server_info = '{}:{}:{}:{}:{}'.format(LINE_TOKEN, rank, pid, port, LINE_TOKEN).strip() logger.debug("write_server_info: line %s, filename %s", server_info, filename) time.sleep(0.1 * rank) with open(filename, "a") as f: fcntl.lockf(f, fcntl.LOCK_EX) f.write(server_info + '\n') f.flush() os.fsync(f.fileno()) fcntl.lockf(f, fcntl.LOCK_UN) return server_info