PARFOR slicing of user-defined objects
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
I have a user-defined class with its own overloaded subsref and subsasgn methods to define indexing expressions like A(:,:,i). My question is, how would parfor treat a loop like the following with respect to slicing,
parfor i=1:N
x(:,i)=some_function( A(:,:,i) );
end
Will my object A be sliced as a normal numeric array would, and if so how is my overloaded subsref/subsasgn method involved in this process? Will parfor execute my subsref method when it tries to extract a chunk A(:,:,m:n) to send to the workers?
0 Commenti
Risposta accettata
Edric Ellis
il 4 Mar 2019
The parfor machinery decides whether a variable reference is "sliced" or not by examining the form of indexing used, paying no regard to the type of the variable. So, in your example, A will indeed be sliced. Your indexing overloads will be called on the client as part of the slicing operation, and also on the workers. The parfor machinery will send contiguous blocks of A of size MxNxp to the workers in groups known as "intervals" (with an interval size p), and then on the workers, these blocks will be further indexed to create the MxNx1 slices.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Parallel for-Loops (parfor) in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!