[{"command":"insert","method":null,"selector":".course-modal-ajax-placeholder-950866","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] Calcul haute performance sur architectures multic\u0153urs\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 1\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 C\/C++ programming\u003C\/li\u003E\n\u003Cli\u003EBasics of computer architecture\u003C\/li\u003E\n\u003Cli\u003EFamiliarity with basic linear algebra concepts\u003C\/li\u003E\n\u003Cli\u003E[M1 DiPaQ] Introduction to parallel algorithms and programming\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\u0026nbsp;21 hours (7 sessions \u00d7 3 hours)\u003C\/p\u003E\n\u003Cp\u003EThis course builds upon the basic concepts of parallel programming introduced in ``[M1 DiPaQ] Introduction to parallel algorithms and programming\u0022 and explores more advanced parallelization and code optimization techniques to write efficient code for multicore parallel architectures. The material covered in the course includes:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EAn overview of the multicore processor architecture\u003C\/li\u003E\n\u003Cli\u003EWriting efficient low-level code using SIMD instructions\u003C\/li\u003E\n\u003Cli\u003EMemory and cache optimizations\u003C\/li\u003E\n\u003Cli\u003EAdvanced code optimization techniques (loop unrolling, branch optimizations, ...)\u003C\/li\u003E\n\u003Cli\u003ETask-based parallelization\u003C\/li\u003E\n\u003Cli\u003EHybrid parallelization combining SIMD and multicore parallelism\u003C\/li\u003E\n\u003Cli\u003EParallelization and optimization approaches for dense linear algebra\u003C\/li\u003E\n\u003Cli\u003EParallelization and optimization approaches for sparse irregular computations\u003C\/li\u003E\n\u003Cli\u003EIntroduction to high performance linear algebra libraries (BLAS, LAPACK)\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\u003EBy the end of this course, students will be able to:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EDescribe modern multicore processor organization, memory hierarchy, and shared cache behavior\u003C\/li\u003E\n\u003Cli\u003EExplain challenges such as cache coherency, NUMA effects, and false sharing\u003C\/li\u003E\n\u003Cli\u003EDiagnose and correct memory-related performance bottlenecks\u003C\/li\u003E\n\u003Cli\u003EApply cache-aware and cache-tiling optimizations\u003C\/li\u003E\n\u003Cli\u003EUtilize SIMD intrinsics or compiler-driven vectorization effectively\u003C\/li\u003E\n\u003Cli\u003EDesign parallel strategies for graph algorithms and sparse matrix computations\u003C\/li\u003E\n\u003Cli\u003EAvoid pitfalls in parallel traversal of irregular data structures\u003C\/li\u003E\n\u003Cli\u003EApply task-based parallelism for dynamic workloads\u003C\/li\u003E\n\u003Cli\u003EBuild scalable parallel algorithms for modern multicore architectures\u003C\/li\u003E\n\u003Cli\u003EUse BLAS and LAPACK routines effectively in real-world applications\u003C\/li\u003E\n\u003Cli\u003EUnderstand how optimized libraries exploit hardware features\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. Students will use parallel computing environment 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\u003ETechnical competence:\u003C\/strong\u003E\u0026nbsp;Ability to design and implement high-performance applications optimized for multicore shared-memory architectures.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EAnalytical competence:\u003C\/strong\u003E\u0026nbsp;Capacity to identify performance bottlenecks, analyze memory-hierarchy behavior, and apply profiling tools to evaluate multicore execution efficiency.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EPractical competence:\u003C\/strong\u003E\u0026nbsp;Proficiency in using multicore-oriented programming models, SIMD intrinsics, optimized linear algebra libraries, and performance-analysis toolchains.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EProblem-solving competence:\u003C\/strong\u003E\u0026nbsp;Ability to choose appropriate parallelization strategies\u2014including vectorization, cache-aware techniques, and task-based decomposition\u2014to address dense and sparse computational challenges.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003ETransferable skills:\u003C\/strong\u003E\u0026nbsp;Experience working with performance-critical codebases, conducting structured experiments, tuning for locality and scalability, and producing reproducible performance results.\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\u003E\u003Cstrong\u003EGrama, A., Gupta, A., Karypis, G., \u0026amp; Kumar, V.\u003C\/strong\u003E\u0026nbsp;\u003Cem\u003EIntroduction to Parallel Computing: Design and Analysis of Algorithms\u003C\/em\u003E, 2nd edition. Addison-Wesley, 2003.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EHennessy, J. L., \u0026amp; Patterson, D. A.\u003C\/strong\u003E\u0026nbsp;\u003Cem\u003EComputer Architecture: A Quantitative Approach\u003C\/em\u003E. Morgan Kaufmann.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EMattson, T., Sanders, B., \u0026amp; Massingill, B.\u003C\/strong\u003E\u0026nbsp;\u003Cem\u003EPatterns for Parallel Programming\u003C\/em\u003E. Addison-Wesley.\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}]