Anuncios Google

Duda usando multiples hilos en C++

Hola a todos. He estado experimentando con OpenMP para hacer que mi juego pueda aprovechar mejor los procesadores multinucleo.

Mi programa usa cuatro hilos (threads) aunque concentra la mayor parte del trabajo en dos (uno para el renderizado y el otro para la inteligencia artificial, física, etc.).

Querría saber si usar más hilos que la cantidad de nucleos de un procesador ralentizaría mucho mi juego.


PC: i5-2500K @ 4.2GHz, ATI HD 6870 1GB GDDR5 (975MHz core, 1150 MHz memory 1.176V), 8GB DDR3, 750 GB HDD, 128 GB SSD Crucial M4, 750W PSU, Win7 x64, Kubuntu x64

Avatar creado por JeyZee


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de joserc87

Al contrario!

Si usas hebras irá bastante más fluido, incluso en un procesador mononúcleo. Ten en cuenta que generalmente cada núcleo puede ejecutar más de una hebra al mismo tiempo (me parece que todos los procesadores pueden desde el Pentium4 con hyperthreading). En cualquier caso, eso no te va a ralentizar para nada (si lo haces bien) ya  que los hilos se van turnando: primero se ejecuta uno y luego otro. Además es una ventaja para los que tengan multinúcleo.

Conclusión: que 4 hilos está perfecto y hasta 7 u 8 hilos es razonable. Más de 8 yo lo veo contraproducente, al menos por ahora, ya que todo el mundo tiene entre 2 y 4 núcleos. En un futuro, cuando tener un procesador de 8 núcleos sea lo normal, te diré que 15 o 16 hilos es lo más apropiado. Además, ten en cuenta que no todo es la CPU. En gran parte, los FPS vienen determinado por la potencia de tu GPU para procesar la escena, sobre todo en un juego 3D del tipo Call of Duty, así que no te agobies mucho con lo de las hebras.

Saludos!


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Imagen de koldo52

Muchas gracias

Esque a mi juego le quiero poner unas cuantas cosas que puede que hagan que use más CPU así que si uso mas de un nucleo el juego irá mejor.  Más que nada lo quiero para eso y para acelerar el juego a la hora de cargar algunos recursos. Por ahora uso 4 hilos pero probaré a ver si puedo aprovechar más hilos. Por ahora he notado una pequeña subida de FPS (de 300 a 330 más o menos cuando lo pongo a tope) pero en un futuro creo que será mayor la diferencia entre que se use un solo hilo y varios.

Saludos


PC: i5-2500K @ 4.2GHz, ATI HD 6870 1GB GDDR5 (975MHz core, 1150 MHz memory 1.176V), 8GB DDR3, 750 GB HDD, 128 GB SSD Crucial M4, 750W PSU, Win7 x64, Kubuntu x64

Avatar creado por JeyZee

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.