Dear all,
first of all, I would like to thank you for your amazing work in the Orekit development and in its continuous improvement!
My team is investigating the possibility to use Orekit library for the implementation of trajectory optimization (TO) problems, that we are planning to solve via heuristic optimization.
We were recently conducting some performance tests on some pre-defined orbit propagation scenarios, to understand (have a rough idea) how long it could take the solution of hypothetical TO problems, where orbit propagation tasks may be run up to thousands of times until convergence.
According to preliminary results obtained so far (using openjdk-19), we fear that the time needed to solve typical TO problems of interest might take too long for us (speaking of several hours, up to half a day in worst case scenarios).
Therefore, we were wondering if there are any alternatives to make Orekit code running faster.
Of course, we are aware that there are several options that can be already addressed to have things running faster (besides the correct use/implementation of Orekit code, also the specific propagator and integrator used, their specific settings, the force models set in propagator, etc. - we are also working on this to improve the performances).
However, we were wondering if there is something more “drastic” we could consider to gather a significant improvement of the performances.
We recently came across the GraalVM JVM (GraalVM - Wikipedia) and, according to information available online about it, it “promises” to improve performances of Java code to levels kind of comparable to C++ compiled code.
Therefore the question is: could this be a viable solution? Could it work with Orekit, or there are any caveats that would prevent it to be a practicable solution?
Alternatively, do you have any suggestions you could provide us to improve Orekit (mainly orbit propagator) performances in terms of speed (computational time)?
Many thanks!