CATALOGUE Formations 2018 - La performance des logiciels

La page est créée Emma Jacquot
 
CONTINUER À LIRE
CATALOGUE Formations 2018 - La performance des logiciels
CATALOGUE
  Formations 2018

                                            La performance des logiciels

Introduction et détails de nos formations
CATALOGUE Formations 2018 - La performance des logiciels
CATALOGUE Formations 2018 - La performance des logiciels
FORMATIONS
Vue d’ensemble
NUMSCALE propose une                NUMSCALE, participant de
variété de formations sur           manière active à l’évolution du
différents thèmes pour               langage C++ auprès du comité de
transférer son expertise            normalisation ISO, impliquée
technique aux équipes de            entre autre dans l’élaboration des
développement logiciel sur tous     nouveaux standards sortis en
les aspects du parallélisme et      2011 et 2014, propose en
de la vectorisation.                particulier des formations de
                                    pointe autour de ce langage,
                                    permettant de maîtriser des
Le programme de formation de        concepts avancés du langage.
NUMSCALE comprend ainsi des
formations sur les bonnes           Les formations se veulent
pratiques pour la performance, le   interactives et basées sur la
parallélisme et les différents      participation des apprenants. La
mécanismes des nouvelles            manipulation du logiciel est          Formations C++
architectures de calculs, en        prépondérante. Ainsi, chaque
particulier pour le HPC (High       concept sera immédiatement suivi
Performance Computing).             d'une application sur des exemples    Formations C
Le calcul numérique et              de complexités croissantes
scientifique est également          permettant d'acquérir puis de         Formations HPC
abordé, le tout autour des
                                    maîtriser chacun d'entre eux. Des
langages C++, C.
                                    exercices plus complets seront        Formations GPU
                                    aussi proposés afin de compléter
                                    l'apprentissage et d'échanger entre
                                    participants et formateurs.
CATALOGUE Formations 2018 - La performance des logiciels
Les offres de formations
langages C++/C.
CATALOGUE Formations 2018 - La performance des logiciels
FORMATION C++

Les bases du C++
Programme :
I.    Introduction
        Historique du langage
        Pourquoi C++ ?
        L’héritage du C
        Normes et évolutions                         Objectif pédagogique :

II.   Structures de base d’un programme C++          Le C++ s’impose comme un langage de
        Types et variables                           prédilection pour le développement d’applications
        Structures de contrôle                       critiques. Il s’agit d’un langage riche dont la prise
        Fonctions et procédures                      en main peut s’avérer complexe.
        Processus de compilation
                                                     Cette formation a pour objectif de familiariser les
III. Aspect impératif                                apprenants avec C++ en leur fournissant des
        Définir une fonction                         bases saines et solides reposant sur les dernières
        Paramètres, arguments et valeurs de retour   normes du langage (C++14 et C++17).
        Inférence de type
        Gestion des erreurs
                                                     Bénéfices attendus :
IV.   Entrées/sorties
        Notions de flux                              Maîtriser les bases de C++14, savoir développer
        Entrées et sorties standards                 une application complète en C++ et se familiariser
        Fichiers textes et binaires                  avec ses multiples paradigmes.

V.    La bibliothèque standard
        Conteneurs                                   Public :
        Algorithme
        Fonctions mathématiques                      Cette formation s’adresse à des développeurs qui
        Dates et heures                              désirent s’initier au langage C++ ou migrer de C à
        Expressions régulières                       C++.

VI. Programmation orientée objets
        Principes généraux
        Notion d’interface
        Héritage
        Principes de substitution de Liskov                     Durée de la formation : 3 jours

VII. Gestion des ressources systèmes
        Principe de la RAII
        Sémantique de valeur, sémantique d’entité
        Pointeurs à sémantique riche

VIII. Programmation générique
        Fonctions génériques
        Structures génériques
CATALOGUE Formations 2018 - La performance des logiciels
FORMATION C++

       Templates C++ :
       méta-programmation et
       techniques avancées
      Programme                           :
I.    Introduction                                          Objectif pédagogique :
        Principes généraux
        Classes et fonctions template                       La programmation par templates en C++ est un
        Paramètres template : types, valeurs et templates   ensemble de techniques avancées permettant
        Templates et édition de liens                       d’utiliser le compilateur pour automatiser la
        Outils et bibliothèques                             génération de codes complexes.

II. Techniques de base                                      Cette formation a pour objectif de familiariser
        Instanciation, typage et validation                 l’apprenant avec les techniques de base de ce type
        Résolution de nom et désambiguïsation               de programmations.
        Spécialisation et surcharge

III. Conception avec templates                              Bénéfices attendus :
        Calculs à la compilation
        Méta-fonctions et structures de données             Connaître les mécanismes avancés de la
        Tuples et algorithmes                               programmation générique et générative en C++.

IV.   Arbres et expression templates
        Principes généraux                                  Public :
        Rappels sur les ASTs
        Introduction à Boost.Proto                          Cette formation s'adresse à des développeurs
                                                            expérimentés en C++ qui souhaitent approfondir
                                                            leurs compétences sur cet aspect du langage.

                                                                       Durée de la formation : 3 jours
CATALOGUE Formations 2018 - La performance des logiciels
FORMATION C++

     Les bonnes pratiques
     du C++ pour la
     performance
     Programme :
I. Introduction                                   Objectif pédagogique :
       Rappel de C++
       Le C++ peut-il être performant ?           Le C++ s’impose comme un langage de prédilection
       Historique du langage                      pour le développement d’applications critiques. Il
       Pourquoi C++ ?                             s’agit d’un langage riche dont la prise en main peut
                                                  s’avérer complexe.
II. Notions de base
       Valeurs, références et pointeurs           Cette formation a pour objectif de fournir aux
       Optimisation et élision des copies         apprenants les réflexes permettant de spécifier et de
       Gestion de la durée de vie des variables   développer des composants logiciels performants en
                                                  C++.
III. Gestion des ressources
       Principes de la RAII                       La formation se basera sur les dernières normes du
       Pointeurs à sémantique riche               langages C++ (C++14 et C++17).
       Gestion des temporaires

IV. Algorithmes et conteneurs                     Bénéfices attendus :
       Performance des algorithmes standards
       Customisation des allocations mémoires     Connaître et savoir adapter les éléments
       Customisation du parcours des données      fondamentaux du C++ afin de garantir les
       Cache, alignement et mémoire virtuelle     performances d’un composant logiciel.

V.   Polymorphisme et performance
       Principe des Polymorphismes                Public :
       Performance du Polymorphisme dynamique
       Le Pattern NVI                             Cette formation s’adresse à des développeurs C++
       Polymorphisme statique vs Polymorphisme    pour lesquels les critères de performance sont
       dynamique                                  critiques.

VI. Le parallélisme en C++
       Principes généraux
       OpenMP                                                Durée de la formation : 3 jours
       bSIMD
CATALOGUE Formations 2018 - La performance des logiciels
FORMATION C++

        C++14 et au-delà :
        évolution du langage et
        des bonnes pratiques
        Programme :

I. Simplicité                                              Objectif pédagogique :
       Déduction automatique : auto, decltype, trailing
       return type                                         Le C++ est un langage vivant soumis à de
       Boucles généralisées                                nombreuses évolutions régulières. Cette formation a
       Fonctions Lambdas                                   pour objectif d’introduire les changements
       Généricité appliquée: template alias, générique     fondamentaux issus de la norme 2014 afin que les
       variadique                                          apprenants puissent maîtriser et intégrer dans leur
       Autres éléments de syntaxes simplifiées             pratique de développement les nouveaux idiomes
                                                           qui en découlent.
II. Sûreté
       La RAII et ses applications : gestion avancée des
       ressources                                          Bénéfices attendus :
       Pointeur à sémantique forte et sémantique faible
       Pourquoi bannir new ?                               Maîtriser les nouveaux éléments du langage C++14.
       Conteneurs et algorithmes : nouveautés et           Anticiper et planifier les changements à apporter
       changements fondamentaux                            dans un code Legacy.

III. Performances
       Notions de transférabilité et optimisation des      Public :
       copies :
       Les r-value references                              Cette formation s'adresse à des ingénieurs,
       Polymorphisme Statique vs Polymorphisme             techniciens, scientifiques avec des connaissances
       Dynamique                                           en C++ de niveau intermédiaire.
       Le multi-threading via std ::thread
       Parallélisation via Future

                                                             Durée de la formation : 3 jours
       Les apprenants pourront mettre en pratique ces
       éléments sur leur propre base de code.
       La formation se terminera sur un point prospectif
       en regardant les nouveautés déjà présentes
       dans C++ 17.
CATALOGUE Formations 2018 - La performance des logiciels
FORMATION C++

Design Pattern
Programme                           :
I.   Introduction
       Pourquoi le design pattern ?
       Principes généraux de la programmation
       orientée objets
       Méthodologie SOLID
       Application vs bibliothèque
                                                Objectif pédagogique :
II. Patterns de création
       Factory & Abstract factory               Cette formation a pour objectif de familiariser
       Composite                                l’apprenant aux différents patrons de conception et
       Decorator                                d’apprendre à structurer l’ensemble de l’architecture
       Proxy                                    du programme afin de respecter les bonnes pratiques
                                                dictées par SOLID.
III. Patterns comportementaux
       Visitor                                  Cette formation est importante pour un apprenant
       Observer                                 désirant éviter toute erreur de conception dès le
       Entity/Component/System                  départ permettant de produire un code extensible et
       State/Strategy                           testable.

IV. Anti-pattern
       Singleton                                Bénéfices attendus :
       Blob
       God Object                               Se familiariser et maîtriser les bonnes pratiques de la
                                                programmation orientée objet en sachant
                                                reconnaître, choisir et implémenter des patrons de
                                                conception adaptés aux besoins.

                                                Public :

                                                Cette formation s'adresse à des développeurs
                                                familiers d’un langage orienté objets.

                                                           Durée de la formation : 3 jours
CATALOGUE Formations 2018 - La performance des logiciels
FORMATION C

Les bases du C
 Programme                              :
I.    Introduction
        Historique du langage
        Pourquoi C ?
        Normes et évolutions
        Les principaux compilateurs
        Unités de compilations
        Makefiles                                       Objectif pédagogique :

II.   Présentation générale du C                        Le C s’impose comme un langage de prédilection
                                                        pour le développement d’applications critiques et
        Structure générale d’un programme
                                                        performantes. Il s’agit d’un langage très utilisé
        Structures de contrôles
                                                        dans tous les secteurs et dans les couches
        Variables et types de bases
                                                        basses.
        Fonctions et procédures
        Les entrées/sorties
                                                        Cette formation a pour objectif de familiariser les
                                                        apprenants avec le langage C en leur fournissant
III. Présentation des structures de contrôles           des bases saines et solides.
        Structuration en bloc et portée des variables
        Bloc conditionnel if
        Bloc conditionnel switch                        Bénéfices attendus :
        Les boucles for/while/do-while
        Les instructions break/continue                 Maîtriser les bases du C, savoir développer une
                                                        application complète en C et se familiariser avec
IV.   Les fonctions et procédures                       ses paradigmes.
        Notions de fonctions et paramètres
        Les règles de portées des variables
        Les règles de visibilité des fonctions          Public :

V.    Les entrées/sorties                               Cette formation s'adresse à des développeurs qui
        Notions de flux                                 désirent s'initier au langage C.
        Entrées et sorties standards
        Fichiers textes et binaires

VI. La bibliothèque standard
        Présentation de la bibliothèque standard
        Fonctions mathématiques
        Dates et heures
        Expressions régulières
                                                                   Durée de la formation : 4 jours
VII. Vers la programmation orientée objets
        Pointeurs et tableaux
        Présentation des structures
        Allocation dynamique de la mémoire
        Principes généraux pour la manipulation des
        structures
FORMATION C

                                                                  Programme                             :
Techniques
                                                         I.    Types de bases et conversions
                                                                 Présentation approfondie des pointeurs,
                                                                 tableaux, des structures, des unions, des enums
                                                                 et des typedefs

avancées en
                                                         II. Le pré-processeur C
                                                                 Principe général du fonctionnement
                                                                 du pré-processeur
                                                                 Définition de macros constantes et de macros

 langage C
                                                                 fonctions
                                                                 Gestion des conditions avec le pré-processeur
                                                                 Concaténation et "stringification" à l'aide
                                                                 du pré-processeur

                                                         III. Plus de détails sur les types de base
                                                                 Les types intégral et leurs promotions
                                                                 Les conditions et les expressions
                                                                 conditionnelles
Objectif pédagogique :                                           La manipulation des champs de bits
                                                                 Les types flottants (la norme IEEE754)
Le C s’impose comme un langage de prédilection
                                                                 Les opérateurs sur les types de bases
pour le développement d’applications critiques et
performantes. Il s’agit d’un langage très utilisé dans
tous les secteurs et dans les couches basses.            IV.   La gestion des erreurs
                                                                 Récupération des erreurs systèmes avec errno
Cette formation a pour objectif de familiariser les              Gestion des erreurs avec les codes de retours
apprenants avec le langage C en leur fournissant                 Sortie d'erreur et fonction exit()
des bases saines et solides.
                                                         V.    Les structures de données principales
                                                                 Implantation des listes doublement
Bénéfices attendus :                                             et simplement chainées
                                                                 Implantation des arbres binaires
Maîtriser les bases du C, savoir développer une                  Implantation d'un conteneur de chaînes
application complète en C et se familiariser avec                de caractères gérant la mémoire
ses paradigmes.                                                  Implantation d'une table de hachage générique

                                                         VI. Portabilité/intéractions avec le matériel et le
Public :                                                     système d’exploitation
                                                                 Les normes POSIX et SUS
Cette formation s'adresse à des développeurs qui                 Les différentes normes du C
désirent s'initier au langage C.                                 Les différences entre les systèmes Windows/
                                                                 Linux/*BSD - Appels systèmes
                                                                 Utilisation de l'assembleur inline

                                                         VII. Déboggage et profilage
                                                                 Déboggage avec GDB sous UNIX
                                                                 Suivi de l'utilisation de la mémoire avec Valgrind
           Durée de la formation : 4 jours                       sous UNIX
                                                                 Profilage avec gprof et perf sous UNIX
                                                                 Désassemblage du binaire produit pour vérifier
                                                                 les instructions générées
FORMATION C

       Les bonnes pratiques du
            langage C pour la
              performance
       Programme :
I.    Techniques de base d’optimisations                 Objectif pédagogique :
        Quand et comment faut-il penser
        à l'optimisation ?                               Le C s’impose comme un langage de prédilection
        Que faut-il optimiser ?                          pour le développement d’applications critiques et
        Les capacités d'optimisations automatiques des   performantes. Il s’agit d’un langage très utilisé dans
        compilateurs                                     tous les secteurs et dans les couches basses.
        Sur l'utilisation du mot clé inline
        Factorisation de boucle for et while             Cette formation a pour objectif de fournir aux
        Auto-vectorization de boucle for et while        apprenants les réflexes permettant de spécifier et de
                                                         développer des composants logiciels performants en
                                                         C.
II.   Optimisation de l'utilisation mémoire
        Occupation et fragmentation mémoire
        Cache du processeur et alignement mémoire
                                                         Bénéfices attendus :
III. Optimisation de la vitesse d’exécution
                                                         Maîtriser les différentes techniques d'optimisations
        Choisir les structures de données et
                                                         d'un programme écrit en langage C.
        les algorithmes adaptés
        Déroulage et fusion de boucles
        Polymorphisme dynamique et types algébriques
                                                         Public :
IV. Le parallélisme en C
        Quand faut-il faire du parallélisme ?            Cette formation s'adresse à des développeurs
        Principe généraux, différents niveaux            expérimentés en C qui souhaitent approfondir leurs
        de parallélisme                                  connaissances en optimisations.
        Parallélisme massif et à grande échelle,
        OpenMPI
        Parallélisme multi-coeur, OpenMP,                           Durée de la formation : 3 jours
        POSIX threads
        Parallélisme sur un coeur, un premier pas
        vers le SIMD
Les offres de formations
NUMSCALE HPC
FORMATION HPC

Comprendre les
nouvelles architectures
de calculs
                                                                  Programme                           :
Objectif pédagogique :                                 I.    Introduction
                                                               Rappel historique
Obtenir des connaissances théoriques et pratiques              Adéquation logiciel/matériel
sur les composants des systèmes de calculs                     Métrique et vocabulaire
modernes, leurs interactions et leurs prises en
mains au niveau logiciel.                              II.   Pipeline
                                                               Principes généraux
                                                               Impact sur l’exécution des boucles
Bénéfices attendus :                                           Optimisations logicielles

Maximiser les performances d’un logiciel en            III. Jeux d’instruction
appliquant des connaissances pointues sur les                  Principes généraux
composants matériels de son système de calcul.                 Systèmes super-scalaires
                                                               Jeux d’instructions SIMD
                                                               Jeux d’instructions orientés métiers
Public :
                                                       IV. Caches
Cette formation s'adresse à des scientifiques,                 Principes généraux
techniciens et ingénieurs en développement logiciel.           Associativité
                                                               Cache multi-niveaux

                                                       V.    Gestion de la mémoire
                                                               Principes généraux
                                                               Mémoire virtuelle
                                                               Pagination et TLB

                                                       VI. Architectures Multi-coeurs
                                                               Principes généraux
           Durée de la formation : 3 jours
                                                               Impact sur les caches
                                                               Gestion des threads

                                                       VII. Architectures NUMA
                                                               Problématiques
                                                               Bibliothèque libnuma
                                                               Autres solutions logicielles
FORMATION HPC

                         L’accélération des
                         calculs avec bSIMD
                                                                  Programme                                :
Objectif pédagogique :                                   I.    Introduction
                                                                 Historique
Les jeux d’instructions SIMD sont des composantes                1 001 saveurs de SIMD
fondamentales des processeurs modernes. Leur                     Compilateurs vs développeurs
maîtrise est néanmoins rendue complexe de part leur              Introduction à bSIMD
grande variété.
                                                         II.   Opérations de base
Cette formation a pour objectif de familiariser                  Types SIMD
l’apprenant avec ces jeux d’instructions et les bonnes           Interaction avec la mémoire
pratiques nécessaires à leur exploitation via des                Opérations arithmétiques et logiques
outils modernes.                                                 Comparaison et structure de contrôle

Bénéfices attendus :                                     III. Calcul en nombres flottants
                                                                 Principes généraux
Maîtriser les techniques de développement SIMD et                Manipulation de la mantisse et de
les appliquer de manière efficace.                               l’exposant
                                                                 Algorithmes itératifs pour la précision

Public :                                                 IV. Mélange et formatage
                                                                 Principes généraux
Cette formation s'adresse à des scientifiques,                   Mélanges et mélanges parfaits
techniciens et ingénieurs en développement logiciel              Accès mémoire irréguliers
ayant une expérience en C ou C++.                                Transposition

                                                         V.    Techniques d’intégration
                                                                 Gestion de la variabilité des jeux
                                                                 d’instruction
                                                                 Gestion de la mémoire : AoS ou SoA
           Durée de la formation : 3 jours                       Interaction avec d’autres langages

                                                         VI. Applications
FORMATION HPC

Techniques
d’optimisations pour
le calcul numérique
 Programme                            :
I.    Introduction
                                               Objectif pédagogique :
II.   Concevoir pour la performance
        Algorithmes et structures de données   La maîtrise des architectures parallèles passe aussi
        Mémoire et I/O                         par une connaissance approfondie de la relation
        Savoir parler compilateur              entre les algorithmes et leurs implémentations
        Anticiper le parallélisme              numériques.

III. Boucles & Layout mémoire                  Cette formation a pour objectif de se familiariser avec
                                               les stratégies de développement permettant
        Rappel
                                               d’implanter de manière optimale des algorithmes
        Cache et optimisation
                                               classiques.
        Transformation de boucles
        AoS ou SoA

IV. Précision vs vitesse                       Bénéfices attendus :
        Rappel sur IEEE 754
                                               Se familiariser avec les problématiques de
        Mesure de la précision
                                               performance du calcul numérique ; maîtriser les outils
        Pièges classiques
                                               logiciels du domaine et éviter les erreurs.
        Précision mixte

V.    Algèbre linéaire
                                               Public :
        Inversion vs résolution
        Systèmes creux, systèmes denses
        Exploiter le contexte métier           Cette formation s'adresse à des scientifiques,
        Choisir un solveur                     techniciens et ingénieurs en développement logiciel
                                               ayant une expérience en C ou C++.
VI. Briques logicielles de base
        bSIMD
        OpenMP
        MPI
        Autres bibliothèques                              Durée de la formation : 3 jours
FORMATION HPC

           Cryptographie et HPC

      Programme                           :                 Objectif pédagogique :

                                                            La cryptographie s’impose comme une discipline
                                                            indispensable dans les communications modernes et
                                                            est l’une des bases de la cyber-sécurité. Elle assure
                                                            la confidentialité, l’authenticité et l’intégrité de nos
I.    Quelques points de vocabulaire et de bon sens         messages.
        Pourquoi la cryptographie ?
        Vocabulaire                                         Depuis les débuts de l’informatique la cryptographie
        Le principe de Kerckhoff                            et les systèmes de calcul sont intimement liés. Cette
        Implantation et temps de calcul                     formation a pour but de présenter ses liens étroits.
        On connaît le cryptosystème parfait

II.   La cryptographie asymétrique                          Bénéfices attendus :
        RSA
        El-Gamal                                            Maîtriser la cryptographie et savoir l’appliquer dans le
                                                            cadre du HPC.
III. La cryptographie symétrique
        Fonctions de hachage
        Codes par flots                                     Public :
        Codes par blocs
        Générateurs aléatoires                              Cette formation s’adresse à des développeurs qui
                                                            souhaitent s’initier à la cryptographie ayant quelques
IV.   Les différences entre les niveaux de l’implantation   connaissances de base en arithmétique.
      et sémantique
        Niveau sémantique
        Niveau de l’implantation
                                                                       Durée de la formation : 5 jours
V. Chiffrement/Déchiffrement
        Cryptographie symétrique
        Cryptographie asymétrique
        Fonctions de hachage

VI. Cryptanalyse : la factorisation et le logarithme
    discret
        Rappels de complexités
        Notions de théorie algorithmique des nombres
        Algorithmes de base
        Algorithme d’index calculus

VII. Chiffrement homomorphe

VIII. Alternatives à la cryptographie usuelle
FORMATION HPC

Programmation pour les
systèmes distribués
 Programme :
I.    Introduction
        Pourquoi des applications distribuées
        Rappel historique
        Challenges et imitations

II.   Métriques de performance
        Utilité des métriques                   Objectif pédagogique :
        Loi d’Amdahl
        Loi de Gustafson-Barsis                 Cette formation a pour objectif de présenter les outils,
        Métrique de Karp-Flatt                  les métriques et les algorithmes nécessaires à
        Gflops ou Go/s ?                        l’exploitation optimale des systèmes distribués
                                                quelque soit leur échelle.
III. MPI
        Principes généraux                      Bénéfices attendus :
        Fonctions de base
        Communications synchrones               Maîtriser les techniques de programmation sur
        Communications collectives              systèmes distribués, développer les applications
        Communications asynchrones              distribuées avec un haut niveau d’abstraction et de
                                                performance.
IV.   Le modèle BSP
        Principes généraux
        Modèle de performance                   Public :
        Primitives BSP
        Algorithmes BSP classiques
                                                Cette formation s'adresse à des scientifiques,
                                                techniciens et ingénieurs en développement logiciel
V.    Squelettes algorithmiques
        Principes généraux                      ayant une expérience en C ou C++.
        Squelettes data-parallel
        Squelettes task-parallel

                                                           Durée de la formation : 3 jours
FORMATION HPC

Programmation
multi-coeurs avec OpenMP
      Programme                         :   Objectif pédagogique :

                                            Les architectures multi-cœurs sont désormais
                                            largement répandues mais nécessitent une prise en
I.    Introduction                          main effective.
        Les architectures multi-cœurs
        Pourquoi OpenMP ?                   Cette formation va permettre à l’apprenant de se
                                            familiariser avec ces architectures, de maîtriser la
II.   Principes généraux                    technologie OpenMP, l’appliquer à des cas réalistes
                                            et de savoir reconnaître les pièges classiques de ce
        Notion de threads
                                            type de développement.
        Le parallélisme de données
        Interaction avec les caches
                                            Bénéfices attendus :
III. Mise en œuvre
                                            Maîtriser les techniques de développement sur
        Sections parallèles
                                            architectures multi-cœurs via la technologie OpenMP.
        Boucles parallèles
        Réductions
        Synchronisation
                                            Public :
IV. Aspects avancés
        Boucles ou sections ?               Cette formation s'adresse à des scientifiques,
        Gestion des tâches                  techniciens et ingénieurs en développement logiciel
        Le problème du faux partage         ayant une expérience en C ou C++.

                                                       Durée de la formation : 3 jours
Les offres de formations
NUMSCALE GPGPU
FORMATION GPU

Programmation GPGPU
avec OpenCL
     Programme                         :                Objectif pédagogique :

                                                        Les accélérateurs de calcul type GPU sont devenus
                                                        des systèmes de calcul incontournables. Néanmoins
                                                        leur modèle de programmation est radicalement
                                                        différent des modèles séquentiels classiques.
I.   Introduction
                                                        Dans cette formation l’apprenant sera familiarisé
     Historique                                         avec les stratégies de développement sur GPU et
                                                        manipulera la technologie OpenCL afin d’en maîtriser
     Un changement de paradigme                         les aspects techniques.
            Du SIMD au many-cores
            L'architecture GPGPU                        Bénéfices attendus :
     Comparaison entre les différentes architectures    Maîtriser les techniques de développement sur GPU
            GPGPU vs SIMD                               et les appliquer de manière efficace.
            GPGPU vs multi-processeurs
            GPGPU vs Shaders
                                                        Public :
II. Programmation avec OpenCL
                                                        Cette formation s'adresse à des scientifiques,
       Le modèle de programmation GPGPU
                                                        techniciens et ingénieurs en développement logiciel
             Structure d’un noyau de calcul GPGPU
             Les interactions entre les données et le   ayant une expérience en C ou C++.
             code
             Branches, récursion et autres points
             bloquants

       Les bases de la programmation avec OpenCL
             Repérage et sélection d’un GPU                        Durée de la formation : 3 jours
             Ecrire et lancer les kernels OpenCL
             Gestion de la mémoire
             Gestion de la communication
             Gestion de la synchronisation

       Sujets avancés
              Mise au point des noyaux
              Timing et optimisation des noyaux
              Streaming & Multibuffering
FORMATION GPU

Programmation GPGPU
avec CUDA
     Programme                          :                Objectif pédagogique :

                                                         Les accélérateurs de calcul type GPU sont
                                                         devenus des systèmes de calcul
                                                         incontournables. Néanmoins leur modèle de
I.   Introduction                                        programmation est radicalement différent des
                                                         modèles séquentiels classiques.
       Historique
                                                         Dans cette formation l’apprenant sera familiarisé
       Un changement de paradigme                        avec les stratégies de développement sur GPU et
             Du SIMD au many-cores                       manipulera la technologie CUDA afin d’en maîtriser
             L'architecture GPGPU                        les aspects techniques.

       Comparaison entre les différentes architectures   Bénéfices attendus :
            GPGPU vs SIMD
            GPGPU vs multi-processeurs                   Maîtriser les techniques de développement sur GPU
            GPGPU vs Shaders                             et les appliquer de manière efficace.

II. Programmation avec OpenCL                            Public :

       Le modèle de programmation GPGPU                  Cette formation s'adresse à des scientifiques,
             GPGPU Code Flow
                                                         techniciens et ingénieurs en développement logiciel
             Les interactions entre les données et le
             code                                        ayant une expérience en C ou C++.
             Branches, récursion et autres points
             bloquants

       Les bases de la programmation avec CUDA
             Repérage et sélection d’un GPU
             Ecrire et lancer les kernels CUDA                      Durée de la formation : 3 jours
             Gestion de la mémoire
             Gestion de la communication
             Gestion de la synchronisation

       Sujets avancés
              Mise au point des noyaux
              Timing et optimisation des noyaux
              Streaming & Multibuffering
Machine Vision

Finance & Banking   Telecom

Aerospace           Automotive      Oil & Energy

                    Image & Sound   Security

                                    Big Data & Analytics
Con-

             NUMSCALE SAS
           Digiteo Bâtiment 660
                Rue Noetzlin
           91190 Gif-sur-Yvette
            Tel : 01 69 15 49 35
        formations@numscale.com

           Capital : 117 600 euros
 Immatriculation : RCS Evry B 749 983 631
         SIRET : 749 983 631 00021
       Numéro TVA : FR15 749983631
N° d’organisme de formation : 11 91 07537 91
                  CIR 2019
Vous pouvez aussi lire