Introduction aux Algorithmes C++
Pierre Aubert
Objectif du cours
Ce cours à pour but de montrer comment utiliser les Algorithmes C++ pour :
- Développer des programmes C++17/C++20/C++23 qui s'exécutent sur CPU (et sur GPU dans un prochain cours)
Prérequis
Compilateur
Ce cours utilisera le compilateur g++ 11 et clang++14 pour les parties C++17/C++20 ou des compilateurs plus récents compatibles C++17/C++20/C++23. Certaines parties C++23 nécessiteront g++ 13 et la libstdc++.so.6.0.32. Si votre OS ne le permet pas, nous utiliserons Fedora 38 via apptainer.Outils de compilation
Nous utiliserons CMake et Make pour compiler nos programmes et effectuer nos tests de performance.Outil de gestion des versions
Nous utiliserons Git pour gérer les versions des programmes.Image Docker
Un environnement de cours complet est disponible à l'adresse https://jupyter.must-dc.cloud/hub/spawn sous le nom Introduction aux Algorithmes C++.- L'image Docker est disponible à l'adresse : gitlab-registry.in2p3.fr/cta-lapp/cours/introduction_cpp_algorithms/introduction_cpp_algorithms:latest
- Une image minimale est disponible à l'adresse : gitlab-registry.in2p3.fr/cta-lapp/cours/introduction_cpp_algorithms/introduction_cpp_algorithms_ci:0.1
Presentations
Correction des exemples
La correction des exemples :- SimpleHadamardProduct.tar.gz.
- SimpleHadamardProductBetterInit.tar.gz.
- SimpleHadamardProductBestInit.tar.gz.
- SimpleDotProduct.tar.gz.
- SimpleDotProductBestInit.tar.gz.
- SimpleDotProductRandom.tar.gz.
- FullHadamardProduct.tar.gz.
- TestRangeViewZip.tar.gz.
- TestRangeViewRepeat.tar.gz.
- TestRangeViewChunk.tar.gz.
- TestRangeViewCartesianProduct.tar.gz.
- FullCalibrationBench.tar.gz.