El otro día un amigo me preguntaba sobre los entornos de desarrollo para crear aplicaciones en OpenCL mientras escribía sobre el concepto de Microservers de Intel y me dije a mi mismo «mismo, esta idea es BRILLANTE!!1.
Todos los hostings compartidos tienen un maquinón con 4, 8, 16 o 32 núcleos, muchos cientos de gigas de ram, discos duros por montones y enlaces de fibra con suficiente ancho de banda como para descargar todo el internet en diez minutos, pero el costo de dichos servidores es elevadísimo y corren al 100% en ocasiones contadas.
Similar es el caso de nosotros, donde tuvimos que recurrir a un servidor dedicado no porque recibamos diez mil millones de visitas a diario y todo el mundo presiones F5 como si tuvieran un tic nervioso, sino que para las ocasiones donde la cantidad de visitas es abrumadora al publicar un review o un post con la palabra «concurso» en el título, por lo que pensaba en qué tal sería tener servidores que utilicen OpenCL, CUDA o ATI Stream para servir páginas web.
A diferencia de un ambiente de trabajo donde la carga realizada sobre la máquina es enorme, muchas veces un sitio web es relativamente ligero a menos que tenga una maraña de JavaScript y contenido en Flash. Sitios que entregan mucho contenido en formato simple como Twitter se beneficiarían enormemente de 500 o 1000 núcleos de limitado poder en vez de destinar un Core i9 para entregar un simple «Buenos días Twitter» y más importante: bajaría el costo de los servidores para ambientes web dramáticamente para mantenerse competitivos en el mercado. Para qué hablar de ambientes con bases de datos donde se hacen miles de operaciones cortas en vez de una operación grande por segundo.
Lo mejor de todo es que el hardware ya está acá, por lo que no debemos gastar cientos de miles de dólares en investigación y desarrollo, y los sistemas operativos para servidores ya están optimizados en cierta medida para ambientes multinúcleo, por lo que invertir un poco de dinero en programadores para que le saquen el jugo a una GPU profesional o procesador de 100 núcleos como el de Tessera es totalmente realizable. En el peor de los casos habría que desarrollar un bus PCIe extendido para el ancho de banda que consumirá el hardware, pero no es como si soluciones a ese problema no se hayan implementado en el pasado.
¿Qué otros usos se les vendría a la mente para tecnologías como esta?
[Imagen]