Можно ли сделать с xarray следующее:
Мастер-процесс создает набор данных с размерами a = [a1, a2,...], b=[b1,b2, ...], c = [c1,c2,...]
Затем для каждой координаты (ключа) (a_i, b_j, c_k,...)
запускается дочерний процесс (возможно, запрос задания на совершенно другом компьютере), который вычисляет f(a_i, b_j, c_k, ...)
Функция f
возвращает DataArray
фиксированной формы, то есть с координатами x = [x1,x2,...], y=[y1, y2, ..], z = [z1, z2, ...]
.
Обратите внимание, что эта форма неизвестна априори !! Он гарантированно будет постоянным среди всех задач!
Каждый дочерний процесс должен сохранять (добавлять) свои выходные данные в файл dataset.nc
(параллельный ввод) с соответствующим ключом (a_i, b_j, c_k)
После того, как все дочерние процессы завершены, то есть, когда весь набор данных заполнен, главный процесс преобразует его в одну DataArray
форму, которая объединяет оба измерения (например, с осями a,b,c,...
и x,y,z,...
)
Примечание. По сути, это попытка реализовать абстрактный автоматический поиск в сетке с распараллеливанием.