Acabo de leer una presentación de IDC hablando de HPC y de las predicciones que han hecho. Como decía Niels Bohr: «Hacer predicciones es muy complicado, especialmente si son sobre el futuro«. Pero bueno, eso no es de lo que quiero hablar …
Resulta que IDC va haciendo encuestas (sí, también sé que hay que tener cuidado con las encuestas). El caso es que en las encuestas, los clientes del mundo HPC dicen cosas como:
“Every ship design is tested at sea. We may not be able to afford live tests at some point. It costs about $300 million for shock qualification.”
Es decir, probar un barco real en el mar cuesta MUCHO dinero (esto no es nada nuevo). Es mejor simularlo en una computadora (acabo de descubrir América ;). Aquí viene el problema… según dichos clientes:
“Current parallel processing software technology probably won’t scale to petaflops and exaflops.”
Vamos, que hay que reescribir el código… no te quiero decir nada con eso. Los que seías programadores ya estaréis pensando: «Pedazo de marrón». Efectivamente. Hay que tener en cuenta que las aplicaciones que usan son muy complejas ya que se basan en ecuaciones matemáticas muy complejas que intentan describir un sistema (físico, químico, biológico, económico, …).
Si alguien ha estudiado alguna de estas ramas o simplemente ha curioseado por ese mundo … ya sabe lo que significa.
“To justify supercomputers in 2020, you need to start funding code development today.”
Esta me gusta porque viene a decir que ese código que hay que reescribir … hay que empezar a hacerlo YA para que en el 2020 sea funcional. No va a hacer falta programadores ni ná …
“ISV app licensing is a hot issue with the growth in core counts. We don’t maximize the use of our cores today. We may have to rewrite the software.”
“In 2010, 1M cores. In 2020, 1B cores. How will we program this?”
Más de lo mismo: hay que reescribir el código y que no va a ser nada fácil. La programación paralela es algo complicado … bueno, MUY complicado cuando hablamos de varios miles de cores.
“Developing an exascale code takes 10-30 people, 5-10 years, $100M. Who will give the money and wait?”
Aquí ya empieza lo bueno: esto cuesta pasta … MUCHA PASTA. ¿De dónde va a salir todo este dinero?
“The cost of preparing codes for petascale is more than the hardware system cost.”
Automotive: “It’s hard to see how we could use petascale. We haven’t thought enough about the software ecosystem, and licensing costs are prohibitive.”
Vamos que el coste de licencias es hoy en día algo que se tiene en cuenta … cuando pasemos a millones de cores (actualmente los sistemas rondan las decenas de miles de cores) … no va a haber bolsillo que pueda pagar eso.
“What scares me about petascale is not getting the apps to scale but doing all the data analysis afterwards. How do you get the science out?”
“The same old apps may not be adequate for running the big visualizations.”
Ya para acabar lo que dicen los clientes, os dejo el resumen:
«Software is becoming the #1 roadblock
- Better management software is needed
- – HPC clusters are hard to setup and operate
- – New buyers – require “ease-of-everything”
- Parallel software is lacking for most users
- – Many applications will need a major redesign
- – Multi-core will cause many issues to “hit-the-wall”
¿Y esto qué tiene que ver con el FOSS y Linux? Pues muy sencillo:
- costes: para los que manejan el dinero. FOSS puede ser la respuesta porque las «licencias» desaparecen y el modelo de desarrollo FOSS tiene las ventajas siguientes:
- tienes muchos desarrolladores (no sólo 30 como decían en un párrafo anterior)
- tienes los fuentes por lo que puedes corregir cosas
- los proyectos son relativamente pequeños ahora por lo que paralelizarlos o diseñarlos para el mundo peta/exascale es mucho más sencillo ya que casi parets desde cero
Todo esto redunda en menores costes
- avance científico: al ser un modelo de desarrollo abierto con contribuciones de muchas personas por todo el mundo, muchos de los cuales son «sufridores» por lo que pueden dar un feedback muy bueno.
Sí es cierto que cada vez más se está usando FOSS para temas científicos, pero aún quedan aplicaciones de pago que se utilizan muchísimo. Las razones son varias:
- no hay un equivalente FOSS: como es el caso de Star-P o de aplicaciones CAD/CAM/CAE, aplicaciones de banca, … Sí, ya sé que hay aplicaciones CAD/CAM/CAE FOSS, pero no llegan al nivel de las comerciales … por ahora ;)
- no hay ganas de migrar: miedo, pereza, …
- no hay soporte oficial
- desconocimiento por parte de los usuarios: OpenFOAM, …
Como habéis visto, hay mucha preocupación por parte de los usuarios de dichas aplicaciones y, creedme, lo que hay son MUCHAS ganas de tener respuestas a sus problemas/preguntas/comentarios. Yo estoy algo metido en este mundo HPC y voy proponiendo soluciones FOSS, … pero hace falta mucha más gente. Por eso, desde aquí os animo a los que:
- sois programadores: para que contribuyáis a este tipo de proyectso
- sois científicos: que os animéis y busquéis alternativas FOSS (y colaboréis ;)
- a los que tenéis contacto con gente metida en banca, petroleras, estudios de diseño gráfico, empresas multimedia, centros de investigación, …: comentad estas cosas
- a los que estáis estudiando: animad a vuestros profesores si no conocen estas posibilidades
Tenemos muchas posibilidades y un «mercado» muy grande por delante ya que el HPC ha pasado de los entornos científicos a entornos «enterprise» como pueden ser sistemas de Business Intelligence. El momento es ahora, no nos quedemos en casa esperando: cambiemos de mentalidad y pasémonos al mundo del marketing y «vendamos» FOSS !! :)
Por si tenéis curiosidad, aplicaciones que tienen mucho futuro:
- Blender: software de 3D con el que se han hecho algunos cortos y un largometraje (como comenté en un post anterior). Os dejo un enlace a imágenes creadas con Blender.
- Jahshaka: software de efectos similar a Combustion.
- Cinelerra: software de edición de vídeo.
- CinePaint: software de retoque fotográfico para cine, utilizado en pelis bastante famosas, mirad, mirad, …
- Pixie: motor de render compatible con Render Man. Algunos ejemplos.
- Dr. Queue: cola de gestión de renders utilizado en bastante películas famosas.
- Aplicaciones científicas varias