Ограничения к использованию LocalCluster? Сбой сохранения 50 ГБ данных в 90 ГБ памяти
Информация о системе: CentOS, python 3.5.2, 64 ядра, 96 ГБ ОЗУ
Поэтому я пытаюсь загрузить большой массив (50 ГБ) из файла hdf в оперативную память (96 ГБ). Каждый блок примерно на 1,5 ГБ меньше, чем предел рабочей памяти. Кажется, это никогда не завершается, иногда происходит сбой или перезапуск рабочих, также я не вижу увеличения использования памяти на веб-панели управления или выполнения задач.
Должно ли это работать или я что-то упускаю здесь очевидное?
import dask.array as da
import h5py
from dask.distributed import LocalCluster, Client
from matplotlib import pyplot as plt
lc = LocalCluster(n_workers=64)
c = Client(lc)
f = h5py.File('50GB.h5', 'r')
data = f['data']
# data.shape = 2000000, 1000
x = da.from_array(data, chunks=(2000000, 100))
x = c.persist(x)
1 ответ
Это было недоразумение о том, как куски и рабочие взаимодействуют. Конкретно меняя способ LocalCluster
инициализируется устраняет проблему, как описано.
lc = LocalCluster(n_workers=1) # This way 1 works has 90GB of mem so can be persisted