Python multiprocessing.RawArray() Examples
The following are 30
code examples of multiprocessing.RawArray().
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
multiprocessing
, or try the search function
.
Example #1
Source File: async_.py From chainerrl with MIT License | 6 votes |
def extract_params_as_shared_arrays(link): assert isinstance(link, chainer.Link) shared_arrays = {} for param_name, param in link.namedparams(): typecode = param.array.dtype.char shared_arrays[param_name] = mp.RawArray(typecode, param.array.ravel()) for persistent_name, persistent in chainerrl.misc.namedpersistent(link): if isinstance(persistent, np.ndarray): typecode = persistent.dtype.char shared_arrays[persistent_name] = mp.RawArray( typecode, persistent.ravel()) else: assert np.isscalar(persistent) # Wrap by a 1-dim array because multiprocessing.RawArray does not # accept a 0-dim array. persistent_as_array = np.asarray([persistent]) typecode = persistent_as_array.dtype.char shared_arrays[persistent_name] = mp.RawArray( typecode, persistent_as_array) return shared_arrays
Example #2
Source File: train.py From sGDML with MIT License | 6 votes |
def _share_array(arr_np, typecode_or_type): """ Return a ctypes array allocated from shared memory with data from a NumPy array. Parameters ---------- arr_np : :obj:`numpy.ndarray` NumPy array. typecode_or_type : char or :obj:`ctype` Either a ctypes type or a one character typecode of the kind used by the Python array module. Returns ------- array of :obj:`ctype` """ arr = mp.RawArray(typecode_or_type, arr_np.ravel()) return arr, arr_np.shape
Example #3
Source File: predict.py From sGDML with MIT License | 6 votes |
def share_array(arr_np): """ Return a ctypes array allocated from shared memory with data from a NumPy array of type `float`. Parameters ---------- arr_np : :obj:`numpy.ndarray` NumPy array. Returns ------- array of :obj:`ctype` """ arr = mp.RawArray('d', arr_np.ravel()) return arr, arr_np.shape
Example #4
Source File: parcbpdn.py From sporco with BSD 3-Clause "New" or "Revised" License | 6 votes |
def mpraw_as_np(shape, dtype): """Construct a numpy array of the specified shape and dtype for which the underlying storage is a multiprocessing RawArray in shared memory. Parameters ---------- shape : tuple Shape of numpy array dtype : data-type Data type of array Returns ------- arr : ndarray Numpy array """ sz = int(np.product(shape)) csz = sz * np.dtype(dtype).itemsize raw = mp.RawArray('c', csz) return np.frombuffer(raw, dtype=dtype, count=sz).reshape(shape)
Example #5
Source File: prlcnscdl.py From sporco with BSD 3-Clause "New" or "Revised" License | 6 votes |
def mpraw_as_np(shape, dtype): """Construct a numpy array of the specified shape and dtype for which the underlying storage is a multiprocessing RawArray in shared memory. Parameters ---------- shape : tuple Shape of numpy array dtype : data-type Data type of array Returns ------- arr : ndarray Numpy array """ sz = int(np.product(shape)) csz = sz * np.dtype(dtype).itemsize raw = mp.RawArray('c', csz) return np.frombuffer(raw, dtype=dtype, count=sz).reshape(shape)
Example #6
Source File: parcnsdl.py From alphacsc with BSD 3-Clause "New" or "Revised" License | 6 votes |
def mpraw_as_np(shape, dtype): """Construct a numpy array of the specified shape and dtype for which the underlying storage is a multiprocessing RawArray in shared memory. Parameters ---------- shape : tuple Shape of numpy array dtype : data-type Data type of array Returns ------- arr : ndarray Numpy array """ sz = int(np.product(shape)) csz = sz * np.dtype(dtype).itemsize raw = mp.RawArray('c', csz) return np.frombuffer(raw, dtype=dtype, count=sz).reshape(shape)
Example #7
Source File: _test_multiprocessing.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 6 votes |
def test_array(self, raw=False): seq = [680, 626, 934, 821, 150, 233, 548, 982, 714, 831] if raw: arr = self.RawArray('i', seq) else: arr = self.Array('i', seq) self.assertEqual(len(arr), len(seq)) self.assertEqual(arr[3], seq[3]) self.assertEqual(list(arr[2:7]), list(seq[2:7])) arr[4:8] = seq[4:8] = array.array('i', [1, 2, 3, 4]) self.assertEqual(list(arr[:]), seq) self.f(seq) p = self.Process(target=self.f, args=(arr,)) p.daemon = True p.start() p.join() self.assertEqual(list(arr[:]), seq)
Example #8
Source File: buffer.py From rlpyt with MIT License | 6 votes |
def __new__(cls, shape, dtype=None, buffer=None, offset=None, strides=None, order=None): # init buffer if buffer is None: assert offset is None assert strides is None size = int(np.prod(shape)) nbytes = size * np.dtype(dtype).itemsize # this is the part that can be passed between processes shmem = mp.RawArray(ctypes.c_char, nbytes) offset = 0 elif isinstance(buffer, ctypes.Array): # restoring from a pickle shmem = buffer else: raise ValueError( f"{cls.__name__} does not support specifying custom " f" buffers, but was given {buffer!r}") # init array obj = np.ndarray.__new__(cls, shape, dtype=dtype, buffer=shmem, offset=offset, strides=strides, order=order) obj._shmem = shmem return obj
Example #9
Source File: _test_multiprocessing.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_array(self, raw=False): seq = [680, 626, 934, 821, 150, 233, 548, 982, 714, 831] if raw: arr = self.RawArray('i', seq) else: arr = self.Array('i', seq) self.assertEqual(len(arr), len(seq)) self.assertEqual(arr[3], seq[3]) self.assertEqual(list(arr[2:7]), list(seq[2:7])) arr[4:8] = seq[4:8] = array.array('i', [1, 2, 3, 4]) self.assertEqual(list(arr[:]), seq) self.f(seq) p = self.Process(target=self.f, args=(arr,)) p.daemon = True p.start() p.join() self.assertEqual(list(arr[:]), seq)
Example #10
Source File: _test_multiprocessing.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_array(self, raw=False): seq = [680, 626, 934, 821, 150, 233, 548, 982, 714, 831] if raw: arr = self.RawArray('i', seq) else: arr = self.Array('i', seq) self.assertEqual(len(arr), len(seq)) self.assertEqual(arr[3], seq[3]) self.assertEqual(list(arr[2:7]), list(seq[2:7])) arr[4:8] = seq[4:8] = array.array('i', [1, 2, 3, 4]) self.assertEqual(list(arr[:]), seq) self.f(seq) p = self.Process(target=self.f, args=(arr,)) p.daemon = True p.start() p.join() self.assertEqual(list(arr[:]), seq)
Example #11
Source File: parallel.py From beat with GNU General Public License v3.0 | 6 votes |
def borrow_all_memories(shared_params, memshared_instances): """ Run theano_borrow_memory on a list of params and shared memory sharedctypes. Parameters ---------- shared_params : list of :class:`theano.tensor.sharedvar.TensorSharedVariable` the Theano shared variable where shared memory should be used instead. memshared_instances : dict of tuples of :class:`multiprocessing.RawArray` and their shapes the memory shared across processes (e.g.from `memshare_sparams`) Notes ----- Same as `borrow_memory` but for lists of shared memories and theano variables. See `borrow_memory` """ for sparam in shared_params: borrow_memory(sparam, *memshared_instances[sparam.name])
Example #12
Source File: parcbpdn.py From sporco with BSD 3-Clause "New" or "Revised" License | 5 votes |
def init_mpraw(mpv, npv): """Set a global variable as a multiprocessing RawArray in shared memory with a numpy array wrapper and initialise its value. Parameters ---------- mpv : string Name of global variable to set npv : ndarray Numpy array to use as initialiser for global variable value """ globals()[mpv] = mpraw_as_np(npv.shape, npv.dtype) globals()[mpv][:] = npv
Example #13
Source File: shared_memory.py From tensorflow-rl with Apache License 2.0 | 5 votes |
def __init__(self, num_actors): self.updated = RawArray(ctypes.c_int, num_actors)
Example #14
Source File: ringbuffer.py From ringbuffer with Apache License 2.0 | 5 votes |
def __init__(self, *, slot_bytes, slot_count): """Initializer. Args: slot_bytes: How big each buffer in the array should be. slot_count: How many buffers should be in the array. """ self.slot_bytes = slot_bytes self.slot_count = slot_count self.length_bytes = 4 slot_type = ctypes.c_byte * (slot_bytes + self.length_bytes) self.array = multiprocessing.RawArray(slot_type, slot_count)
Example #15
Source File: _test_multiprocessing.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_getobj_getlock_obj(self): arr1 = self.Array('i', list(range(10))) lock1 = arr1.get_lock() obj1 = arr1.get_obj() arr2 = self.Array('i', list(range(10)), lock=None) lock2 = arr2.get_lock() obj2 = arr2.get_obj() lock = self.Lock() arr3 = self.Array('i', list(range(10)), lock=lock) lock3 = arr3.get_lock() obj3 = arr3.get_obj() self.assertEqual(lock, lock3) arr4 = self.Array('i', range(10), lock=False) self.assertFalse(hasattr(arr4, 'get_lock')) self.assertFalse(hasattr(arr4, 'get_obj')) self.assertRaises(AttributeError, self.Array, 'i', range(10), lock='notalock') arr5 = self.RawArray('i', range(10)) self.assertFalse(hasattr(arr5, 'get_lock')) self.assertFalse(hasattr(arr5, 'get_obj')) # # #
Example #16
Source File: parcnsdl.py From alphacsc with BSD 3-Clause "New" or "Revised" License | 5 votes |
def init_mpraw(mpv, npv): """Set a global variable as a multiprocessing RawArray in shared memory with a numpy array wrapper and initialise its value. Parameters ---------- mpv : string Name of global variable to set npv : ndarray Numpy array to use as initialiser for global variable value """ globals()[mpv] = mpraw_as_np(npv.shape, npv.dtype) globals()[mpv][:] = npv
Example #17
Source File: control_test.py From iroko with Apache License 2.0 | 5 votes |
def init_rate_control(ctrl_iface, rate): # Initialize the action array shared with the control manager tx_rate = RawArray(ctypes.c_uint32, 1) tx_rate = dc_utils.shmem_to_nparray(tx_rate, np.float32) tx_rate.fill(rate) bw_proc = BandwidthController({"test": ctrl_iface}, tx_rate, tx_rate, rate) bw_proc.start() return tx_rate, bw_proc
Example #18
Source File: env_iroko.py From iroko with Apache License 2.0 | 5 votes |
def _set_gym_matrices(self): # set the action space num_actions = self.topo.get_num_hosts() min_bw = 10000.0 / float(self.topo.conf["max_capacity"]) action_min = np.empty(num_actions) action_min.fill(min_bw) action_max = np.empty(num_actions) action_max.fill(1.0) self.action_space = spaces.Box( low=action_min, high=action_max, dtype=np.float32) # Initialize the action arrays shared with the control manager # Qdisc do not go beyond uint32 rate limit which is about 4Gbps tx_rate = RawArray(ctypes.c_uint32, num_actions) self.tx_rate = dc_utils.shmem_to_nparray(tx_rate, np.float32) active_rate = RawArray(ctypes.c_uint32, num_actions) self.active_rate = dc_utils.shmem_to_nparray(active_rate, np.float32) log.info("%s Setting action space", (self.short_id)) log.info("from %s", action_min) log.info("to %s", action_max) # set the observation space num_ports = self.topo.get_num_sw_ports() num_features = len(self.conf["state_model"]) if self.conf["collect_flows"]: num_features += num_actions * 2 obs_min = np.empty(num_ports * num_features + num_actions) obs_min.fill(-np.inf) obs_max = np.empty(num_ports * num_features + num_actions) obs_max.fill(np.inf) self.observation_space = spaces.Box( low=obs_min, high=obs_max, dtype=np.float64)
Example #19
Source File: iroko_state.py From iroko with Apache License 2.0 | 5 votes |
def _init_stats_matrices(self, num_ports, num_hosts): # Set up the shared stats matrix stats_arr_len = num_ports * len(self.stats_dict) mp_stats = RawArray(c_ulong, stats_arr_len) np_stats = dc_utils.shmem_to_nparray(mp_stats, np.float64) self.stats = np_stats.reshape((len(self.stats_dict), num_ports)) # Set up the shared flow matrix if (self.collect_flows): flow_arr_len = num_ports * num_hosts * 2 mp_flows = RawArray(c_ubyte, flow_arr_len) np_flows = dc_utils.shmem_to_nparray(mp_flows, np.uint8) self.flow_stats = np_flows.reshape((num_ports, 2, num_hosts)) # Save the initialized stats matrix to compute deltas self.prev_stats = self.stats.copy() self.deltas = np.zeros(shape=(len(self.stats_dict), num_ports))
Example #20
Source File: async.py From async-rl with MIT License | 5 votes |
def extract_states_as_shared_arrays(optimizer): assert isinstance(optimizer, chainer.Optimizer) assert hasattr(optimizer, 'target'), 'Optimizer.setup must be called first' shared_arrays = {} for state_name, state in optimizer._states.items(): shared_arrays[state_name] = {} for param_name, param in state.items(): shared_arrays[state_name][ param_name] = mp.RawArray('f', param.ravel()) return shared_arrays
Example #21
Source File: prlcnscdl.py From sporco with BSD 3-Clause "New" or "Revised" License | 5 votes |
def init_mpraw(mpv, npv): """Set a global variable as a multiprocessing RawArray in shared memory with a numpy array wrapper and initialise its value. Parameters ---------- mpv : string Name of global variable to set npv : ndarray Numpy array to use as initialiser for global variable value """ globals()[mpv] = mpraw_as_np(npv.shape, npv.dtype) globals()[mpv][:] = npv
Example #22
Source File: async.py From async-rl with MIT License | 5 votes |
def extract_params_as_shared_arrays(link): assert isinstance(link, chainer.Link) shared_arrays = {} for param_name, param in link.namedparams(): shared_arrays[param_name] = mp.RawArray('f', param.data.ravel()) return shared_arrays
Example #23
Source File: shared_memory.py From tensorflow-rl with Apache License 2.0 | 5 votes |
def malloc_contiguous(self, size, initial_val=None): if initial_val is None: return RawArray(ctypes.c_float, size) else: return RawArray(ctypes.c_float, initial_val)
Example #24
Source File: MPSharedList.py From DeepFaceLab with GNU General Public License v3.0 | 5 votes |
def bake_data(obj_list): if not isinstance(obj_list, list): raise ValueError("MPSharedList: obj_list should be list type.") obj_count = len(obj_list) if obj_count != 0: obj_pickled_ar = [pickle.dumps(o, 4) for o in obj_list] table_offset = 0 table_size = (obj_count+1)*8 data_offset = table_offset + table_size data_size = sum([len(x) for x in obj_pickled_ar]) sh_b = multiprocessing.RawArray('B', table_size + data_size) sh_b[0:8] = struct.pack('<Q', obj_count) offset = 0 sh_b_table = bytes() offsets = [] offset = 0 for i in range(obj_count): offsets.append(offset) offset += len(obj_pickled_ar[i]) offsets.append(offset) sh_b[table_offset:table_offset+table_size] = struct.pack( '<'+'Q'*len(offsets), *offsets ) ArrayFillerSubprocessor(sh_b, [ (data_offset+offsets[i], obj_pickled_ar[i] ) for i in range(obj_count) ] ).run() return obj_count, table_offset, data_offset, sh_b return 0, 0, 0, None
Example #25
Source File: rapidtide2x.py From rapidtide with Apache License 2.0 | 5 votes |
def numpy2shared(inarray, thetype): thesize = inarray.size theshape = inarray.shape if thetype == np.float64: inarray_shared = mp.RawArray('d', inarray.reshape(thesize)) else: inarray_shared = mp.RawArray('f', inarray.reshape(thesize)) inarray = np.frombuffer(inarray_shared, dtype=thetype, count=thesize) inarray.shape = theshape return inarray, inarray_shared, theshape
Example #26
Source File: rapidtide2x.py From rapidtide with Apache License 2.0 | 5 votes |
def allocshared(theshape, thetype): thesize = int(1) for element in theshape: thesize *= int(element) if thetype == np.float64: outarray_shared = mp.RawArray('d', thesize) else: outarray_shared = mp.RawArray('f', thesize) outarray = np.frombuffer(outarray_shared, dtype=thetype, count=thesize) outarray.shape = theshape return outarray, outarray_shared, theshape
Example #27
Source File: rapidtideX.py From rapidtide with Apache License 2.0 | 5 votes |
def numpy2shared(inarray, thetype): thesize = inarray.size theshape = inarray.shape if thetype == np.float64: inarray_shared = mp.RawArray('d', inarray.reshape(thesize)) else: inarray_shared = mp.RawArray('f', inarray.reshape(thesize)) inarray = np.frombuffer(inarray_shared, dtype=thetype, count=thesize) inarray.shape = theshape return inarray, inarray_shared, theshape
Example #28
Source File: rapidtideX.py From rapidtide with Apache License 2.0 | 5 votes |
def allocshared(theshape, thetype): thesize = int(1) for element in theshape: thesize *= int(element) if thetype == np.float64: outarray_shared = mp.RawArray('d', thesize) else: outarray_shared = mp.RawArray('f', thesize) outarray = np.frombuffer(outarray_shared, dtype=thetype, count=thesize) outarray.shape = theshape return outarray, outarray_shared, theshape
Example #29
Source File: rapidtide2x_trans.py From rapidtide with Apache License 2.0 | 5 votes |
def numpy2shared(inarray, thetype): thesize = inarray.size theshape = inarray.shape if thetype == np.float64: inarray_shared = mp.RawArray('d', inarray.reshape(thesize)) else: inarray_shared = mp.RawArray('f', inarray.reshape(thesize)) inarray = np.frombuffer(inarray_shared, dtype=thetype, count=thesize) inarray.shape = theshape return inarray, inarray_shared, theshape
Example #30
Source File: parallel_map.py From tensorpack with Apache License 2.0 | 5 votes |
def _create_shared_arr(self): TYPE = { np.float32: ctypes.c_float, np.float64: ctypes.c_double, np.uint8: ctypes.c_uint8, np.int8: ctypes.c_int8, np.int32: ctypes.c_int32, } ctype = TYPE[self.output_dtype] arr = mp.RawArray(ctype, int(np.prod(self.output_shape))) return arr