Class with static variables in parallel global optimization algorithm
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hello,
I have a global optimization program dealing with large matrices (several gigabytes of data), so in order to save memory, a class with static variables was implemented similar to the implementation in Static Data, and then one object of this class is created, initialized and passed as an argument to a function handle acting as the objective function of global multistage optimization algorithm (Particle Swarm + Pattern Search). When parallelization in optimoptions is true:
optimoptions( ...
'UseParallel', true);
The optimization always yields false results, but when parallelization is turned off, it works correctly.
Thanks in advance!
0 comentarios
Respuestas (2)
Walter Roberson
el 14 de Feb. de 2019
Look again at the link you provided . Notice the point about static data not being saved with an object . The process of sending variables to parallel workers involves save and load.
3 comentarios
Walter Roberson
el 21 de Mzo. de 2019
However, that saves the matrix once per worker, not "only 1 time in the memory". If you strictly need "only 1 time in the memory" then you should look in the File Exchange for https://www.mathworks.com/matlabcentral/fileexchange/28572-sharedmatrix which uses operating system shared memory.
Ver también
Categorías
Más información sobre Surrogate Optimization 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!