Rutas
/
C++
C++
/
Ejercicios
/
Frecuencia de letras en paralelo
Frecuencia de letras en paralelo

Frecuencia de letras en paralelo

Media

Instrucciones

Cuenta la frecuencia de las letras en textos mediante computación en paralelo.

El paralelismo consiste en hacer en paralelo cosas que también se pueden hacer de forma secuencial. Un ejemplo habitual es contar la frecuencia de letras. Utiliza el paralelismo para calcular la frecuencia total de cada letra en una lista de textos.

Notas adicionales para la implementación en C++

Hay varias formas de lograr paralelismo en C++. El ejecutor en línea de Exercism admite C++17, así que puedes usar las políticas de ejecución de la biblioteca de algoritmos. Otra opción es gestionar manualmente los hilos. Sin embargo, ten en cuenta que crear un hilo es bastante caro (usar un grupo de hilos ayudaría).

Cuando trabajes en local, puedes usar lo que quieras, por supuesto. Sin embargo, es muy probable que una solución que use bibliotecas no estándar no funcione con el ejecutor en línea de Exercism.

Benchmark

Cuando trabajes en local, puedes ejecutar un benchmark de forma opcional para hacerte una idea de la mejora de velocidad de las distintas implementaciones. Activar la opción de CMake EXERCISM_INCLUDE_BENCHMARK habilita el benchmark:

cmake -DEXERCISM_RUN_ALL_TESTS=1 -DEXERCISM_INCLUDE_BENCHMARK=1 .

Soporte de compiladores para los algoritmos paralelos

La implementación de GCC de la biblioteca estándar de C++ (libstdc++) se basa en TBB. Si TBB no está disponible, se recurrirá a una versión secuencial, incluso cuando se solicite la ejecución en paralelo.

En Ubuntu, tienes que instalar el paquete libtbb-dev:

apt-get install libtbb-dev

En macOS, puedes usar Homebrew para instalar TBB:

brew install tbb

Clang libc++ tiene, desde la versión 17, compatibilidad experimental y parcial con los algoritmos paralelos. Para activarla, hay que indicar la opción de compilador -fexperimental-library.

Apple Clang 15 y versiones anteriores no admiten algoritmos paralelos.

En Linux y macOS te recomendamos usar GCC (junto con la libstdc++ predeterminada) para este ejercicio.

El MSVC de Microsoft admite algoritmos paralelos al menos desde VS 2017 15.7 sin necesidad de instalar ninguna biblioteca adicional.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva
C++ Exercism

¿Listo para empezar Frecuencia de letras en paralelo?

Regístrate en Exercism para aprender y dominar C++ con 19 conceptos100 ejercicios y mentoría humana real, todo gratis.

¡Análisis en profundidad de Frecuencia de letras en paralelo!

Exploramos las diferencias entre concurrencia y paralelismo, viendo los distintos enfoques que adoptan lenguajes como JavaScript, Go, Elixir y Rust.