Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





QuadCores, sincronizaciones y sucesos paranormales

Iniciado por tamat, 12 de Marzo de 2008, 06:09:58 PM

« anterior - próximo »

tamat

No es una consulta, es solo para contaros algo que me ha pasado hoy en el trabajo.

Llevamos varios meses desarrollando un sistema de prototipado de aplicaciones gráficas bastante cómodo, el problema es que el bucle de render se especifica con algo parecido a un script lo que consume muchisima CPU, siendo la carga de la CPU la que más afectaba al framerate.

Bien, pues ayer me fijé que misteriosamente, cada N veces que ejecutaba la aplicacion esta pasaba de los estandares 30 fps a unos 90 (sin VSync). Si volvía a ejecutar la aplicacion el comportamiento volvía a ser el de 30 fps.

No entendía a qué podía deberse, así que decidí mirar la carga de los cores del QuadCore, y había algo que no me cuadraba, los 4 cores estaban al 40% durante la ejecución y mi aplicación no hace uso de threads en ningun momento.

Hoy un compañero de trabajo me ha sugerido darle afinidad al proceso para que se ejecute en una unica CPU, y tachan, 90FPS, y la carga de los cores me muestra uno al 100% y el resto casi parados.

Al final hemos forzado por aplicación que use un único core usando: SetThreadAffinityMask(GetCurrentThread(),1);

Deduzco que el problema es que intentaba splitear la aplicacion en los 4 cores y acababa pudriendose en las sincronizaciones de los 4 threads.

Avisados estais!
Por un stratos menos tenso

Prompt

Sin duda, la implementación probablemente sea por defecto aprovechar en lo posible todos los núcleos repartiendo la carga obligatoriamente, si tiene un único thread la aplicación y ninguna dll, puede ser una catástrofe total como bien indicas.

Gracias por el apunte :) seguro que nos servirá en el futuro para tenerlo en cuenta al programar.

Saludos!

ethernet

Si, el aproBechamiento deve ser el masimo :)

EDITO: como curiosidad, si buscas aprobechar en internet salen unos resultados muy muy curiosos:
http://www.google.es/search?hl=es&client=firefox-a&rls=org.mozilla%3Aes-ES%3Aofficial&hs=6o8&q=aprobechar&btnG=Buscar&meta=

(me adelanté mars :P)

Mars Attacks

Mars no está, deja el mensaje después de la iParty.

Hablando de offtopics, y perdón por las búsquedas en internet, buscad en google "Find Chuck Norris".






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.