14.04.2013 Views

Untitled - Departamento de Ciencias e Ingeniería de la Computación

Untitled - Departamento de Ciencias e Ingeniería de la Computación

Untitled - Departamento de Ciencias e Ingeniería de la Computación

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.7.1 Sh<br />

Sh es una librería que utiliza un mecanismo <strong>de</strong> metaprogramación, el cual permite escribir sha<strong>de</strong>rs <strong>de</strong>ntro <strong>de</strong>l<br />

programa principal, en C++. Parte <strong>de</strong>l código es compi<strong>la</strong>do cuando <strong>la</strong> aplicación principal se compi<strong>la</strong>, y el resto (con<br />

ciertas optimizaciones) se compi<strong>la</strong> en tiempo <strong>de</strong> ejecución. Esta es una i<strong>de</strong>a simi<strong>la</strong>r a <strong>la</strong> que usamos cuando<br />

incorporamos consultas SQL en el código <strong>de</strong> nuestra aplicación.<br />

Entre <strong>la</strong>s características que posee po<strong>de</strong>mos nombrar:<br />

Es Open source.<br />

Tiene soporte ya implementado para <strong>la</strong>s p<strong>la</strong>taformas Windows, Linux y Mac OS X. A<strong>de</strong>más, también tiene<br />

soporte en OpenGL y DirectX.<br />

Dado que fue <strong>de</strong>sarrol<strong>la</strong>do por investigadores universitarios, Sh no está altamente ligado a ninguna<br />

p<strong>la</strong>taforma particu<strong>la</strong>r, API gráfica, o fabricante <strong>de</strong> GPU.<br />

Está diseñado para po<strong>de</strong>r usarlo para cálculos <strong>de</strong> propósito general.<br />

Sh es un proyecto investigativo con un enfoque interesante. Aunque, en mi opinión, no tan útil como para usarlo en<br />

<strong>la</strong> práctica. ¿Por qué? Entre otras cosas, porque nos quita <strong>la</strong> gran ventaja <strong>de</strong> po<strong>de</strong>r <strong>de</strong>sarrol<strong>la</strong>r sha<strong>de</strong>rs por separado,<br />

utilizando herramientas que no solo nos permiten <strong>de</strong>sarrol<strong>la</strong>rlos muy cómodamente, sino optimizarlos sin tener en<br />

cuenta a nuestro motor.<br />

3.7.2 Cálculos <strong>de</strong> propósito general sobre GPUs<br />

En el primer capítulo hab<strong>la</strong>mos <strong>de</strong> usar a <strong>la</strong>s GPU para realizar cálculos físicos. En realidad, <strong>la</strong>s GPUs podrían ser<br />

útiles para realizar cualquier tipo <strong>de</strong> cálculos <strong>de</strong> propósito general. De hecho, actualmente es un área que está<br />

l<strong>la</strong>mando mucha <strong>la</strong> atención, dado que el po<strong>de</strong>r <strong>de</strong> cálculo <strong>de</strong> <strong>la</strong>s GPUs es altísimo.<br />

Los lenguajes anteriormente vistos (excepto Sh) reflejan <strong>la</strong> estructura <strong>de</strong> <strong>la</strong> GPU bastante bien. Y es por esto que<br />

necesitamos enfoques totalmente distintos. Actualmente existen dos enfoques interesantes, el CUDA <strong>de</strong> NVIDIA y el<br />

CTM <strong>de</strong> ATI.<br />

Lamentablemente, no continuaremos con este tema, a pesar <strong>de</strong> que es verda<strong>de</strong>ramente muy interesante, y<br />

probablemente consiga repercutir consi<strong>de</strong>rablemente en el mercado en los próximos años.<br />

Página 63

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!