Заполните набор данных параллельно - PullRequest
0 голосов
/ 22 марта 2019

Можно ли сделать с 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,...)

Примечание. По сути, это попытка реализовать абстрактный автоматический поиск в сетке с распараллеливанием.

...