Programmation efficace en Julia

Informations

Date et Lieu :
Durée :
3 jours (21 h)
Tarifs :
2550 € HT
-30% pour les académiques(*)
-40% pour les doctorants(*)
(*) dans la limite des places ouvertes à ces tarifs
Objectifs :
Maîtriser les principes fondamentaux du langage Julia : comprendre la syntaxe et le style de programmation, les types et fonctions Julia. Comprendre le fonctionnement du multiple dispatch et les principes de la compilation à la volée. Acquérir un processus de développement efficace en Julia. Savoir structurer son code de façon modulaire. Utiliser les tests. Savoir créer et maintenir un paquet Julia.
Public cible :
Développeur de codes de calcul scientifique et technique désireux d'acquérir des bases solides en programmation Julia
Prérequis :
Expérience minimale en programmation informatique

Programme détaillé

  1. Premiers pas avec Julia : commencer sur de bonnes bases

    • Environnement de développement et workflow Julia : installation ; éditeurs, IDEs, REPL ; Revise, ReTest
    • Notions fondamentales en Julia : variables et portée ; fonctions et méthodes ; types simples, composites et paramétrés ; compilation JAoT ; multiple dispatch
    • Structuration des codes Julia : modules, paquets, dépendances, tests, documentation
  2. D.R.Y. Julia : écrire du code concis, performant et réutilisable en Julia

    • Hiérarchie de types, fonctions d’ordre supérieur (map, reduce), générateurs, itérateurs, tuples
    • Multiple dispatch : liens et différences avec le paradigme objet (surcharge d’opérateurs ou héritage)
    • Génération de code et métaprogrammation : expressions et évaluation, macros, programmation étagée (fonctions générées)
  3. Performance en Julia : écrire des codes Julia efficaces

    • Mesure et analyse de la performance d’un code Julia
    • Correction des instabilités de type
    • Parallélisme distribué et partagé
    • Vectorisation en Julia (SIMD)
    • Programmation sur GPU en Julia
  4. Tour d’horizon des principales bibliothèques Julia

    • Bibliothèque standard, LinearAlgebra
    • Outils de visualisation (Plots, Makie)
    • LightGraphs.jl, JuMP.jl, Flux.jl…

Description

Exemple de TP : moteur de collisions

« Looks like Python, feels like Lisp, runs like Fortran »

Julia (Julialang) est un puissant langage de programmation développé au MIT et spécialement adapté aux domaines scientifique et technique. Ce langage permet de développer efficacement des logiciels élégants et performants.

Au cours de ces 3 journées, nous introduirons les éléments fondamentaux du langage (REPL, fonctions, variables, JAoT…) et nous proposerons une organisation de développement (workflow) qui soit à la fois efficace et bien adaptée à la réalisation de projets importants.

Cette formation abordera de manière approfondie les types Julia, le multiple dispatch, les traits, la mesure et l’optimisation des performance, le calcul parallèle en Julia (CPU et GPU) ainsi qu’un tour d’horizon de l’écosystème Julia.

La formation inclut une large part de travaux pratiques. Des machines sont mises à disposition des stagiaires. Il est possible d’utiliser un portable personnel dans la mesure où celui-ci intègre les prérequis de la formation.

Formulaire de pré-inscription

Les champs marqués d'une astérisque (*) sont obligatoires Vie privée
Indiquez ici toutes les informations qui vous semblent utiles :
  • disponibilités pour être re-contacté.e,
  • souhait d'utiliser un ordinateur portable personnel,
  • demande de tarif particulier (doctorant ou personnel académique),
  • régime alimentaire particulier,
  • problème d'accessibilité,
  • ...
Annuler