Optimisation de code OCaml

Cette formation a été conçue par OCamlPro pour permettre aux développeurs OCaml de tirer la performance maximale des applications qu'ils écrivent. Basée sur l'implication directe de notre équipe dans le développement du compilateur OCaml, cette formation montre comment écrire le code pour qu'il soit optimisé au maximum, et comment utiliser au mieux toutes les optimisations fournies par le compilateur OCaml.

Programme de la formation

Base sur les performances des architectures moderne

  • Rapides bases d'assembleur (pour les exemples suivant)
  • Architecture: Hiérarchie de mémoire/cache, Out-of-order, Prédiction, Effet des cache d'instructions décodée
  • Conséquences: Interpreter les résultats des outils de sampling d'instruction (perf), Interpreter les microbench
  • Système d'exploitation et appels système: Ce qui est cher, Ce qui est bloquant

Runtime de OCaml

  • Cours assez exhaustif du fonctionnement du GC
  • Coût des différentes parties du GC: algorithmiques pire et moyen, effets inhabituels, Cas d'exemple d'effets inattendus
  • FFI (partie pertinente pour les perf): Allocations/invariants, Annotations [@...] / boxing, Racines

Compilateur OCaml

  • Architecture: Suivre les transformations des différentes constructions à travers les passes
  • Coût des constructions du langage
  • Tour guidé des optimisations
  • Différences avec les compilateur/runtime C-like

Outils

  • perf et outils dérivés
  • Faire correctement des benchmarks: Analyser quel type de performances est recherché (vitesse/latence (moyenne/pire) ... ), Analyser des statistiques de bench, Bench de non-régression
  • Valgrind/callgrind/cachegrind...
  • Le debugger gdb

Approches pour agir sur les performances

  • Utiliser les optimisations / choisir des structures de code adaptées: Contrôler les optimisations, Vérifier qu'elles s'appliquent
  • Traduire des parties en C-like: Analyser la pertinence, Utiliser efficacement la FFI
  • Trouver, reconnaître et corriger des anti pattern
  • Corriger des fuites mémoire et sur allocations: Réduire des lifetimes, Liste des types de fuites

Organiser l'optimisation d'un projet

  • Estimer quels sont les performances atteignable pour un programme: Segmenter le programme et séparer l'analyse, Comparer avec la réalité
  • Trouver ce qui a un sens à optimiser: Prioriser les choses les plus utiles, Quoi ne pas optimiser

Algo et structures de données pertinentes / non pertinentes en OCaml

Optimisation de code OCaml

Durée: 2 jours Prix: 1500 EUR HT/pers Pratique: 50%
Prérequis
  • OCaml
  • Computers
Public
  • Développeurs
Objectifs Pédagogiques
  • Base sur les performances des architectures moderne
  • Runtime de OCaml
  • Compilateur OCaml
  • Outils
  • Approches pour agir sur les performances
  • Organiser l'optimisation d'un projet
  • Algo et structures de données pertinentes / non pertinentes en OCaml

Pierre Chambart (OCaml)

Pierre est ingénieur R&D chez OCamlPro depuis 2013, après une thèse de doctorat en méthodes formelles et un post-doc sur la programmation web en OCaml. Pierre est membre de la coreteam du compilateur OCaml, spécialisé dans la génération de code optimisé. Pierre est aussi l'un des développeurs principaux de la blockchain Tezos en OCaml.

Vincent Laviron (OCaml)

Vincent est ingénieur R&D chez OCamlPro depuis 2015. Après avoir travaillé sur l'adaptation de techniques d'interprétation abstraite à OCaml, Vincent a rejoint l'équipe travaillant sur Flambda, le compilateur optimisant pour OCaml, et aujourd'hui membre de la coreteam du compilateur OCaml.

Évaluation des acquis

L'évaluation des acquis de la formation se fera en séance au travers d'ateliers, d'exercices et/ou de travaux pratiques. Dans le cas d'une formation officielle éditeur, veuillez nous consulter afin que nous vous fassions part des modalités d'évaluation.

A l'issue de la formation, vous sera transmis une évaluation à chaud de l'action de formation qui vous permettra de nous faire part de vos retours quant à votre expérience apprenant avec OCamlPro.

Prise en compte RQTH

Si vous êtes sujet à un handicap, prenez contact avec nos équipes pour que nous puissions définir ensemble comment nous pourrons aménager la session afin que vous puissiez vivre une expérience en formation inchangée.

Ressources pédagogiques

Les ressources pédagogiques sont produites par l'équipes OCamlPro en vue des formations. Les documents sont généralement en anglais, mais peuvent être traduits en français à la demande.

Financement en France

Nos formations ne sont pas éligibles au financement via OPCO (même si la prise en charge couvre la totalité du coût de la formation) en attendant la certification Qualiopi en cours. Non éligible au financement via CPF.

Formation en inter-entreprises

Les horaires pour nos formations inter-entreprises in-situ sont :

  • Début de la formation - 9h30
  • Pause déjeuner - 12h à 13h
  • Fin de la formation - 17h30