Tablouri multidimensionale

Programare paralelă cu Dask în Python

James Fulton

Climate Informatics Researcher

Tipuri de date multidimensionale

  • Prognoze/observații meteorologice
  • Scanări biomedicale 3D
  • Imagini satelitare
  • Date din alte instrumente științifice
Programare paralelă cu Dask în Python

HDF5

Sigla HDF

  • Format Ierarhic de Date
  • Stocat în format ierarhic – similar cu (sub)directoare
Programare paralelă cu Dask în Python

Cum arată un fișier HDF5?

Un singur folder

Programare paralelă cu Dask în Python

Cum arată un fișier HDF5?

Un folder care conține patru seturi de date și metadate.

Programare paralelă cu Dask în Python

Navigarea fișierelor HDF5 cu h5py

import h5py

# Open the HDF5 file
file = h5py.File('data.hdf5')


# Print the available datasets inside the file print(file.keys())
<KeysViewHDF5 ['A', 'B', 'C', 'D']>
Programare paralelă cu Dask în Python

Navigarea fișierelor HDF5 cu h5py

import h5py

# Open the HDF5 file
file = h5py.File('data.hdf5')


# Select dataset A dataset_a = file['/A']
print(dataset_a)
<HDF5 dataset "A": shape (10000, 100, 100), type "<f4">
Programare paralelă cu Dask în Python

Încărcare din HDF5

import dask.array as da

# Load dataset into a Dask array a = da.from_array(dataset_a, chunks=(100, 20, 20))
print(a)
dask.array<array, shape=(10000, 100, 100), dtype=float32, chunksize=(100, 20, 20),
    chunktype=numpy.ndarray>
Programare paralelă cu Dask în Python

Zarr

  • Set de date ierarhic, similar cu HDF5
  • Conceput pentru a fi fragmentat (chunked)
  • Potrivit pentru streaming în servicii cloud precum AWS, Google Cloud etc.
  • Structură de fișiere navigabilă
Programare paralelă cu Dask în Python

Încărcare din Zarr

import dask.array as da

a = da.from_zarr("dataset.zarr", component="A")


print(a)
dask.array<from-zarr, shape=(10000, 100, 100), dtype=float32,
    chunksize=(100, 20, 20), chunktype=numpy.ndarray>
Programare paralelă cu Dask în Python

Să exersăm!

Programare paralelă cu Dask în Python

Preparing Video For Download...