Skip to content

Migrate core-midpoint-trapeze benchmark to new architecture #140

@ocots

Description

@ocots

Contexte

Les étudiants ont réalisé un excellent travail dans la PR #116 pour comparer les méthodes de discrétisation midpoint vs trapeze avec les solveurs Ipopt et MadNLP sur ExaModels. Cependant, leur travail est basé sur l'ancienne architecture de documentation qui a depuis été refactorisée.

Cette issue vise à migrer leur travail vers la branche main en utilisant la nouvelle architecture basée sur le système de registre.

Objectif

Intégrer le benchmark core-midpoint-trapeze dans la documentation en :

  • Préservant tous les résultats de benchmark des étudiants
  • Adaptant le code à la nouvelle architecture (registre de profils, nouvelle syntaxe de templates)
  • Maintenant la cohérence avec les autres benchmarks existants

Travail des étudiants à migrer

Depuis la branche 115-general-add-run-bench-core-midpoint-4-combos-exa :

À copier tel quel (61 fichiers) :

  • Script de benchmark : benchmarks/core-midpoint-trapeze.jl
  • Résultats complets : docs/src/assets/benchmarks/core-midpoint-trapeze/ (60 fichiers : JSON, TOML, 28 SVG, 28 PDF)

⚙️ À réécrire avec nouvelle architecture :

  • Ajout dans benchmarks/benchmarks-config.json
  • Nouveau profil dans docs/src/docutils/Handlers/DefaultProfiles.jl
  • Template docs/src/core/midpoint-trapeze.md.template (nouvelle syntaxe)
  • Entrées dans docs/make.jl (processing + menu)

Plan d'implémentation

Phase 1 : Migration des fichiers

  • Créer branche feature/core-midpoint-trapeze depuis main
  • Copier script benchmark et résultats depuis branche étudiante
  • Ajouter entrée dans benchmarks-config.json

Phase 2 : Intégration documentation

  • Ajouter profil midpoint_trapeze_cpu dans DefaultProfiles.jl
  • Créer template avec nouvelle syntaxe des blocs
  • Mettre à jour docs/make.jl (processing + menu)

Phase 3 : Vérification

  • Build documentation localement
  • Vérifier génération des profils de performance
  • Vérifier affichage des tableaux de résultats
  • Valider navigation et rendu

Phase 4 : Finalisation

  • Commit avec message descriptif
  • Créer PR liée à cette issue
  • Review et merge

Détails techniques

Profil de performance : Utilise [:disc_method, :solver] au lieu de [:model, :solver] pour comparer les 4 combinaisons :

  1. (trapeze, ipopt)
  2. (trapeze, madnlp)
  3. (midpoint, ipopt)
  4. (midpoint, madnlp)

Problèmes testés : 14 problèmes de contrôle optimal (beam, chain, double_oscillator, ducted_fan, electric_vehicle, glider, insurance, jackson, robbins, robot, rocket, space_shuttle, steering, vanderpol)

Configuration : Grid size 200, tolérance 1e-8, ExaModels uniquement

Références

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions