В настоящее время я пытаюсь распараллелить свой сценарий для получения преимуществ во время выполнения.
Мой код включает в себя сегмент, который имеет следующую форму, если он представлен очень абстрактно:
x=zeros(5,1);
y{1}=[1; 3; 5];
y{2}=[2; 4];
parfor i=1:2
x(y{i})= func(y{i});
end
Итак, я хочу заполнить индексы переменной x
не последовательно, а параллельно. Это дает мне, однако, следующую ошибку:
The variable x in a parfor cannot be classified.
Индексы, которые должны быть назначены, всегда не пересекаются (как, например, [1; 3; 5]
и [2; 4]
), т. Е. Во время параллельного прогона перезаписи записей не произойдет, что в противном случае поставило бы под угрозу непоследовательную обработку.
Возможно, есть ли другой способ переформулировать эту функциональность?