Centro Universitario de Tecnología y Arte Digital

Sistemas de simulación
Facebook
Twitter
LinkedIn

¿Qué es un desarrollador de sistemas de simulación?

¿Conoces la labor de los desarrolladores de sistemas de simulación? Si todavía no sabes qué hacen exactamente, este es tu post. Te desvelaremos qué es la computación gráfica, qué son las GPU, para qué sirven las simulaciones y mucho más. Para ello hablamos con Marcos Novalbos, profesor de Programación de APIs 3D y Rendering avanzado, y Gonzalo Nicolás, profesor de Sistemas operativos, Paradigmas de programación, Algoritmos y Estructuras. ¿Te lo vas a perder?

¿Qué es una simulación?

Vamos a empezar por el principio. Una simulación es una herramienta que permite recrear el comportamiento de un sistema real o imaginario, utilizando un modelo matemático o computacional.

Se emplea para estudiar y predecir cómo se comportaría un sistema bajo diferentes condiciones, sin tener que probar directamente en la realidad. Esto resulta útil para analizar situaciones complejas, probar distintas opciones y anticipar posibles resultados. Por supuesto, cuantos más datos y más preciso sea el modelo, mayor calidad tendrá la simulación.

¿Qué es la computación gráfica?

La computación gráfica consiste en utilizar tarjetas gráficas con mucha potencia de cómputo para realizar operaciones que resuelvan problemas, normalmente matemáticos. Para ello, necesitan de una GPU potente, las cuales se adaptan muy bien a este tipo de arquitecturas gráficas.

¿Qué quiere decir GPU?

La palabra GPU hace referencia a las tarjetas gráficas. En este caso, cuando hablamos de tarjetas gráficas no nos referimos a las tradicionales, sino a aquellas con suficiente capacidad de cómputo, como las NVIDIA, pensadas para servidores de cómputo, ordenadores potentes a los que aignamos trabajo.

Las GPU tienen gran capacidad de cómputo porque cuentan con muchos procesadores. Los ordenadores normales suelen tener 4 u 8, mientras que las tarjetas gráficas pueden tener miles. Eso significa que pueden realizar miles de operaciones a la vez (en paralelo) por segundo. Además, normalmente van acompañadas de un hardware también dedicado a hacer operaciones matemáticas, rápidamente y en paralelo.

En la descripción de las tarjetas normales suele poner “miles de polígonos por segundo”, pues las GPU lo que hacen es sustituir la palabra “polígono” por “operación matemática”, y esas son todas las que puede hacer a la vez por segundo. Asimismo, tienen más tamaño RAM. Una normal y asequible puede tener hasta 12 GB, mientras que las que montan en servidores tienen 4 o 5 veces más.

¿Qué hardware se necesita para realizar simulaciones?

Todo el que quepa en un ordenador: varias CPU, 4 u 8 tarjetas gráficas… Esos ya no son ordenadores tradicionales, sino que se denominan servidores y en ellos suelen caber unos 4 GPU por nodo, por ordenador. En los centros de cómputo suelen tener varios nodos, cada uno con 4 GPU mínimo, por lo que fácilmente se pueden tener hasta 40.

Las tarjetas gráficas que están destinadas a estos tipos de cómputos generales y que usualmente se encuentran en centros de supercomputación no tienen puertos de salida ni de entrada, están cerradas, ya que no tienen como objetivo llegar a pintar nunca, ni gráficos, ni modelos 3D ni nada similar. Podemos tener todas las que queramos dentro de un solo ordenador, hasta 16 dentro de una misma placa base, pero todos estos centros de cómputo lo que tienen son cientos de ordenadores, todos iguales y cada uno con sus 4,8 o incluso 16 tarjetas que se pueden utilizar al mismo tiempo. Así, podemos asignar una carga de trabajo a cada una de las tarjetas que haya y multiplicarlo por el número de dispositivos para sacar la capacidad computacional que tenemos. De esta forma conseguimos tener miles y cientos de miles de procesadores funcionando a la vez y tratando de resolver el mismo problema.

Computación gráfica: ejemplos

Con la computación gráfica se puede resolver cualquier problema que tenga una cantidad enorme de datos. Por ejemplo, en las simulaciones moleculares pueden existir moléculas pequeñas, de 2.000 o 3.000 átomos, o grandes, que tengan desde 1 millón hasta 60 millones o más. Para trabajar con este volumen de datos lo que se hace es asignar pequeñas cantidades a cada una de las tarjetas gráficas, o incluso a cada uno de los procesadores de la tarjeta, para que vayan operando sobre todos esos datos al mismo tiempo.

Este mismo procedimiento se sigue para resolver problemas climáticos, de inteligencia artificial, descifrar claves, minar bitcoins u obtener imágenes realistas, por ejemplo.

¿Cuál es la importancia de los simuladores moleculares?

Las simulaciones moleculares sirven para modelar fármacos, por ejemplo. Uno de los grandes problemas de los laboratorios es tener que mezclar componentes e ir viendo qué sale, haciendo cientos o miles de pruebas, lo que supone un gasto enorme de materiales y tiempo. Las simulaciones les permiten entender el sistema con el que están trabajando a nivel atómico, cómo los átomos interactúan entre sí y cómo los elementos en los que se encuentran interactúan. Y es que las interacciones moleculares son demasiado rápidas, por lo que no hay tiempo de verlas ni grabarlas. Además, tampoco existen microscopios potentes que lo permitan.

Tras este proceso, el laboratorio puede ver cómo acaba el fármaco y qué resultados han sido óptimos, con el objetivo de comenzar las pruebas con una base previa de conocimiento y no a ciegas.

¿Cómo es el día a día de los profesionales de la computación gráfica?

Los ingenieros de computación gráfica desempeñan distintas tareas:

  • Transformar las fórmulas matemáticas, adaptarlas a las tarjetas gráficas.
  • Programar las tarjetas gráficas, para lo que debe conocer el lenguaje y el hardware que se vayan a utilizar.
  • Exportar: normalmente este paso lo llevan a cabo expertos en paralelismos, que sepan cómo funciona la tarjeta gráfica, qué problema se quiere solucionar, cómo subdividirlo adecuadamente, etc.
  • Meter todo en una simulación y realizar testeos para comprar que no ha habido errores.

¿Qué formación deben tener estos perfiles?

¿Cualquier persona que haya hecho Ingeniería del Software puede trabajar con una tarjeta gráfica? Sí, pero se va a encontrar con que no se parece en nada a lo que trabaja habitualmente, ya que hay un cambio de paradigma. Esto se debe a que normalmente, al desarrollar un programa la ejecución de todo lo que ocurre es secuencial, es decir, las órdenes van unas de tras de otra; sin embargo, en las tarjetas gráficas entras en el campo de la computación paralela, en la que las tareas ocurren al mismo tiempo, y esto puede causar una serie de problemas.

Es labor de la persona que está llevando a cabo este trabajo detectar dónde pueden encontrarse esos puntos críticos y abordarlos antes de que ocurran, pero esto no es una tarea sencilla. Además, también hay que entender la arquitectura de una tarjeta gráfica, que no es igual a la de un ordenador convencional, sino que cuenta con una jerarquía de memoria más amplia, distintas zonas a las que accedes alternativamente, etc.

¿Cuál es el futuro de las simulaciones?

Gran parte del futuro de las simulaciones pasa por la realidad virtual. Uno de los problemas que tiene actualmente es que no es potente debido a que los portátiles que todo el mundo tiene en casa son normales, por lo que no podemos pedir una simulación perfecta, física, al interactuar en esos entornos. Por otro lado, conforme vayan avanzando las tarjetas gráficas, muchos de los cálculos que se hacen hoy en día en centros de supercomputación podrán realizarse en tarjetas gráficas tradicionales que podamos tener en casa y a bajo coste.

En animación, las simulaciones de telas, como las que hace Pixar, por ejemplo, son muy costosas y se llevan a cabo en centros de cómputo. En videojuegos pasa algo parecido, son muy costosas, y al tener que ser en tiempo real todavía más. En el futuro todos los videojuegos estarán en nubes apoyadas en centros de cómputo con suficientes tarjetas gráficas que permitan simulaciones físicas mucho más realistas que las que hemos visto hasta ahora.

¿Existe demanda de estos profesionales en el mercado laboral?

Las empresas que se dedican a la investigación, así como las que realizan simulaciones de cualquier tipo, buscan este tipo de perfiles, muy especializados. Es muy nicho, por lo que quienes saben hacer estas cosas siempre encuentran oportunidades. Por poner un ejemplo, Meta contó con muchos de estos profesionales para poder lanzar su metaverso con un realismo alto. En general, todas estas empresas buscan ampliar su I+D y sacar productos novedosos.

 

Y a ti, ¿te gustaría formarte en computación gráfica y simulaciones? Échale un vistazo a nuestro Máster Universitario en Computación Gráfica, Realidad Virtual y Simulación y consúltanos todas tus dudas sin compromiso.

 

Facebook
Twitter
LinkedIn