Programmation efficace en Julia

Informations

Date et Lieu :
Durée :
Tarifs :
2000 € HT
-40% pour les académiques(*)
-50% 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 :
  • Connaissance d'un autre langage de programmation
  • expérience minimale du développement 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, gestion des dépendances
    • Qualité logicielle : 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)
  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

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 5 demi-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. Dans le cadre des sessions sous forme de cours interactifs à distance, un environnement numérique distant dédié est mis à disposition de chaque stagiaire. Pour les sessions présentielles, un ordinateur portable pré-installé est mis à disposition de chaque stagiaire pour la durée 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