Does parfor inside lsqnonlin with UseParallel=True work properly?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Sunham Kim
el 3 de Oct. de 2023
Comentada: Sunham Kim
el 3 de Oct. de 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 comentarios
Respuesta aceptada
Walter Roberson
el 3 de Oct. de 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.
Más respuestas (1)
Bruno Luong
el 3 de Oct. de 2023
If your function use parfor internally then you should NOT set UseParallel to true.
Ver también
Categorías
Más información sobre Systems of Nonlinear Equations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!