Does parfor inside lsqnonlin with UseParallel=True work properly?
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Sunham Kim
il 3 Ott 2023
Commentato: Sunham Kim
il 3 Ott 2023
Hello,
I'm solving a system of 150 nonlinear equations using lsqnonlin. The system is an outcome of a bulky (parallelized) optimization, which involves large vectors. (Large = 1 mil. elements) I'm wondering if my parfor loops in the optimization work properly with -UseParallel- enabled lsqnonlin.
I know parfor cannot be nested in another parallel structure. According to the lsqnonlin documentation, -UseParallel- governs the gradient calculation, and turning it on does not mean the solver plays with multiple guesses simultaneously, as multistart does. I guess then my parfor should work well, but not sure. I can play with a toy code of course, but I want to get a clear-cut answer.
Thanks!
0 Commenti
Risposta accettata
Walter Roberson
il 3 Ott 2023
With that option the function will be invoked with different parameters in order to estimate the gradient. I would expect that for N parameters either N or N+1 function calls would be made within a parfor or similar. If the function uses parfor then the function's parfor will be done in serial.
Più risposte (1)
Bruno Luong
il 3 Ott 2023
If your function use parfor internally then you should NOT set UseParallel to true.
Vedere anche
Categorie
Scopri di più su Systems of Nonlinear Equations in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!