Я работаю над методом решетчатой болтцман, и я написали код matlab. Я хотел бы распараллелить некоторые части кода, но я новичок в этом, поэтому я был бы признателен за вашу помощь. Я хотел бы знать, если это возможно, использовать parfor для этой части (оператор столкновений):использование parfor в matlab для кода решетки boltszmann
for i=1:lx
for j=1:ly
fork=1:9
f(k,i,j)=f(k,i,j) .* (1 - omega) + omega .* feq(k,i,j);
end
end
end
Я пытался заменить удаленные от центра цикл с parfor, но код, кажется медленнее.
любые предложения?
заранее спасибо
Какова ценность 'lx' и' ly'? Я мог представить, что parfor будет на самом деле медленнее из-за накладных расходов, когда цикл for не является таким большим – Michiel
lx и ly в коде установлены на 400. Я пытался использовать более высокие значения, но время итерации возрастает все больше и больше. – andylbm
Я только что протестировал его на 1000x1000, а 'parfor' все еще медленнее, но относительно приближается к' for'. Однако я заметил, что 'parfor' полностью наводняет мою память этим циклом, вероятно, потому, что он пропускает большие матрицы вокруг. Может, в этом и проблема ?! – Michiel