def test_device_id_hashing(app_inst: ArrayApplication): assert app_inst is not None d1 = DeviceID(0, "node:localhost1", "cpu", 0) d2 = DeviceID(1, "node:localhost2", "cpu", 0) x = {} x[d1] = "one" x[d2] = "two" assert x[d1] == "one" assert x[d2] == "two"
def init_devices(self): self._devices = [] for node_id in range(self._num_nodes): node = self._available_nodes[node_id] did = DeviceID(node_id, self._node_key(node), "cpu", 1) self._devices.append(did) self._device_to_node[did] = node
def read_fs(self, filename: str): meta = self._fs.read_meta_fs(filename) addresses = meta["addresses"] grid_meta = meta["grid_meta"] grid = ArrayGrid.from_meta(grid_meta) ba: BlockArray = BlockArray(grid, self.cm) for grid_entry in addresses: device_id: DeviceID = DeviceID.from_str(addresses[grid_entry]) ba.blocks[grid_entry].oid = self._fs.read_block_fs( filename, grid_entry, grid_meta, syskwargs={"device_id": device_id}) return ba
def delete_fs(self, filename: str): meta = self._fs.read_meta_fs(filename) addresses = meta["addresses"] grid_meta = meta["grid_meta"] grid = ArrayGrid.from_meta(grid_meta) result_grid = ArrayGrid(grid.grid_shape, tuple(np.ones_like(grid.shape, dtype=np.int)), dtype=dict.__name__) rarr = BlockArray(result_grid, self.cm) for grid_entry in addresses: device_id: DeviceID = DeviceID.from_str(addresses[grid_entry]) rarr.blocks[grid_entry].oid = self._fs.delete_block_fs( filename, grid_entry, grid_meta, syskwargs={"device_id": device_id}) self._fs.delete_meta_fs(filename) return rarr
def mock_device_ids(num_nodes): r = [] for node_id in range(num_nodes): did = DeviceID(node_id, "node%s" % node_id, "cpu", 1) r.append(did) return r
def devices(self): return [DeviceID(0, "localhost", "cpu", 0)]