Saltar al contenido principal

Introducción

Bienvenido a la frontera de lo posible

A lo largo de la historia, nuestra comprensión científica del mundo ha crecido rápidamente cada vez que nuevas herramientas se han puesto a disposición: herramientas que nos permitieron hacer nuevas preguntas, realizar experimentos más grandes y abrir nuevos campos de investigación. Entre estas herramientas se encuentran el telescopio, el microscopio y el Gran Colisionador de Hadrones. Cada uno de ellos abrió el acceso a nuevos tipos de descubrimientos científicos. En la década de 1960, también presenciamos el desarrollo de la computación de alto rendimiento (HPC), que se convirtió en una herramienta indispensable para resolver problemas computacionales complejos, incluyendo muchos desafíos científicos importantes.

Ahora tenemos otra herramienta importante para el avance científico: los computadores cuánticos. Aunque todavía es una tecnología emergente, los computadores cuánticos tienen el potencial de cambiar fundamentalmente el tipo de problemas computacionales que podemos resolver de manera eficiente. Este curso aborda cómo estas tecnologías, trabajando en conjunto, pueden ampliar los límites de lo computable.

Nuestra misión es clara, pero ambiciosa: proporcionarte el conocimiento conceptual y práctico que necesitas para utilizar estas tecnologías en algunos de los problemas más difíciles del mundo.

Este video describe los objetivos de este curso y la motivación detrás de la combinación de HPC y computación cuántica.

HPC

¿Qué es exactamente la computación de alto rendimiento? La computación de alto rendimiento se ha convertido en la base para resolver problemas computacionales modernos. Ya no vivimos en una era en la que los problemas complejos pueden resolverse con herramientas simples como un ábaco o lápiz y papel; en cambio, trabajamos con preguntas y conjuntos de datos que requieren una enorme capacidad de cómputo.

El campo de la computación de alto rendimiento se remonta al desarrollo de los primeros supercomputadores en la década de 1960. Estas máquinas fueron diseñadas específicamente para resolver problemas científicos e ingenieriles a gran escala más rápido que los computadores convencionales.

Uno de los primeros supercomputadores conocidos fue el CDC 6600 (1964), construido por Seymour Cray, quien a menudo se le llama el padre de la supercomputación. El CDC 6600 era el computador más rápido de su época y utilizaba una arquitectura innovadora con unidades funcionales paralelas y pipelining, conceptos que se siguen utilizando en HPC hasta el día de hoy.

Cray impulsó el campo aún más con el Cray-1 (1976), que introdujo el procesamiento vectorial, una técnica que aumentó significativamente la velocidad de las operaciones en grandes arreglos de datos, haciéndolo especialmente adecuado para el cómputo científico.

Cuando la velocidad de los procesadores individuales comenzó a estancarse, HPC evoluciónó hacia la computación paralela, es decir, el uso de muchos procesadores trabajando juntos en diferentes partes de un problema. En las décadas de 1980 y 1990, las arquitecturas paralelas se generalizaron en HPC. A principios de la década de 2000, HPC se desplazó hacia clústeres de hardware comercial: servidores comunes conectados a través de redes de alta velocidad. Este cambio hizo que la supercomputación fuera más asequible y permitió un acceso más amplio a HPC.

A lo largo de toda esta evolución, IBM® ha estado a la vanguardia de la investigación e implementación de HPC. Especialmente destacables son los supercomputadores IBM Blue Gene, que se encuentran entre las familias de supercomputadores más influyentes de la década de 2000 y principios de 2010. Fue una era de enorme crecimiento en sistemas masivamente paralelos, de los cuales Blue Gene/Q fue un ejemplo: una instancia (Sequoia) tenía 100.000 nodos. El Oak Ridge Summit, construido por IBM, fue en 2018 el primer recurso HPC en alcanzar ExaOPS (1,88 en precisión mixta).

Hoy nos encontramos en la era del exascale, en la que los supercomputadores pueden ejecutar 101810^{18} operaciones por segundo (exaflops). El primer supercomputador en alcanzar este hito fue Frontier, en el Oak Ridge National Laboratory.

Entonces, ¿por qué necesitamos recursos de cómputo tan potentes? Hay problemas que son cruciales para el bienestar humano y que requieren recursos extremos para modelarlos o resolverlos. Ejemplos incluyen modelos climáticos, el estudio de la estructura y el movimiento del manto terrestre, y simulaciones de dinámica de fluidos.

Muchos problemas de este tipo han sido abordados por investigadores de IBM y sus colaboradores, trabajando en sistemas IBM. Este liderazgo sostenido ha sido ampliamente reconocido. Por ejemplo, investigadores de IBM han ganado el Premio Gordon Bell en seis ocasiones.[1]

HPC es un campo muy activo donde los límites se están empujando constantemente. Para obtener una visión general de las capacidades modernas, consulta esta lista de los 500 supercomputadores más potentes.

Computación cuántica

La computación cuántica es un nuevo paradigma de cómputo que no sigue simplemente la evolución gradual de los computadores clásicos. Su objetivo es aprovechar las propiedades cuánticas de superposición, entrelazamiento e interferencia cuántica para resolver problemas que serían intratables solo con computadores clásicos. En este curso, no entraremos en los detalles específicos de la computación cuántica —para eso está disponible Fundamentals of quantum information—, sino que discutiremos cómo la combinación de estas dos infraestructuras podría conducir a avances en la ciencia aplicada.

Un enfoque híbrido

Lo más importante a destacar es que estos dos paradigmas de cómputo no son competidores. Nos encontramos en una era en la que los flujos de trabajo optimizados exigen que ambos paradigmas se complementen y que las tareas se realicen donde pueden abordarse de manera más efectiva. Los computadores cuánticos no reemplazarán a los sistemas clásicos; más bien, el futuro de la ciencia computacional dependerá cada vez más de flujos de trabajo híbridos, donde HPC proporciona un procesamiento clásico potente y la computación cuántica aporta capacidades únicas. Como profesional, investigador o especialista en tecnología, comprender cómo combinar estas herramientas te convertirá en un líder en la próxima era del avance científico y tecnológico.

Exploraremos cómo la computación cuántica y HPC están posicionados para permitir avances en una variedad de industrias, incluyendo:

  • Química: Aceleración de la identificación de nuevos medicamentos y materiales.

  • Energía: Desarrollo de catalizadores, baterías y soluciones de energía limpia mejoradas.

  • Finanzas: Modelado de riesgos, optimización de carteras y desarrollo de nuevos instrumentos financieros.

  • IA y aprendizaje automático: Mejora del entrenamiento de modelos, optimización y análisis de datos.

Por qué vamos más allá de la computación clásica

Los seres humanos han logrado éxitos notables en las áreas de aplicación mencionadas anteriormente con HPC. Sin embargo, incluso los supercomputadores más rápidos del mundo alcanzan sus límites cuando los problemas escalan factorial o exponencialmente con el tamaño del problema. Por ejemplo, enumerar cada posible disposición de 50 partículas en una molécula compleja produce configuraciones que crecen al menos factorialmente y requieren más memoria de la que todos los centros de datos de la Tierra podrían proporcionar juntos.

Otro ejemplo es la planificación de una ruta de entrega para 10.000 ciudades: el número de rutas posibles se vuelve tan grande que el cálculo —incluso si cada computador jamás construido probara una ruta por microsegundo— tomaría órdenes de magnitud más tiempo que la edad actual de nuestro sol. Estos números no son simplemente grandes; crecen exponencialmente, lo que significa que cada partícula o ciudad adicional multiplica la carga computacional mucho más allá de un simple escalamiento.

Podemos seguir añadiendo GPU, pero la manipulación de tales enormes volúmenes de datos ya consume megavatios de energía y requiere instalaciones del tamaño de almacenes. A partir de cierto punto, el hardware clásico no puede seguir escalando de manera práctica o asequible. Por esta razón, los investigadores están recurriendo a procesadores cuánticos, que almacenan información en superposiciones y a veces pueden abordar directamente estos problemas de crecimiento exponencial, resolviendo casos específicos que las máquinas clásicas no pueden manejar en ningún plazo razonable.

HPC eventualmente alcanza límites fundamentales impuestos por la combinatoria y la termodinámica. La computación cuántica no elimina estos límites, pero en escenarios muy específicos puede sortearlos.

¿Por qué no solo computación cuántica?

Si la computación cuántica puede sortear ciertas limitaciones de la computación clásica, ¿por qué no confiamos completamente en los computadores cuánticos? La primera y más obvia razón es que los computadores cuánticos siguen necesitando máquinas clásicas para funcionar. Tareas como compilar e introducir circuitos en el procesador cuántico, almacenar resultados de medición y el posprocesamiento básico son todas realizadas por sistemas computacionales clásicos.

¿Por qué entonces necesitamos además computación de alto rendimiento? Hay varias razones para ello. Muchas aplicaciones actuales y futuras de la computación cuántica abordan problemas con espacios de búsqueda extremadamente grandes. Los algoritmos cuánticos a menudo pueden reducir significativamente el tamaño de este espacio, pero en la práctica, el problema restante puede seguir siendo lo suficientemente grande como para beneficiarse de los recursos HPC. Además, hay algoritmos que equilibran las fortalezas de HPC y la computación cuántica, delegando suficiente trabajo a HPC para hacer el algoritmo general más robusto frente a los efectos del ruido cuántico.

Un ejemplo concreto es el algoritmo de Diagonalización Cuántica Basada en Muestras (SQD). Este algoritmo, que se examina más de cerca en la Lección 4, muestra cómo HPC y la computación cuántica pueden complementarse en la práctica. Puedes encontrar más información en el curso Quantum Diagonalization Algorithms en IBM Quantum Learning.

Este curso está dirigido a profesionales y estudiantes que trabajan estrechamente con infraestructuras HPC y/o computación cuántica, o que planean hacerlo en el futuro. Dado el rápido avance de la tecnología cuántica, anticipamos que en un futuro cercano, los procesadores cuánticos se utilizarán junto con los recursos HPC tradicionales para obtener resultados más precisos y permitir nuevos enfoques para la resolución de problemas. Este curso está dirigido a estudiantes que desean comprender cómo construir y ejecutar tales flujos de trabajo híbridos.

Dado que los participantes pueden tener distintos antecedentes, esperamos dos tipos principales de estudiantes: aquellos con experiencia en HPC pero sin conocimientos de computación cuántica, y aquellos con conocimientos de computación cuántica pero sin experiencia en HPC. Para que todos aprovechen al máximo este curso, a continuación proporcionamos recomendaciones de preparación para ambos grupos.

Para quienes son nuevos en HPC

Este curso presupone familiaridad con conceptos básicos de HPC, como la programación con memoria distribuida, el paso de mensajes, los modelos de programación paralela y la gestión de recursos. También utilizaremos herramientas como el gestor de cargas de trabajo Slurm. Muchos de estos conceptos se introducirán brevemente cuando sea necesario, pero algo de conocimiento previo hará el material más accesible. Recursos útiles incluyen:

También puedes encontrar recursos adicionales en este repositorio de GitHub.

Para quienes son nuevos en computación cuántica

Este curso utiliza herramientas y conceptos básicos de la computación cuántica con una revisión introductoria mínima. Recomendamos que tengas al menos conocimientos básicos de Qiskit, familiaridad con puertas y circuitos cuánticos, y algo de experiencia con algoritmos basados en muestreo. Los recursos enumerados a continuación deberían ser una preparación útil.

  • Guía de IBM Quantum® Composer: Una introducción a Composer, una herramienta gráfica de programación cuántica que te permite arrastrar y soltar operaciones para crear circuitos cuánticos y ejecutarlos en hardware cuántico.
  • Introducción a Qiskit: Una colección de guías que te ayudan con la instalación y configuración de Qiskit.
  • Hello World: Un breve tutorial sobre Qiskit en el que configuras y ejecutas tu primer programa cuántico.
  • Quantum diagonalization algorithms: Un curso que cubre varios tipos de algoritmos cuánticos, incluyendo SQD, que se utiliza en este curso.

También puedes encontrar recursos adicionales en este repositorio de GitHub.

Los estudiantes de todos los antecedentes podrían encontrar útil esta guía; cubre el plugin SPANK para la gestión de recursos cuánticos y explica Slurm.

Hay algunas características de la computación cuántica que la diferencian procedimentalmente de los recursos de cómputo clásicos y que son relevantes para este curso. Por ejemplo, no existe un buen equivalente cuántico de la RAM. La información se almacena y procesa en los estados de los propios qubits. Aunque las mediciones permiten registrar clásicamente algunas propiedades de los qubits, dichas mediciones destruyen gran parte de la riqueza del estado cuántico, incluyendo la superposición y el entrelazamiento. Además, los recursos de cómputo cuántico actualmente no se encuentran en el mismo nodo que otros recursos HPC, y los usuarios de recursos cuánticos a menudo no tendrán el mismo grado de control de planificación que sobre los recursos HPC clásicos. Estas realidades se retomarán en las lecciones correspondientes. La conclusión más importante aquí es: los computadores cuánticos cambiarán el mundo y deben integrarse con HPC, pero no son "simplemente otro" recurso HPC que pueda controlarse y utilizarse de la misma manera que las CPU, GPU, etc. Los computadores cuánticos cambian la forma en que podemos abordar muchos problemas computacionales.

Acerca de este curso

Al final de este curso, no solo podrás repetir términos técnicos: comprenderás cómo gestionar un flujo de trabajo híbrido moderno que asigna ciertas subtareas a un procesador cuántico mientras las CPU y GPU se encargan del resto del trabajo. Aprenderás cómo escribir scripts para trabajos que cambien sin problemas entre nodos clásicos y QPU, interpretar resultados con precisión y reconocer dónde la aceleración cuántica realmente puede mejorar los cálculos (y dónde no). Igualmente importante es que cultives una mentalidad de crecimiento: en un campo nuevo y en rápida evolución, nadie lo aprende todo de una vez, y el verdadero progreso surge de iterar, experimentar y hacer preguntas.

Este curso se divide en 5 capítulos que cubren los siguientes temas:

Esquema del curso

  • Lección 1 – Esta lección proporciónó contexto y motivación
  • Lección 2 – Recursos de cómputo y su gestión
  • Lección 3 – Modelos de programación para entornos de cómputo heterogéneos
  • Lección 4 – Algoritmos cuánticos para flujos de trabajo híbridos, específicamente SQD
  • Lección 5 – Perspectivas y dirección futura

Considera este curso como tu punto de partida: el lugar donde construyes el conjunto de herramientas mentales y la confianza para explorar la frontera cuántico-clásica mucho después de completar la última lección.

Referencias

[1] https://www.hpcwire.com/off-the-wire/gordon-bell-prize-awarded-to-ibm-and-leading-university-researchers/