if key == 'bool': continue dset = grp[key] indices = slice((size - rank - 1) * datasize, (size - rank) * datasize) selection = HyperslabSelection(indices, dset.shape) new_val = np.ndarray(selection.mshape, dset.dtype, order='C') dset.read(new_val, selection, collective=parallel) ref_val = np.arange((size - rank - 1) * datasize, (size - rank) * datasize, dtype=key) assert ((new_val == ref_val).all) if world.size > 1: comm = world.get_c_object() parallel = True else: comm = None parallel = False file = File('tmp.hdf5', 'w', comm=comm) write(attrs, data, file, parallel) file.close() file = File('tmp.hdf5', 'r', comm=comm) read(attrs, data, file, parallel) file.close() if rank == 0: os.remove('tmp.hdf5')
# read data in reversed order for key in data: if key == "bool": continue dset = grp[key] indices = slice((size - rank - 1) * datasize, (size - rank) * datasize) selection = HyperslabSelection(indices, dset.shape) new_val = np.ndarray(selection.mshape, dset.dtype, order="C") dset.read(new_val, selection, collective=parallel) ref_val = np.arange((size - rank - 1) * datasize, (size - rank) * datasize, dtype=key) assert (new_val == ref_val).all if world.size > 1: comm = world.get_c_object() parallel = True else: comm = None parallel = False file = File("tmp.hdf5", "w", comm=comm) write(attrs, data, file, parallel) file.close() file = File("tmp.hdf5", "r", comm=comm) read(attrs, data, file, parallel) file.close() if rank == 0: os.remove("tmp.hdf5")
import numpy as np import os from gpaw.io.hdf5_highlevel import File from gpaw.mpi import world, rank # write a slice of NumPy array data = np.arange(10, dtype=float) sub = data[::2] if world.size > 1: comm = world.get_c_object() else: comm = None file = File('tmp.hdf5', 'w', comm=comm) dset = file.create_dataset('noncont', sub.shape, sub.dtype) if rank == 0: selection = 'all' else: selection = None dset.write(sub, selection) dset.close() file.close() # read data back file = File('tmp.hdf5', 'r', comm=comm) dset = file['noncont'] new_data = np.ndarray(dset.shape, dset.dtype, order='C') dset.read(new_data) assert ((new_data == sub).all)
import numpy as np import os from gpaw.io.hdf5_highlevel import File from gpaw.mpi import world, rank # write a slice of NumPy array data = np.arange(10, dtype=float) sub = data[::2] if world.size > 1: comm = world.get_c_object() else: comm = None file = File('tmp.hdf5', 'w', comm=comm) dset = file.create_dataset('noncont', sub.shape, sub.dtype) if rank == 0: selection = 'all' else: selection = None dset.write(sub, selection) dset.close() file.close() # read data back file = File('tmp.hdf5', 'r', comm=comm) dset = file['noncont'] new_data = np.ndarray(dset.shape, dset.dtype, order='C') dset.read(new_data) assert((new_data == sub).all)