TIMES.jl prototype

Dear all,

Together with other members of the TIMES community, I’ve been working on a small TIMES.jl prototype translating a small number of TIMES equations formulated in GAMS to Julia. Basically, this is a continuation of an earlier migration feasibility study. I have no previous experience with Julia/JuMP and would appreciate any feedback on the prototype with respect to performance, structure, etc.

Short note: you may find this post valuable when converting from GAMS to JuMP: JuMP, GAMS, and the IJKLM model | JuMP

Hi @olejandro, welcome to the forum :smile:

I won’t have time to review this before next week, but I’ll point you to:

Have you benchmarked the performance and solution quality? Does it find the same solutions? How long does it take?

I’ll note that a one-to-one transliteration of GAMS to JuMP is not going to be magically faster, an will probably be a bit slower. The question is whether that is worth the trade-off for going open-source.

In the longer-term, Julia offers a number of features that aren’t in GAMS that might permit a larger architectural re-design that can both simplify the code and lead to better performance.

Thanks @mtanneau @odow

Yes, the solution is the same for the small model this is based on. A larger TIMES model may lack some constraints or have some differences in constraints.

In the current version of the prototype, model generation is probably about 2 times slower compared to GAMS (which is already much faster compared to the first versions e.g. see discussions here). I already pre-calculate most of the equation/variable indices, but have not gotten rid of all the ifs in summation statements yet.