29/01/2009

Va de zombies

Posted in Cine, Libros, Videojuegos tagged , , , , , , a 12:26 am por interloper

No es un tema que suela tratar muy a menudo, mas que nada porque la temática zombie no suele levantar pasiones en mi… Pero sin embargo, hoy me he encontrado un par de noticias bastante jugosas al respecto que, por qué no, han levantado un poco mi interés por la materia.

World War ZPor un lado, para aquellos que segúis este blog de vez en cuando, puede que os suene remotamente haberme leído hablar del libro World War Z, de Max Brooks (si, el hijo de Mel Brooks). Concretamente aquí, y en la lista de libros de 2008. El caso es que Larteas, al tanto siempre de cualquier noticia interesante en el panorama cinematográfico mundial, me remitió a una información en la que se hablaba de la adaptación de World War Z a la gran pantalla. Por un lado me pareció una noticia excelente, ya que el libro me encantó (espero que Entrari lo esté cuidando bien, o de lo contrario sufrirá una muerte lenta y dolorosa) y está claro que contemplar la esencia del libro transportada al cine puede ser toda una experiencia… Pero por otra parte me dio bastante miedo. World War Z es un libro muy complejo. Para quienes no lo hayan leído, no se trata de una novela al uso, sino que está compuesto por una serie de entrevistas que un personaje anónimo realiza a múltiples supervivientes de la Guerra Zombie. Cada cual cuenta su experiencia, y las narraciones te transportan desde los primeros infectados hasta el fin del conflicto. Sin embargo, hay muchas cosas que, al estilo de “Reservoir Dogs”, no llegan a contarse directamente. Hay muchos puntos clave que, a través de menciones y referencias por parte de unos entrevistados y otros, podemos llegar a figurarnos, pero no a conocer de “primera mano”. Por ello, adaptar esa sensación de “No saberlo todo con detalle, pero tener ideas aproximadas y hacer conjeturas propias” (que en el fondo tan similar es a la vida real), así como la estructura narrativa del libro de Brooks puede resultar un reto demasiado grande para ser plasmado correctamente en el cine.

¿Y a qué viene todo esto? A que hoy Larteas me ha enviado el update más reciente del proceso de creación de la película de WWZ. Concretamente, un dibujo de artwork que ha aparecido en la red (para ser precisos, en /Film). Es el siguiente:

World War Z concept art

Artwork de World War Z: La Batalla de Yokers

La imágen en cuestión, a pesar de no estar nada mal, no ha sido capaz de evitar que mis temores se viesen un poco más reforzados de lo que lo estaban antes… En ningún momento me imaginé la batalla retratada de ese modo… Da la sensación de ser algo muy “futurista” y pirotécnico, cuando en realidad el estilo de lucha que me imaginaba al respecto daría lugar a imágenes mucho más parecidas a las de la batalla de Stalingrado en la Segunda Guerra Mundial, o a los actuales conflictos de Irak o Palestina. Pero bueno, el cine es lo que tiene, y una buena dosis de espectáculo tampoco tiene por qué ser negativa…

Por otro lado, me he encontrado también hoy con la noticia de la reedición revisada de “Orgullo y Prejuicio”… Que no he podido evitar apuntar a mi lista de Compra Obligatoria.

Pride and Predjuice and ZombiesProbablemente te estés preguntando a santo de qué paso ahora a hablar de un libro de Jane Austen publicado en 1813, o qué tendrá acaso que ver con las hordas de los no-muertos. Bien, pues tiene que ver porque precisamente esta edición revisada se llama “Orgullo y Prejuicio y Zombies”. Su autor, Seth Grahame-Smith ha tomado el texto íntegro de Orgullo y Prejuicio y le ha añadido unos cuantos… extras. En él, el argumento original en el que Elizabeth Bennet y Fitzwilliam Darcy desarrollan sus enredos amorosos se verá enredado con el hecho de que Elizabeth es la encargada de terminar con la plaga de muertos vivientes que asolan Meryton. Personalmente, creo que se trata de una idea bastante original y atrevida, y como tal, me haré con un ejemplar y lo devoraré. Había pensado en hablar un poco sobre literatura experiemental en esta entrada pero, dado que sería irse demasiado por las ramas, creo que lo dejaré para otra ocasión…

Resident Evil 5Y por último, para tocar un poco todos los palos (y dado que música zombie todavía no hay -aunque grupos como Pig Destroyer se acerquen bastante conceptualmente-, y de llegar a existir dudo que me hiciese especial ilusión), hoy también se ha publicado un nuevo vídeo sobre la saga de zombies más exitosa del mundo de los videojuegos: Resident Evil. El recien estrenado trailer de la quinta entrega lo puedes ver en GameTrailers. Ahora que los juegos de PlayStation 3 me salen a mitad de precio, no cabe duda de que este es uno de esos juegos que me acabaré comprando…

Y por el momento, nada más en el horizonte. Seguiremos informando sobre las novedades a ambos lados de la lápida. De momento, si quieres más información sobre cómo sobrevivir a un apocalipsis zombie, tienes dos opciones… O te lees “Zombi: Guia de Supervivencia” (aunque prefiero el nombre en inglés, “The Zombie Survival Guide”), también de Max Brooks (y de hecho, libro considerado, en algún modo, precuela de “World War Z”) o practicas jugando a The Outbreak, una entretenida idea en la que deberás guiarte a través de un video tomando las decisiones adecuadas para cada momento con el fin de poder vivir un poco más de tiempo ante los muertos vivientes. Yo, mientras tanto, me marcho a jugar a Silent Hill: Origins de la PSP…

Luego no digas que no te lo advertimos…

UPDATE: Por cierto, olvidé decirlo… Pero el libro de Orgullo y Prejuicio y Zombies no estará disponible en las tiendas (británicas y americanas) hasta el 13 de mayo… Así que toca esperar un poco!

UPDATE 2: Copio aquí el link dejado por Julián en los comentarios, a fin de darle algo más de visibilidad… La respuesta española a Pride and Prejudice and Zombies… La Casa de Bernarda Alba Zombie

12/01/2009

BOINC v6.4.5 y el GPGPU

Posted in Ciencia tagged , , , , , , a 7:55 pm por interloper

Para los indecisos… Acabo de enterarme de que se ha publicado la actualización a una nueva versión de BOINC (para quienes no sepan de qué hablo, les remito a mi anterior post acerca del tema, aquí), que incorpora un avance que considero bastante importante… La posibilidad de aprovechar la potencia de cálculo GPGPU para la obtención de los resultados. Puede que algunos os preguntéis qué demonios es esto… Intentaré dar una explicación sencilla.

Si leísteis la anterior entrada acerca de BOINC (si no lo hicísteis, os he dejado el link arriba, asi que no seais perezosos!), en ella hablaba un poco acerca del procesamiento en paralelo. Concretamente, en nuestro caso, daba por supuesto que cada ordenador solo puede realizar, a efectos prácticos, una sola tarea en cada momento, por lo que en su caso el comportamiento sería el de procesamiento en serie. Tener, como decía en esa entrada, cincuenta millones de ordenadores nos permitiría estar ejecutando, en cada instante, cincuenta millones de tareas a la vez. Pero qué sucede si cada ordenador puede ejecutar, a su vez, más de una tarea a la vez? Hasta ahora mismo, eso era algo que ya se estaba haciendo. Por poner un ejemplo, en mi ordenador del trabajo, con doble núcleo (a grosso modo para los neófitos, dos procesadores en uno) se ejecutan a la vez dos tareas por unidad de tiempo (matemática básica: con 25 millones de ordenadores doble core se podría realizar la misma cantida de trabajo que con 50 millones de un solo núcleo). Pero… qué sucedería si pudiesemos utilizar más recursos del ordenador aparte del procesador para realizar cómputo?

La duda evidente es, claro está, dónde encontrar esos recursos. La respuesta es, en este caso, en la tarjeta gráfica. Una importante característica de los elementos de video, de los cuales normalmente se encarga este componente (aunque la labor también pueda ser realizada por el propio procesador central) es que poseen un altísimo grado de paralelismo. Supongamos un juego de ordenador en 3D. En él, cada figura u objeto con que nos topamos está diseñado mediante una malla de polígonos sobre la que, posteriormente, se coloca una textura que “pintará” el interior del polígono.

guy_mod_02(Click para ampliar)

Al mostrar las imágenes por pantalla, es necesario procesar la posición relativa de cada uno de esos polígonos con respecto a la cámara, decidir cuales de ellos serán visibles para el jugador (es decir, cuales no estarán ocultos detrás de otros), y sobre cada uno de ellos habrá que aplicar la correspondiente textura. Una vez se tiene eso, solo queda enviar la correspondiente información a la pantalla, y el resultado es como el que puedes ver en la imagen superior. En todo este proceso hay dos pasos que contienen un altísimo número de operaciones totalmente independientes entre si: El cálculo de la posición relativa de cada polígono en pantalla, y la aplicación de las texturas a los polígonos visibles (el proceso de decisión de los polígonos visibles es, desafortunadamente, secuencial). Con este objetivo en mente, los diseños de las tarjetas gráficas se han ido especializando en la realización de este tipo de tareas, y mientras que un microprocesador normal suele poseer un diseño considerablemente genérico, las GPUs (siglas de Graphics Processing Unit, el procesador de la tarjeta gráfica, vamos…) han desarrollado una arquitectura donde se explota al máximo el paralelismo de estas operaciones para obtener una altísima velocidad de procesamiento. Como muestra, un botón:

7800-gpu-overview

La imagen superior muestra la arquitectura básica de una de las familias gráficas de la casa Nvidia. Como podéis observar, hay tres filas de elementos repetidos. En la primera de esas filas se realiza la rotación y posicionamiento de los distintos vértices que componen las figuras. En la segunda, lo que se lleva a cabo (aunque no lo hubiese mencionado con anterioridad) es el sombreado de los píxeles de cada polígono. En este punto, se aplican los valores de brillo o efectos que ese punto tendrá (explosiones, relieves, transparencia, etc.). Finalmente, en la tercera fila se aplica la textura a cada uno de los polígonos (evidentemente, si el polígono está rotado en alguna de las tres dimensiones, será necesario rotar igualmente la textura), y se envía a la salida por pantalla. El bloque marcado como Z-Cull es el encargado de determinar qué polígono será visible y cual no. El número de operaciones que una GPU puede realizar por segundo es abrumadora. Piensa que, en juegos de última generación, simplemente la cabeza de un personaje puede tener más de 3000 polígonos que es necesario procesar… junto a otro montón de cosas que aparecerán en pantalla!

Una vez explicado el funcionamiento básico de una tarjeta gráfica, pasemos al concepto que realmente nos ocupaba en esta ocasión… El GPGPU. Qué es eso? Se trata de una tendencia que se está empezando a explotar muy recientemente llamada “Procesamiento General en GPU”. O lo que es lo mismo, aprovechar el alto paralelismo de las tarjetas gráficas para realizar otras operaciones distintas a aquella para la que fueron diseñadas. Mediante técnicas que “engañan” a los distintos componentes de la GPU para que realicen operaciones de diverso tipo camufladas como polígonos y texturas, se puede explotar el paralelismo interno de distintos fragmentos de un programa para obtener los resultados con mayor velocidad. Así de facil, así de complicado.

Y precisamente, eso es lo que se ha implementado en esta ocasión para el cliente BOINC. Aunque por el momento esta extensión solo está disponible para las tarjetas gráficas Nvidia (como la que hemos destripado anteriormente, las ATI tendrán que esperar), se trata de un avance muy significativo, ya que implica que ahora no solo se podrá aprovechar el procesador del PC, sino que otro potentísimo elemento de procesamiento como es la tarjeta gráfica podrá ser puesta, también, al servicio de la ciencia. Al final los informáticos (que ahora todos sabemos, gracias al anuncio de T€l€fónica, que son todos chinos, con bata y gafas) van a hacer con el ordenador como los charcuteros con el cerdo, que se aprovecha todo!

Y para que no me digáis que no está todo completo… El olvidado link a la web de la que descargar BOINC.

[Imagen superior tomada del portfolio de Eric Maslowski]
[Imagen inferior tomada de Tom’s Hardware]
[Más información sobre GPGPU: gpgpu.org y la Omniscente]