[{"command":"insert","method":null,"selector":".course-modal-ajax-placeholder-950873","data":"\u003Cdiv class=\u0022container content-rte\u0022\u003E\n  \u003Cdiv class=\u0022row\u0022\u003E\n    \u003Cdiv class=\u0022box col-md-6 bg-primary text-white\u0022\u003E\n      \u003Ch2 class=\u0022h1 text-left\u0022\u003E  [M1 DiPaQ] Programmation MPI pour les architectures \u00e0 m\u00e9moire distribu\u00e9e\n\u003C\/h2\u003E\n                  \u003Cdiv class=\u0022field-spacing\u0022\u003E\n        \u003Cdiv class=\u0022field__label h3 dash\u0022\u003EECTS :\n          3\n        \u003C\/div\u003E\n      \u003C\/div\u003E\n                  \u003Cdiv class=\u0022field-spacing\u0022\u003E\n        \u003Cdiv class=\u0022field__label h3 dash\u0022\u003ESemestre calendaire :\n          Semestre 2\n        \u003C\/div\u003E\n      \u003C\/div\u003E\n            \u003Cdiv class=\u0022field-spacing\u0022\u003E\n      \u003Cdiv class=\u0022field__label h3 dash\u0022\u003ED\u00e9tail du volume horaire\u003C\/div\u003E\n                        \u003Cdiv class=\u0022mt-5 text-justify\u0022\u003E\n                          \u003Cspan class=\u0022field__label h4 mt-5 \u0022\u003ECours magistraux :\u003C\/span\u003E\n                                      \u003Cspan\u003E10.5\u003C\/span\u003E\n                      \u003C\/div\u003E\n                                \u003Cdiv class=\u0022mt-5 text-justify\u0022\u003E\n                          \u003Cspan class=\u0022field__label h4 mt-5 \u0022\u003ETravaux pratiques :\u003C\/span\u003E\n                                      \u003Cspan\u003E10.5\u003C\/span\u003E\n                      \u003C\/div\u003E\n                                                                          \u003C\/div\u003E\n        \u003Cdiv class=\u0022field-spacing\u0022\u003E\n      \u003Cdiv class=\u0022field__label h3 dash\u0022\u003ELangue d\u0026#039;enseignement\u003C\/div\u003E\n                        \u003Cdiv class=\u0022mt-5 text-justify\u0022\u003E\n                                      \u003Cspan\u003EAnglais\u003C\/span\u003E\n                      \u003C\/div\u003E\n                  \u003C\/div\u003E\n        \u003Cdiv class=\u0022field-spacing\u0022\u003E\n      \u003Cdiv class=\u0022field__label h3 dash\u0022\u003EEnseignement \u00e0 distance\u003C\/div\u003E\n                        \u003Cdiv class=\u0022mt-5 text-justify\u0022\u003E\n                                      \u003Cspan\u003Enon\u003C\/span\u003E\n                      \u003C\/div\u003E\n                  \u003C\/div\u003E\n      \u003C\/div\u003E\n    \u003Cdiv class=\u0022box col-md-6\u0022\u003E\n            \u003Cdiv class=\u0022field-spacing\u0022\u003E\n      \u003Cdiv class=\u0022field__label h3 dash\u0022\u003EPr\u00e9requis\u003C\/div\u003E\n                        \u003Cdiv class=\u0022mt-5 text-justify\u0022\u003E\n                                      \u003Cspan\u003E\u003Cp\u003E\u003Cstrong\u003EPrerequisites:\u003C\/strong\u003E\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EBasic knowledge of programming in C or Fortran is required.\u003C\/li\u003E\n\u003Cli\u003EFamiliarity with parallel programming concepts, computer architecture is recommended but not mandatory.\u003C\/li\u003E\n\u003Cli\u003EBasic knowledge of Unix is \u200b\u200brecommended\u003C\/li\u003E\n\u003Cli\u003EStudents should be comfortable with compiling programs in a Linux environment.\u003C\/li\u003E\n\u003Cli\u003EPrior exposure to performance optimization or HPC tools will be beneficial but is not a strict prerequisite.\u003C\/li\u003E\n\u003C\/ul\u003E\u003C\/span\u003E\n                      \u003C\/div\u003E\n                  \u003C\/div\u003E\n        \u003Cdiv class=\u0022field-spacing\u0022\u003E\n      \u003Cdiv class=\u0022field__label h3 dash\u0022\u003EProgramme \/ plan \/ contenus\u003C\/div\u003E\n                        \u003Cdiv class=\u0022mt-5 text-justify\u0022\u003E\n                                      \u003Cspan\u003E\u003Cp\u003E\u003Cstrong\u003ECourse program, plan, content:\u003C\/strong\u003E\u003C\/p\u003E\n\u003Cp\u003E\u003Cstrong\u003ETotal duration:\u003C\/strong\u003E 21 hours (7 sessions \u00d7 3 hours)\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003ESession 1 (Lecture + Lab):\u003C\/strong\u003E\u0026nbsp;Introduction; MPI environment (with exercise); introduction to supercomputer, module and SLURM environment.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003ESession 2 (Lecture + Lab):\u003C\/strong\u003E\u0026nbsp;Point-to-point communications (with exercise)\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003ESession 3 (Lecture + Lab):\u003C\/strong\u003E\u0026nbsp;Collective communications (with exercise).\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003ESession 4 (Lecture + Lab):\u003C\/strong\u003E\u0026nbsp;Communication model (with exercise).\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003ESession 5 (Lecture + Lab):\u003C\/strong\u003E\u0026nbsp;Derived types (with exercise).\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003ESession 6 (Lecture + Lab):\u003C\/strong\u003E\u0026nbsp;Communicators (with exercise).\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003ESession 7 (Lecture + Lab):\u003C\/strong\u003E\u0026nbsp;Open session based on questions and finalization of projects.\u003C\/li\u003E\n\u003C\/ul\u003E\u003C\/span\u003E\n                      \u003C\/div\u003E\n                  \u003C\/div\u003E\n        \u003Cdiv class=\u0022field-spacing\u0022\u003E\n      \u003Cdiv class=\u0022field__label h3 dash\u0022\u003EObjectifs d\u0026#039;apprentissage\u003C\/div\u003E\n                        \u003Cdiv class=\u0022mt-5 text-justify\u0022\u003E\n                                      \u003Cspan\u003E\u003Cp\u003E\u003Cstrong\u003ELearning objectives:\u003C\/strong\u003E\u003C\/p\u003E\n\u003Cp\u003EAt the end of this course, students will be able to:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EParallelize a code using the MPI library.\u003C\/li\u003E\n\u003Cli\u003EKnow how to run a simulation on a supercomputer by using the module environment and the SLURM batch scheduler.\u003C\/li\u003E\n\u003Cli\u003EUnderstand and effectively optimize communications between MPI processes, intra and inter node.\u003C\/li\u003E\n\u003Cli\u003EMeasuring the efficiency and scalability of parallelized code\u003C\/li\u003E\n\u003C\/ul\u003E\u003C\/span\u003E\n                      \u003C\/div\u003E\n                  \u003C\/div\u003E\n        \u003Cdiv class=\u0022field-spacing\u0022\u003E\n      \u003Cdiv class=\u0022field__label h3 dash\u0022\u003EOrganisation g\u00e9n\u00e9rale et modalit\u00e9s p\u00e9dagogiques\u003C\/div\u003E\n                        \u003Cdiv class=\u0022mt-5 text-justify\u0022\u003E\n                                      \u003Cspan\u003E\u003Cp\u003E\u003Cstrong\u003EGeneral course organization and teaching modalities:\u003C\/strong\u003E\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EThe course combines\u0026nbsp;\u003Cstrong\u003Electures\u003C\/strong\u003E\u0026nbsp;introducing theoretical concepts with\u0026nbsp;\u003Cstrong\u003Ehands-on programming labs\u003C\/strong\u003E\u0026nbsp;that allow students to apply and test these concepts in practice.\u003C\/li\u003E\n\u003Cli\u003EEach 3-hour session blends approximately 50% lecture and 50% programming exercises.\u003C\/li\u003E\n\u003Cli\u003EEvaluation is\u0026nbsp;\u003Cstrong\u003Econtinuous\u003C\/strong\u003E, based on\u0026nbsp;\u003Cstrong\u003Emultiple written and programming assignments\u003C\/strong\u003E\u0026nbsp;distributed throughout the course. Each assignment will be given at the end of each session and must be done for next session. Students will use MPI on the RUCHE supercomputer to complete lab work and assignments.\u003C\/li\u003E\n\u003C\/ul\u003E\u003C\/span\u003E\n                      \u003C\/div\u003E\n                  \u003C\/div\u003E\n                \u003Cdiv class=\u0022field-spacing\u0022\u003E\n      \u003Cdiv class=\u0022field__label h3 dash\u0022\u003EComp\u00e9tences\u003C\/div\u003E\n                        \u003Cdiv class=\u0022mt-5 text-justify\u0022\u003E\n                                      \u003Cspan\u003E\u003Cp\u003E\u003Cstrong\u003ECompetencies gained in the course:\u003C\/strong\u003E\u003C\/p\u003E\n\u003Cp\u003EUpon successful completion, students will have acquired the following competencies:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003EMastery of basic MPI concepts:\u003C\/strong\u003E\u0026nbsp;Understanding of the principles of communication between processes and\u0026nbsp; knowledge of different communication topologies (point-to-point,\u0026nbsp; collective).\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EUsing the main MPI functions:\u003C\/strong\u003E\u0026nbsp;Mastery of basic functions for sending and receiving messages, using collective functions and creating derived types.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EParallel Application Development:\u003C\/strong\u003E Ability to design and implement efficient parallel programs. Performance optimization of MPI applications.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EError Handling and Debugging:\u003C\/strong\u003E Techniques for debugging MPI programs, including handling common errors and troubleshooting communication problems.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EPractical application:\u003C\/strong\u003E Solving real-world problems using MPI. Implementation of practical projects to reinforce acquired skills.\u003C\/li\u003E\n\u003C\/ul\u003E\u003C\/span\u003E\n                      \u003C\/div\u003E\n                  \u003C\/div\u003E\n        \u003Cdiv class=\u0022field-spacing\u0022\u003E\n      \u003Cdiv class=\u0022field__label h3 dash\u0022\u003EBibliographie\u003C\/div\u003E\n                        \u003Cdiv class=\u0022mt-5 text-justify\u0022\u003E\n                                      \u003Cspan\u003E\u003Cp\u003E\u003Cstrong\u003EBibliography:\u003C\/strong\u003E\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EMPI official website : \u003Ca rel=\u0022nofollow noopener noreferrer\u0022 target=\u0022_blank\u0022 href=\u0022https:\/\/www.mpi-forum.org\/\u0022\u003Ehttps:\/\/www.mpi-forum.org\/\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003ETutorials on MPI on the IDRIS website : \u003Ca rel=\u0022nofollow noopener noreferrer\u0022 target=\u0022_blank\u0022 href=\u0022http:\/\/www.idris.fr\/formations\/mpi.html\u0022\u003Ehttp:\/\/www.idris.fr\/formations\/mpi.html\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\u003C\/span\u003E\n                      \u003C\/div\u003E\n                  \u003C\/div\u003E\n        \u003Cdiv class=\u0022field-spacing\u0022\u003E\n      \u003Cdiv class=\u0022field__label h3 dash\u0022\u003ENature de l\u0026#039;\u00e9valuation\u003C\/div\u003E\n                        \u003Cdiv class=\u0022mt-5 text-justify\u0022\u003E\n                                      \u003Cspan\u003EEvaluation Continue non Int\u00e9grale\u003C\/span\u003E\n                      \u003C\/div\u003E\n                  \u003C\/div\u003E\n      \u003C\/div\u003E\n  \u003C\/div\u003E\n\u003C\/div\u003E\n","settings":null}]