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

Frecuencia de letras en paralelo

Intermedia

Instrucciones

Cuenta la frecuencia de las letras en textos usando computación paralela.

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

Notas adicionales sobre 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 los hilos manualmente. Sin embargo, ten en cuenta que crear un hilo es bastante costoso (usar un pool de hilos ayudaría).

Cuando trabajas de forma local, por supuesto que puedes usar lo que quieras. 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 trabajas de forma local, puedes ejecutar un benchmark de manera opcional para hacerte una idea de la aceleración que ofrecen las distintas implementaciones. Si activas la opción EXERCISM_INCLUDE_BENCHMARK de CMake, habilitas el benchmark:

cmake -DEXERCISM_RUN_ALL_TESTS=1 -DEXERCISM_INCLUDE_BENCHMARK=1 .

Soporte del compilador para los algoritmos paralelos

La implementación de GCC de la biblioteca estándar de C++ (libstdc++) depende de TBB. Si TBB no está disponible, se usará una versión secuencial como respaldo, incluso cuando se solicite una ejecución paralela.

En Ubuntu, necesitas instalar el paquete libtbb-dev:

apt-get install libtbb-dev

En macOS, puedes usar Homebrew para instalar TBB:

brew install tbb

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

Apple Clang 15 y versiones anteriores no admiten los algoritmos paralelos.

En Linux y macOS, te recomendamos usar GCC (junto con el libstdc++ predeterminado) para este ejercicio.

El MSVC de Microsoft admite los 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 una pestaña nuevas
C++ Exercism

¿Todo 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.

¡Profundiza en 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.