Enviar datos a trabajadores

Estoy tratando de crear una pieza de código paralelo para acelerar el procesamiento de una matriz muy grande (un par de cientos de millones de filas). Para paralelizar esto, corté mis datos en 8 piezas (mi número de núcleos) e intenté enviar a cada trabajador 1 pieza. Sin embargo, mirando mi uso de RAM, parece que cada pieza se envía a cada trabajador, multiplicando efectivamente mi uso de RAM por 8. Un ejemplo mínimo de trabajo:

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

Ahora, cuando envío estos datos a los trabajadores que usanparfor parece enviar la celda completa en lugar de solo la pieza deseada:

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

De hecho, uso alguna función dentro delparfor bucle, pero esto ilustra el caso. ¿MATLAB realmente envía la celda completa?data a cada trabajador, y si es así, ¿cómo hacer que envíe solo la pieza deseada?

Respuestas a la pregunta(3)

Su respuesta a la pregunta