Replies: 23 comments 27 replies
-
You're gonna have a much easier time playing with the AD backend once ADNLPModels switches to DifferentiationInterface. The work on that hasn't started, but DI is nearly ready for it. |
Beta Was this translation helpful? Give feedback.
-
@PierreMartinon @jbcaillau @frapac @joseph-gergaud @0Yassine0 We should make a point about benchmarking. Currently, we have some problems defined here:
We should take some time to decide what to do about a repo of problems for benchmarking. Remark. The package |
Beta Was this translation helpful? Give feedback.
-
Réunion mercredi 17/07 à 11:00. Ordre du jour. J'aimerais que l'on discute rapidement des points suivants : Point 1
Point 2
|
Beta Was this translation helpful? Give feedback.
-
Sur le point 1On pourrait simplement faire un repo (nom à déterminer) :
qui contiendrait une liste de problèmes modélisés :
Puis pour récupérer un problème, par exemple celui de using OptimalControlBenchmark
ocp = Goddard() # ou Goddard(model=:OptimalControl), Goddard(model=:JuMP)
Remarque. Intégrons-nous la modélisation |
Beta Was this translation helpful? Give feedback.
-
Sur le point 2Un effort est encore à faire sur le calcul des dérivées. Jacobienne et hessienne du lagrangien. Des efforts ont été fait du côté de
Remarque. Il serait intéressant suite à ces études :
|
Beta Was this translation helpful? Give feedback.
-
Et pour info, |
Beta Was this translation helpful? Give feedback.
-
Pour compléter le message d' @ocots : nous devons absolument améliorer drastiquement les performances en utilisant deux avantages inhérents à la discrétisation directe d'un problème de contrôle :
Un problème d'opti typique issu de ce type de discrétisation a la forme suivante : où les inconnues sont On souhaite que ces fonctions puissent être du code Julia arbitraire, mais dans la plupart des cas il s'agit d'expressions algébriques (ou une classe à peine plus grande : |
Beta Was this translation helpful? Give feedback.
-
Hello a tous, Je pense que nous pouvons en effet ameliorer le calcul des contraintes (et par suite des derivees). Pour le parallelisme, nous l'avions effectivement fait dans bocop, avec le calcul de toutes les dynamiques en une seule fois par exemple, parallelise de facon elementaire en openMP. Ceci pourrait sans doute etre etendu aux contraintes. A tester sur trapezes notamment qui s'y prete bien. J'avais commence, mais coince sur un probleme de diff auto en essayant de remplir le vecteur de dynamiques, on pourra regler ca ;-) En passant, il devrait etre possible de faire des benchmarks sur l'ordonnancement des variables / contraintes, le code est relativement modulaire de ce point de vue. Le script de benchmark comporte une dizaine de problemes et devrait commencer a etre exploitable. A tout a l'heure ! |
Beta Was this translation helpful? Give feedback.
-
https://github.com/JuliaLinearAlgebra/BlockBandedMatrices.jl |
Beta Was this translation helpful? Give feedback.
-
Exemples de préparation pour l'autodiff : |
Beta Was this translation helpful? Give feedback.
-
Tutorial for ManualNLPModel: |
Beta Was this translation helpful? Give feedback.
-
@PierreMartinon https://github.com/amontoison/Workshop-GERAD |
Beta Was this translation helpful? Give feedback.
-
@PierreMartinon @ocots @jbcaillau @0Yassine0 |
Beta Was this translation helpful? Give feedback.
-
Pour reboucler sur notre discussion, Casadi s'est posé les mêmes questions sur comment gérer les Jacobiens par blocks dans la différentiation automatique. Voir notamment : |
Beta Was this translation helpful? Give feedback.
-
Apparemment la coloration symmétrique des matrices Hessiennes est un game-changer, on a un speedup x100 sur certaines instances du benchmark ici : JuliaSmoothOptimizers/ADNLPModels.jl#271 (comment) |
Beta Was this translation helpful? Give feedback.
-
I released a new version of
The release v1.6.4 of |
Beta Was this translation helpful? Give feedback.
-
@0Yassine0 if sth is available, can you please send a pointer towards the current synthesis of the comparisons between JuMP and OptimalControl? |
Beta Was this translation helpful? Give feedback.
-
@frapac am I missing sth obvious here to reproduce the examples in the doc? exanauts/ExaModels.jl#104 @0Yassine0 have you had a look at these ExaModels examples? |
Beta Was this translation helpful? Give feedback.
-
@rveltz AFAIR you've made some tests on GPUs on Inria cluster (nef?) Can you please point me towards a worked out example / framework that I could start from to do some benchmarking? |
Beta Was this translation helpful? Give feedback.
-
HiI am away till next week, i ll send you a link then. If it is more pressing contact Aurora, I got the trick from her.Romain
-------- Message d'origine --------De : Jean-Baptiste Caillau ***@***.***> Date : 06/08/2024 09:49 (GMT-07:00) À : "control-toolbox/control-toolbox.github.io" ***@***.***> Cc : Romain Veltz ***@***.***>, Mention ***@***.***> Objet : Re: [control-toolbox/control-toolbox.github.io] Benchmarking
(Discussion #56)
@rveltz AFAIR you've made some tests on GPUs on Inria cluster (nef?) Can you please point me towards a worked out example / framework that I could start from to do some benchmarking?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
@jbcaillau @joseph-gergaud @PierreMartinon @frapac @tmigot @gdalle @amontoison @0Yassine0
I just want to tell to everyone that we are doing some benchmarking with @frapac and @0Yassine0. The starting point is this discussion: https://github.com/orgs/control-toolbox/discussions/47#discussioncomment-8554416
The idea is to compare some solvers first on the Goddard problem. Then, on the optimal control problems of COPSBenchmark.jl.
We want to play on the modeler (JuMP, ADNLPModel), the NLP solver (ipot, knitro, madlnp), the AD backend, the linear solver... We want to compare them in terms of sparsity, times...
Feel free to have a look at the repo COTS that will be forked into our
control-toolbox
organisation at the end and will be of course renamed :-)Beta Was this translation helpful? Give feedback.
All reactions