Principes de fonctionnement d’un système d’exploitation.
Langage de programmation C
Contribution aux objectifs du référentiel de compétences de l'ARES
Identifier, conceptualiser et résoudre des problèmes complexes
Intégrer les savoirs scientifiques et technologiques afin de faire face à la diversité et à la complexité des problèmes rencontrés
Analyser des produits, processus et performances, de systèmes techniques nouveaux et innovants
Concevoir, développer et améliorer des produits, processus et systèmes techniques
Établir ou concevoir un protocole de tests, de contrôles et de mesures.
Concevoir et gérer des projets de recherche appliquée
Mener des études expérimentales, en évaluer les résultats et en tirer des conclusions
Valider les performances et certifier les résultats en fonction des objectifs attendus
S’intégrer et contribuer au développement de son milieu professionnel
Évaluer les coûts et la rentabilité de son projet
S’engager dans une démarche de développement professionnel
Réaliser une veille technologique dans sa sphère d’expertise
Actualiser ses connaissances et s’engager dans les formations complémentaires adéquates
Acquis d'apprentissage spécifiques
Appréhender et comprendre les enjeux des systèmes parallèles
Savoir choisir un degré de parallélisme adapté au problème à traiter et en adéquation avec les caractéristiques du matériel utilisé
Se familiariser avec le HPC et les différents niveaux de parallélismes des architectures
Savoir programmer des systèmes en exploitant le multithreading et les GPU
Contenu des AA
Parallélisme : théorie
Classification du parallélisme
Évolution du parallélisme
Systèmes hétérogènes
High Performance Computing
Parallélisme : laboratoires
Introduction théorique (en anglais) :
Le parallélisme
Les graphes de dépendance
Multithreading
General-purpose Computing on GPU avec CUDA
Laboratoires (en anglais) :
Rappel des notions de pointeurs et des allocations dynamiques
Parallélisation naïve d'un algorithme séquentiel
Parallélisation du même algorithme en tenant compte des spécificités du matériel utilisé
Introduction à la programmation sur GPU avec CUDA
Répartition des heures
Parallélisme : théorie : 9 h de théorie
Parallélisme : laboratoires : 18 h d'exercices/Labos
Méthodes d'enseignement
Parallélisme : théorie : cours magistral, approche interactive, approche avec TIC, étude de cas, utilisation de logiciels
Parallélisme : laboratoires : cours magistral, approche interactive, approche par situation problème, approche avec TIC, étude de cas, utilisation de logiciels
Langues d'enseignement
Parallélisme : théorie : français, anglais
Parallélisme : laboratoires : français, anglais
Supports
Parallélisme : théorie : copies de présentations, syllabus
Parallélisme : laboratoires : copies de présentations, syllabus
Ressources bibliographiques
Parallélisme : théorie
High performance computing, M. Loudikes, C. Severance et K. Dowd, O'Reilly, 1998
Distributed Computing: fundamentals, simulations, and advanced topics, H. Attiya, Wiley-Blackwell, 2004