Предположим, что у нас есть этот код в MATLAB:
parpool('local',2) % Create a parallel pool
W = ones(6,6);
W = distributed(W); % Distribute to the workers
spmd
T = W*2; % Calculation performed on workers, in parallel
% T and W are both codistributed arrays here
end
T % View results in client.
whos % T and W are both distributed arrays here
delete(gcp) % Stop pool
Я читал в документации, что разница между обычными массивами и массивами распределения заключается в следующем: когда мы используем распределенные массивы, эти массивы напрямую отправляются рабочим, а на клиентах нет никакого массива. Значит, у нас нет доступа к этим массивам в клиенте? Только ли это несоответствие?
Какая разница в структуре и выводе кода, если убрать
W = distributed(W);
строку? Какова цель использования распределенного массива?В чем разница между
distributed
иcodistributed
. Как я читал в документации, мы можем использовать толькоcodistributed
в блокеspmd
. Это тура?