Software

Our research group is committed to developing, contributing to, and maintaining open-source software for scientific computing. In particular, we are highly dedicated to making contributions to packages within the Julia Language ecosystem, which serves as an excellent platform for implementing efficient numerical software. We are interested in a wide range of topics, including numerical optimization, numerical linear algebra, automatic differentiation, algebraic modeling platforms, and modeling tools for chemical and biological processes and energy systems. On this page, you will find a list of open-source development projects led by our research group.


MadNLP

MadNLP is a nonlinear programming solver based on the filter line-search interior point method (as in Ipopt) that can handle/exploit diverse classes of data structures, either on host or device memories. MadNLP shines when the solution of the problem can benefit from GPU acceleration or when the problem possesses a structure that can be exploited. The capabilities of MadNLP have been showcased for various energy infrastructure problems (static optimal power flow and stochastic optimal power flow) as well as model predictive control problems.

Learn more about MadNLP >>


ExaModels

ExaModels is an algebraic modeling and automatic differentiation tool in Julia Language, specialized for single instruction, multiple data (SIMD) abstraction of nonlinear programs (NLPs). SIMD abstraction allows for the preservation of the parallelizable structure within the model equations, facilitating efficient, parallel reverse-mode automatic differentiation on the GPU accelerators. The capabilities of ExaModels have been showcased in our paper and achieve significant speedup via the use of GPUs.

Learn more about ExaModels >>