Pular para o conteúdo principal

Introdução

Bem-vindo à Fronteira

Ao longo da história, nossa compreensão científica do mundo avançou rapidamente quando novas ferramentas foram disponibilizadas — ferramentas que nos permitiram fazer novas perguntas, realizar experimentos maiores e investigar novas áreas de pesquisa. Algumas dessas ferramentas incluem o telescópio, o microscópio e o Grande Colisor de Hádrons. Cada uma proporcionou acesso a novos tipos de descobertas científicas. Na década de 1960, também assistimos ao desenvolvimento da computação de alto desempenho (HPC, do inglês high-performance computing), que se tornou uma ferramenta fundamental para resolver tarefas computacionais complexas, incluindo muitos desafios científicos importantes.

Agora temos mais uma ferramenta importante para o progresso científico: os computadores quânticos. Embora ainda seja uma tecnologia emergente, os computadores quânticos têm o potencial de mudar significativamente os tipos de problemas computacionais que podemos resolver de forma eficiente. Este curso trata de entender como essas tecnologias, trabalhando juntas, podem expandir os limites do que é computacionalmente possível.

Nossa missão é clara, mas ambiciosa: fornecer a você o conhecimento conceitual e prático necessário para usar essas tecnologias na resolução de alguns dos problemas mais difíceis do mundo.

Este vídeo descreve os objetivos deste curso e a motivação por trás da combinação de HPC e computação quântica.

HPC

O que é exatamente a computação de alto desempenho? A computação de alto desempenho tornou-se a base para a resolução de problemas computacionais modernos. Não vivemos mais em uma época em que problemas avançados podem ser resolvidos com ferramentas simples como um ábaco ou papel e caneta; em vez disso, estamos trabalhando com questões e conjuntos de dados que exigem um poder computacional enorme.

A área de computação de alto desempenho tem suas raízes no desenvolvimento dos primeiros supercomputadores na década de 1960. Essas eram máquinas especificamente projetadas para resolver problemas científicos e de engenharia em grande escala de forma mais rápida do que os computadores convencionais.

Um dos primeiros supercomputadores amplamente conhecidos foi o CDC 6600 (1964), construído por Seymour Cray, frequentemente chamado de pai da supercomputação. O CDC 6600 era o computador mais rápido de sua época, usando uma arquitetura inovadora que incluía unidades funcionais paralelas e pipeline — conceitos ainda utilizados em HPC hoje em dia.

Cray continuou avançando no campo com o Cray-1 (1976), que introduziu o processamento vetorial — uma técnica que aumentou consideravelmente a velocidade das operações em grandes arrays de dados, tornando-o muito adequado para computação científica.

À medida que as velocidades de processador único começaram a se estabilizar, o HPC evoluiu em direção à computação paralela — usando muitos processadores que trabalham juntos em diferentes partes de um problema. Durante as décadas de 1980 e 1990, as arquiteturas paralelas tornaram-se comuns em HPC. No início dos anos 2000, o HPC migrou para clusters de hardware de commodities, ou seja, servidores comuns conectados por redes de alta velocidade. Essa mudança tornou a supercomputação mais acessível e ampliou o acesso ao HPC.

Ao longo dessa evolução, a IBM® esteve na vanguarda da pesquisa e implementação de HPC. Notavelmente, os supercomputadores IBM Blue Gene foram uma das famílias de supercomputadores mais influentes dos anos 2000 e início de 2010. Foi uma era de enorme crescimento em sistemas massivamente paralelos, dos quais o Blue Gene/Q foi um exemplo, com uma instância (Sequoia) tendo 100.000 nós. O IBM Summit, construído em Oak Ridge, foi o primeiro recurso de HPC a atingir ExaOPS (1,88 de precisão mista) em 2018.

Hoje, estamos na era do exascale, onde os supercomputadores podem realizar 101810^{18} operações por segundo (exaflops). O primeiro supercomputador capaz de atingir esse marco foi o Frontier, localizado no Oak Ridge National Laboratory.

Então, por que precisamos de recursos de computação tão poderosos? Existem problemas críticos para o bem-estar humano que exigem recursos extremos para serem modelados ou resolvidos. Exemplos incluem modelos climáticos, o estudo da estrutura e do movimento do manto terrestre, e simulações de dinâmica de fluidos.

Muitos problemas desse tipo foram abordados por pesquisadores da IBM e colaboradores trabalhando em sistemas IBM. Essa liderança sustentada tem sido amplamente reconhecida. Por exemplo, pesquisadores da IBM já venceram o Prêmio Gordon Bell seis vezes.[1]

HPC é um domínio muito ativo, com barreiras sendo quebradas regularmente. Para uma visão geral das capacidades modernas, consulte esta lista dos 500 supercomputadores mais poderosos.

Computação quântica

A computação quântica é um novo paradigma computacional que não segue simplesmente o desenvolvimento gradual dos computadores clássicos. Ela visa aproveitar as propriedades quânticas de superposição, entrelaçamento e interferência quântica para resolver problemas que seriam intratáveis apenas para computadores clássicos. Não exploraremos os detalhes da singularidade da computação quântica neste curso — veja Fundamentos da informação quântica para mais informações — mas discutiremos como a combinação dessas duas infraestruturas pode levar a avanços na ciência aplicada.

Uma abordagem híbrida

O mais importante a enfatizar é que esses dois paradigmas computacionais não são concorrentes. Estamos em uma era em que fluxos de trabalho otimizados exigem que os dois paradigmas se complementem e que cada tarefa seja alocada onde é tratada de forma mais eficaz. Os computadores quânticos não substituirão os sistemas clássicos; pelo contrário, o futuro da ciência computacional dependerá cada vez mais de fluxos de trabalho híbridos, onde o HPC fornece processamento clássico de alto desempenho e a computação quântica contribui com capacidades únicas. Como profissional, pesquisador ou tecnólogo, entender como combinar essas ferramentas vai te posicionar como líder na próxima era do avanço científico e tecnológico.

Vamos examinar como a computação quântica e o HPC estão posicionados para permitir avanços em uma ampla gama de indústrias, incluindo:

  • Química: Acelerar a identificação de novos medicamentos e materiais.

  • Energia: Desenvolver catalisadores, baterias e soluções de energia limpa aprimorados.

  • Finanças: Modelar riscos, otimizar portfólios e desenvolver novos instrumentos financeiros.

  • IA e Aprendizado de Máquina: Aprimorar o treinamento de modelos, otimização e análise de dados.

Por que estamos indo além do clássico

Os seres humanos tiveram considerável sucesso nas áreas de aplicação acima usando HPC. No entanto, mesmo os supercomputadores mais rápidos do mundo enfrentam dificuldades quando os problemas escalam de forma fatorial ou exponencial com o tamanho do problema. Por exemplo, listar todas as possíveis configurações de 50 partículas dentro de uma molécula complexa leva a configurações que crescem pelo menos fatorialmente, exigindo mais memória do que todos os data centers da Terra combinados poderiam fornecer.

Outro exemplo é planejar uma rota de entrega para 10.000 cidades: o número de rotas possíveis se torna tão grande que, mesmo que cada computador já construído testasse uma rota por microssegundo, o cálculo levaria ordens de magnitude mais tempo do que a idade atual do nosso Sol. Esses totais não são apenas grandes; eles crescem exponencialmente, o que significa que cada partícula ou cidade adicional multiplica o custo computacional muito além de uma escala simples.

Podemos continuar adicionando GPUs, mas manipular quantidades tão vastas de dados já consome megawatts de energia e requer instalações do tamanho de armazéns. Em certo ponto, o hardware clássico não consegue escalar ainda mais de forma prática ou acessível. É por isso que os pesquisadores estão recorrendo aos processadores quânticos, que armazenam informações em superposições e às vezes conseguem abordar diretamente esses problemas de crescimento exponencial, resolvendo casos específicos que máquinas clássicas não conseguem concluir em nenhum prazo razoável.

O HPC eventualmente atinge limites fundamentais ditados pela combinatória e pela termodinâmica. A computação quântica não elimina esses limites, mas às vezes pode contorná-los em cenários muito específicos.

Por que não só quântico?

Se a computação quântica pode contornar certas limitações da computação clássica, por que não depender inteiramente de computadores quânticos? O primeiro e mais óbvio motivo é que os computadores quânticos ainda precisam de máquinas clássicas para funcionar. Tarefas como compilar e alimentar circuitos no processador quântico, armazenar resultados de medições e realizar pós-processamento básico são todas realizadas por sistemas de computação clássica.

Então, por que precisamos adicionalmente de computação de alto desempenho? Existem várias razões. Muitas aplicações atuais e previstas da computação quântica abordam problemas com espaços de busca extremamente grandes. Os algoritmos quânticos geralmente conseguem reduzir significativamente o tamanho desse espaço, mas na prática o problema restante ainda pode ser grande o suficiente para se beneficiar de recursos de HPC. Além disso, existem algoritmos que equilibram os pontos fortes do HPC e da computação quântica, delegando uma parte suficiente do trabalho ao HPC para tornar o algoritmo geral mais robusto contra os efeitos do ruído quântico.

Um exemplo concreto é o algoritmo de diagonalização quântica baseada em amostras (SQD, do inglês sample-based quantum diagonalization). Esse algoritmo, que será explorado na Lição 4, demonstra como HPC e computação quântica podem se complementar na prática. Para mais informações, consulte o curso de Algoritmos de Diagonalização Quântica no IBM Quantum Learning.

Este curso é projetado para profissionais e estudantes que trabalham — ou planejam trabalhar — em estreita colaboração com infraestrutura de computação de alto desempenho (HPC) e/ou computação quântica. Com o rápido progresso nas tecnologias quânticas, antecipamos um futuro próximo em que processadores quânticos serão integrados junto com recursos tradicionais de HPC para obter resultados mais precisos e possibilitar novas abordagens para a resolução de problemas. Este curso é destinado a aprendizes que desejam entender como criar e executar esses fluxos de trabalho híbridos.

Como os participantes podem ter formações diferentes, esperamos dois principais tipos de aprendizes: aqueles já experientes em HPC, mas novatos em computação quântica, e aqueles bem versados em computação quântica, mas novatos em HPC. Para ajudar todos a aproveitar ao máximo este curso, fornecemos recomendações de preparação para ambos os grupos a seguir.

Para quem é novo em HPC

Este curso pressupõe familiaridade com conceitos centrais de HPC, como programação de memória distribuída, passagem de mensagens, modelos de programação paralela e gerenciamento de recursos. Também usaremos ferramentas como o gerenciador de cargas de trabalho Slurm. Embora muitos desses conceitos sejam brevemente introduzidos conforme necessário, ter alguma exposição prévia tornará o material mais acessível. Recursos úteis incluem:

Recursos adicionais também estão disponíveis neste repositório do GitHub.

Para quem é novo em computação quântica

Este curso fará uso de ferramentas e conceitos fundamentais de computação quântica com revisão introdutória mínima. Recomendamos que os participantes tenham pelo menos um conhecimento funcional do Qiskit, familiaridade com portas e circuitos quânticos, e alguma exposição a algoritmos baseados em amostragem. Os recursos listados abaixo devem fornecer uma preparação útil.

  • Guia do IBM Quantum® Composer: Um passo a passo do Composer, uma ferramenta gráfica de programação quântica que permite arrastar e soltar operações para construir circuitos quânticos e executá-los em hardware quântico.
  • Introdução ao Qiskit: Um conjunto de guias para ajudar você a instalar e configurar o Qiskit.
  • Hello world: Um breve tutorial sobre Qiskit no qual você configura e executa seu primeiro programa quântico.
  • Algoritmos de diagonalização quântica: Um curso cobrindo vários tipos de algoritmos quânticos, incluindo SQD, que será usado neste curso.

Recursos adicionais também estão disponíveis neste repositório do GitHub.

Os aprendizes de todas as formações podem achar este guia útil; ele cobre o plugin SPANK para gerenciamento de recursos quânticos e algumas informações sobre o Slurm.

Há algumas maneiras pelas quais a singularidade da computação quântica a torna procedimentalmente diferente dos recursos de computação clássica, de formas relevantes para este curso. Por exemplo, não existe um bom análogo quântico de RAM. As informações são armazenadas e processadas nos estados dos próprios qubits. Embora as medições possam permitir que algumas características dos qubits sejam registradas classicamente, essas medições destroem grande parte da riqueza do estado quântico, incluindo a superposição e o entrelaçamento. Além disso, os recursos de computação quântica não estão atualmente alojados no mesmo nó que outros recursos de HPC, e os usuários de recursos quânticos frequentemente não terão o mesmo nível de controle de agendamento que poderiam ter sobre recursos clássicos de HPC. Essas realidades serão reiteradas nas lições apropriadas. Mas a conclusão aqui é que os computadores quânticos vão mudar o mundo e precisam ser integrados com o HPC, mas não são "apenas mais um" recurso de HPC que pode ser controlado e usado da mesma forma que CPUs, GPUs, etc. Os computadores quânticos mudam a forma como podemos abordar muitos problemas computacionais.

Sobre este curso

Ao final deste curso, você será capaz de fazer mais do que apenas repetir termos técnicos — você entenderá como gerenciar um fluxo de trabalho híbrido moderno que atribui subtarefas específicas a um processador quântico, enquanto CPUs e GPUs lidam com o trabalho restante. Você aprenderá a escrever scripts para jobs que transitam suavemente entre nós clássicos e QPUs, a interpretar os resultados com precisão e a reconhecer onde a aceleração quântica pode realmente melhorar os cálculos (e onde não pode). Igualmente importante, você praticará manter uma mentalidade de crescimento: em um campo novo e em rápida evolução, ninguém aprende tudo de uma vez, e o progresso real vem de iterar, experimentar e fazer perguntas. Este curso está dividido em 5 capítulos, que cobrem os seguintes tópicos:

Resumo do curso

  • Lição 1 - Esta lição cobriu o histórico e a motivação
  • Lição 2 - Recursos computacionais e seu gerenciamento
  • Lição 3 - Modelos de programação que incluem ambientes de computação heterogêneos
  • Lição 4 - Algoritmos quânticos para fluxos de trabalho híbridos, especificamente SQD
  • Lição 5 - Perspectivas e direções futuras

Pense neste curso como seu ponto de lançamento — o lugar onde você constrói o conjunto de ferramentas mentais e a autoconfiança para explorar a fronteira quântico-clássica muito depois de concluir a lição final.

Referências

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