Отправка данных работникам

Я пытаюсь создать кусок параллельного кода, чтобы ускорить обработку очень большого (пара сотен миллионов строк) массивов. Чтобы распараллелить это, я разбил свои данные на 8 (количество ядер) частей и попытался отправить каждому работнику по 1 части. Однако, глядя на использование моей оперативной памяти, кажется, что каждая часть отправляется каждому работнику, что эффективно увеличивает мое использование оперативной памяти на 8. Минимальный рабочий пример:

A = 1:16;
for ii = 1:8
    data{ii} = A(2*ii-1:2*ii);
end

Теперь, когда я отправляю эти данные работникам, использующимparfor кажется, что отправляется полная ячейка, а не только нужный кусок:

output = cell(1,8);
parfor ii = 1:8
    output{ii} = data{ii};
end

Я на самом деле использую какую-то функцию вparfor цикл, но это иллюстрирует случай. Действительно ли MATLAB отправляет полную ячейкуdata каждому работнику, и если да, то как заставить его отправлять только нужный кусок?

Ответы на вопрос(3)

Ваш ответ на вопрос