Parcours
/
C++
C++
/
Exercices
/
Fréquence des lettres en parallèle
Fréquence des lettres en parallèle

Fréquence des lettres en parallèle

Moyen

Instructions

Compte la fréquence des lettres dans des textes en utilisant le calcul parallèle.

Le parallélisme consiste à faire en parallèle des choses qui peuvent aussi être faites de manière séquentielle. Un exemple courant est le comptage de la fréquence des lettres. Utilise le parallélisme pour calculer la fréquence totale de chaque lettre dans un tableau de textes.

Notes supplémentaires pour l'implémentation en C++

Il y a plusieurs façons de mettre en œuvre du parallélisme en C++. L'exécuteur en ligne d'Exercism prend en charge C++17, on peut donc utiliser les politiques d'exécution de la bibliothèque d'algorithmes. Une autre option consiste à gérer les threads manuellement. Note cependant que créer un thread coûte assez cher (utiliser un pool de threads aiderait).

En local, tu peux bien sûr utiliser ce que tu veux. Cependant, une solution qui utilise des bibliothèques non standard ne fonctionnera très probablement pas avec l'exécuteur en ligne d'Exercism.

Benchmark

En local, tu peux éventuellement lancer un benchmark pour te donner une idée de l'accélération qu'apportent les différentes implémentations. Activer l'option CMake EXERCISM_INCLUDE_BENCHMARK active le benchmark :

cmake -DEXERCISM_RUN_ALL_TESTS=1 -DEXERCISM_INCLUDE_BENCHMARK=1 .

Prise en charge des algorithmes parallèles par les compilateurs

L'implémentation de la bibliothèque standard C++ par GCC (libstdc++) s'appuie sur TBB. Si TBB n'est pas disponible, une version séquentielle est utilisée en repli, même quand l'exécution parallèle est demandée.

Sous Ubuntu, tu dois installer le paquet libtbb-dev :

apt-get install libtbb-dev

Sous macOS, tu peux utiliser Homebrew pour installer TBB :

brew install tbb

À partir de la version 17, la libc++ de Clang prend en charge les algorithmes parallèles de manière expérimentale et partielle. Pour l'activer, il faut passer l'option de compilation -fexperimental-library.

Apple Clang 15 et les versions antérieures ne prennent pas en charge les algorithmes parallèles.

Sous Linux et macOS, on te recommande d'utiliser GCC (avec la libstdc++ par défaut) pour cet exercice.

Le MSVC de Microsoft prend en charge les algorithmes parallèles depuis au moins VS 2017 15.7, sans qu'il soit nécessaire d'installer une bibliothèque supplémentaire.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
C++ Exercism

Prêt à commencer Fréquence des lettres en parallèle ?

Inscris-toi sur Exercism pour apprendre et maîtriser C++ avec 19 concepts100 exercices, et un vrai mentorat humain, le tout gratuitement.

Analyse approfondie de Fréquence des lettres en parallèle !

On explore les différences entre concurrence et parallélisme, en examinant les différentes approches adoptées par des langages comme JavaScript, Go, Elixir et Rust.