domingo, 21 de diciembre de 2014

C++11 Hilos

Basados en el ejemplo anterior, ahora sumaremos los elementos usando varios hilos; veamos si eso ayuda en el tiempo de ejecución.
Este es el resultado en mi computadora que tiene 2 procesadores dual-core:
resultado= 5000000050000000
hilos=4
tiempo= 137 ms
Como podemos ver, el tiempo de ejecución no necesariamente es una cuarta parte del tiempo obtenido en la publicación anterior; esto nos permite observar que existe un costo por crear hilos, por lo cual debemos tener cuidado en balancear el número de hilos creados contra la cantidad de trabajo realizada por cada hilo.
De hecho, experimentado con el código, forcé el programa a usar sólo 2 o 3 hilos (línea 13), con 2 hilos el tiempo de ejecución fue alrededor de 150ms y con 3 hilos alrededor de 175ms, interesante!
Compilé este programa con:
g++ -std=c++11 sum_thread.cc -o sum_thread -pthread
Para poder obtener el resultado obtenido por cada hilo, pasamos una variable por referencia (línea 24), en la siguiente entrada veremos como podemos hacer esto más sencillo.
Saludos!

No hay comentarios:

Publicar un comentario