Skip to main content

José Santiago Rodriguez: Large-scale dynamic optimization using code generation and parallel computing

Time: Tue 2014-08-26 09.00

Location: Room 3721, Lindstedtsvägen 25, 7th floor, Department of mathematics, KTH

Opponent: Nguyen Minh Khoa

Supervisor: Johan Åkesson (Modelon AB, Lund), Toivo Henningsson, Michael Hanke

Export to calendar

Complex physical models are becoming increasingly used in industry for simulation and optimization. Modeling languages such as Modelica allow creating model libraries of physical components, which in turn can be used to compose system models of, e.g., vehicle systems, power plants and electronic systems. JModelica.org is an open source tool suite for Modelica. It includes a compiler for Modelica and for the language extension Optimica, which is used to formulate dynamic optimization problems based on Modelica models.

Direct collocation methods are used in JModelica.org to transcribe a dynamic optimization problem into a large-scale nonlinear program with sparse structure. This structure can be exploited for parallel solution of the linear KKT system solved in each step of an interior point method. Currently, the non-linear programming solvers available in JModelica.org do not support parallel algorithms for the solution of the structured problem.

The optimization platform in JModelica.org was modified to generate efficient C-code that could be linked with an external non-linear programming solver with parallel computation capability. CasADi, JMod- elica.org’s third party software, is used to generate C-code from the model equations, after collocation has been applied. Speed up factors over 20 were obtained for the compilation of the generated files, and the problem of non-compilable files was overcome.

A C++ interface was implemented to link the generated files with the parallel framework developed in [2].A large-scale trajectory optimization problem, such as the start-up optimization of a power cycle model, was used to evaluate the performance of the interface and the parallel algorithm. Speedup of over 2.5 were obtained with 4 processors in a shared memory architecture.