martes, 2 de junio de 2009

Cómo hacer de joystick y no morir en el intento (Project Natal)

Acabo de ver una noticia sobre "el nuevo mando" que Microsoft incorporará a la 360. El mando eres tú, sin más cachibaches que tu propio body. Lo han presentado en el E3 con Spielberg a la cabeza (yo floto).

Viendo el vídeo realmente impresiona la tecnología, aunque ya saldrá el pavo de turno echando pestes XD

Más información aquí.

jueves, 21 de mayo de 2009

Diseñando un ThreadPool

Sin lugar a dudas, la base de todo Framework Multihilo pasa por tener un ThreadPool robusto y rápido, sobre todo rápido. Debe ser capaz de "tragarse" tareas como si estuviera endemoniado :-D

Si ya de por sí diseñar código Thread Safe de forma eficiente es jodido de cojones, lo puede ser más el efecto conocido como thread starvation.
Esta situación se provoca debido a que varios hilos solicitan de forma simultánea una tarea de la cola, generando sobrecarga en la sincronización y disminuyendo el rendimiento de forma notable. El mismo código que te funciona de puta madre en un equipo con DualCore puede ir de pena en un QuadCore o superior.

Otro asunto es el balanceo de carga entre hilos. No puede ser que haya algunos hilos con mucha carga de trabajo en espera mientras otros se rascan la barriga. Así se pueden ir sumando problemas que indican la complejidad que puede entrañar el diseño de un buen ThreadPool.

Para aliviar algunos de los problemas citados, se pueden emplear técnicas como el Work-Stealing Queue. Este patrón es una cola que permite encolar tareas de forma privada (sin bloqueos desde un mismo hilo) y robar tareas desde otros hilos (con alguna penalización en la sincronización).

Un detalle de implementación de un maestro del threading : Joe Duffy

Por cierto, en la nueva versión del CLR (la 4.0) de .NET se está rediseñando el ThreadPool para que sea más eficiente y se pueda enredar con él para variar su comportamiento interno.

viernes, 24 de abril de 2009

Parallel Framework Design

El Visual Adrenaline de Intel acaba de publicar un artículo muy interesante acerca de cómo desarrollar un efectivo Framework orientado al procesamiento de juegos en paralelo. Con tanto Core suelto en estos días no está de más ojear este tipo de artículos para tomar ideas aplicables a cualquier tipo de desarrollo, no sólo juegos...

Visual Adrenaline: Designing the Framework of a Parallel Game Engine

sábado, 7 de marzo de 2009

Bug en instalador de SQL Server Express 2008

Hace unos días, instalando ese producto de Microsoft, no había "webs" de hacerlo en un equipo que tuviera el mismo nombre de usuario y nombre de equipo. El caso es que cambiando a posteriori el nombre de usuario tampoco se podía. Al final tuve que cambiar el nombre de equipo ¡Tiene pelotas la cosa!