def _get_spikes_from_file_mpi(file_names): with Barrier(): if comm.rank() == 0: data = _get_spikes_from_file(file_names) else: data = None with Barrier(): data = comm.bcast(data, root=0) return data
def _text_load_mpi(f): with Barrier(): if comm.rank() == 0: data = _text_load(f) else: data = None with Barrier(): data = comm.bcast(data, root=0) return data
def save_fig(self, *args): if comm.is_mpi_used(): with Barrier(): if comm.rank() == 0: self._save_fig(*args) else: self._save_fig(*args)
def collect_spikes_mpi(*args): args = list(args) for i in range(len(args)): with Barrier(): if comm.rank() == 0: for i_proc in xrange(1, comm.size()): args[i] = numpy.r_[args[i], comm.recv(source=i_proc)] else: comm.send(args[i], dest=0) args[i] = comm.bcast(args[i], root=0) return args
def _Connect_DC_mpi(*args, **kwargs): with Barrier(): _Connect_DC(*args, **kwargs)
def _Simulate_mpi(*args, **kwargs): with Barrier(): print 'Simulating rank %i' % ( Rank()) #seems like it it neccesary to avoid hangup for mpi??!! _Simulate(*args, **kwargs)
def _Create_mpi(*args, **kwargs): with Barrier(): return nest.Create(*args, **kwargs)
def _delete_data_mpi(path, **kwargs): with Barrier(): if comm.rank() == 0: _delete_data(path, **kwargs)
def _Connect_speed_mpi(*args, **kwargs): with Barrier(): print 'Connecting rank %i' % ( Rank()) #To avoid hangup similar as in Simulation _Connect_speed(*args, **kwargs)
def _save_mpi(self): with Barrier(): if comm.rank() == 0: self._save()
def _text_save_mpi(*args): with Barrier(): if comm.rank() == 0: _text_save(*args)
def _pickle_save_mpi(*args): with Barrier(): if comm.rank() == 0: # OBS!!! watch out for having barriers inside here. # Will stall program _pickle_save(*args)
def _mkdir_mpi(*args): with Barrier(): if comm.rank() == 0: _mkdir(*args)
def _garbage_collect_mpi(self): with Barrier(): if comm.rank() == 0: self._garbage_collect()