paint-brush
A computação quântica precisa de mais engenheiros de softwarepor@ddri
453 leituras
453 leituras

A computação quântica precisa de mais engenheiros de software

por David Ryan11m2024/05/26
Read on Terminal Reader

Muito longo; Para ler

Explore a pilha de software da Computação Quântica, desde linguagens de programação de alto nível até sistemas de hardware (e... comece sua carreira quântica).
featured image - A computação quântica precisa de mais engenheiros de software
David Ryan HackerNoon profile picture
0-item

Este artigo é inspirado na necessidade de mais engenheiros de software na computação quântica. Sem falar nos demais Desenvolvedores, UX Designers, Testadores de QA, Gerentes de Produto e todo o resto do talento que torna possível entregar um produto real a clientes reais. Especialmente produtos de Deep Tech e Frontier Tech, como computação quântica.


Esses produtos e as equipes que tentam criá-los estão sujeitos a uma longa e desafiadora jornada da "Ciência à Tecnologia, da Engenharia ao Produto" . Uma série de mudanças de fase que têm mais a ver com a evolução organizacional (e comunitária) do que apenas com uma progressão linear através da prontidão tecnológica.


Essa evolução não acontece simplesmente. Para aqueles de nós que trabalham nestas equipas, enfrentamos o desafio de reinventar a organização à medida que esta passa de académica para técnica, para algo mais amplamente envolvido com o mercado. O que significa buscar e colaborar com uma comunidade crescente de talentos, bem como evoluir e desenvolver continuamente nossas próprias habilidades.



Isso foi algo que mencionei em minha palestra " Open Source Your Way into a Quantum Computing Career " em 2022 no Open Source Summit da Linux Foundation. E cresceu ainda mais no ano seguinte, com uma mudança notável na indústria em direção à “utilidade quântica” (um termo que usamos para focar na utilidade no mundo real em vez da supremacia teórica ) e alguns projetos massivos começando. Como o investimento de quase US$ 1 bilhão do governo australiano na PsiQuantum para montar um computador quântico comercial na minha cidade natal, Brisbane (dito com um pouco de saudade daqui de Seattle).


Então sim, há muita coisa acontecendo. O que faz com que este seja um ótimo momento para entender do que realmente são compostos esses sistemas quânticos e onde seu talento e curiosidade se encaixam. Incluí algumas recomendações no final sobre como se envolver. E devo acrescentar um rápido aviso de que não existe realmente um paradigma de “computador quântico”. Eu abstraí os elementos mais comuns dos vários sistemas em que trabalhamos para obter valor educacional, mas aceito quaisquer desafios ou refutações à medida que esse modelo evolui ao longo do tempo.

A pilha quântica em resumo

Em muitos aspectos, a pilha de computação quântica corresponde ao padrão de uma pilha moderna de computação de alto desempenho (HPC). E, em menor grau, será familiar o suficiente para qualquer pessoa que trabalhe no espaço de computação em nuvem. Passamos de uma experiência de usuário de alto nível para alguma forma de plataforma que pega nossa carga de trabalho e a converte em algo que será executado no hardware. Simples o suficiente para entendermos.


A nuance é muito mais complicada. Como entender que um computador quântico é tão bom quanto o algoritmo quântico usado. Todas as coisas sofisticadas que você ouviu sobre superposição e emaranhamento na verdade se resumem a uma maneira de executar de forma confiável alguns algoritmos úteis que, no nível do hardware, usam fase e interferência para realizar o "cálculo" que gera uma probabilidade do certo responder. Fazer muito isso cria uma probabilidade maior de obter a resposta certa. Fazer isso requer um algoritmo útil e uma implementação de sistema confiável.


A simulação também desempenha um papel crucial. Você pode ver que isso tem a ver com "economizar em compras caras de hardware", mas esse não é realmente o caso (e muitas vezes é uma pista de que alguém está apenas usando IA para escrever seu clickbait quântico). Contamos com a simulação não apenas para ajudar a desenvolver algoritmos novos e interessantes, mas também para explorar as diversas maneiras de configurar uma carga de trabalho. É também uma parte essencial dos fluxos de trabalho que muitos de nós estamos desenvolvendo, onde um sistema verdadeiramente híbrido usaria recursos de computação clássicos para lidar com a carga de trabalho e o agendamento, junto com a aceleração via GPUs (ou chips mais recentes, como TPUs e LPUs ) e empurrar efetivamente certas cargas de trabalho para a unidade de processamento quântico (QPU), onde um algoritmo quântico pode ser útil para a tarefa em questão. Enquanto alguns, como eu, estão focados na integração da computação quântica com a infraestrutura existente, outros estão dedicados à construção do sistema quântico autônomo mais poderoso. Daí a ampla gama de exploração na indústria.


Se tudo o que você tira disso é que um computador quântico é um sistema especializado que inclui um QPU adicional à pilha de computação existente para executar algoritmos quânticos especializados, então isso é uma vitória. Não são necessários gatos, fendas ou acenos de mão assustadores.



A pilha quântica em detalhes

As seções a seguir passam da camada superior do usuário para a plataforma e, por fim, para a camada de hardware. Embora os limites entre essas camadas possam ser confusos na prática, seguiremos um modelo baseado em uma carga de trabalho ou fluxo de trabalho típico para maior clareza (e sanidade).

1. Linguagens de programação quântica e ferramentas de desenvolvedor

No nível mais alto do sistema quântico está o humano digitando no teclado. As linguagens de programação quântica fornecem o alto nível de abstração necessário para explorar algoritmos quânticos e criar programas de forma gerenciável. A experiência de trabalhar com essas linguagens é ampliada por Kits de Desenvolvimento de Software (SDKs) que oferecem as bibliotecas e ferramentas necessárias para desenvolver software quântico.


Há alguma confusão na distinção entre SDKs e estruturas e Ambientes de Desenvolvimento Integrados (IDEs). Isso é moldado pelas diversas abordagens dos fornecedores quânticos e pela integração de plataformas e verticais de produtos adaptadas a usuários finais específicos. Um pesquisador que deseja acesso local total e controle de nível de pulso será diferente de uma equipe empresarial que desenvolve cargas de trabalho híbridas, que será diferente de uma startup de fintech construída sobre uma plataforma quântica baseada em nuvem. Esse padrão é familiar em projetos empresariais ou baseados em nuvem, mas evoluirá com nuances à medida que o valor comercial dos sistemas quânticos se tornar mais aparente e influenciar o design do produto. Enquanto isso, os SDKs mais comuns e suas linguagens de programação associadas são os seguintes.


2. Algoritmos e aplicações quânticas

Descendo na pilha, chegamos aos algoritmos que estão no centro de qualquer carga de trabalho quântica desejada. À medida que as várias abordagens concorrentes para a criação de computadores quânticos melhoram, também melhoram as oportunidades para aplicações no mundo real. Uma série de bibliotecas e pacotes de software estão sendo construídos para áreas funcionais específicas de uso (como Qiskit Machine Learning da IBM para aprendizado de máquina quântica ou OpenFermion do Google para química quântica), e as bibliotecas existentes de algoritmos quânticos conhecidos estão sendo ampliadas e otimizadas por pesquisadores e fornecedores comerciais (como o Quantum Algorithm Zoo de Stephen Jordan e a biblioteca da Classiq ).


Alguns algoritmos quânticos alcançaram o status de quase celebridade. Outros são adaptações quânticas de algoritmos clássicos ou servem como blocos de construção para cargas de trabalho maiores. Existem até alguns algoritmos quânticos que são funcionalmente inúteis no mundo real (insira aqui uma piada sobre físicos, se tiver coragem), mas são exemplos importantes de vantagem quântica. Para um mergulho mais profundo, consulte meu artigo sobre algoritmos quânticos, mas aqui estão alguns exemplos notáveis.


  • O Algoritmo de Shor é o algoritmo de “quebra de criptografia” proposto como uma forma de fatorar grandes números exponencialmente mais rápido do que qualquer algoritmo clássico conhecido.
  • O algoritmo de pesquisa de Grover é um ponto de partida útil para aceleração algorítmica de pesquisas de dados não estruturados.
  • O algoritmo Deutsch-Jozsa não é tecnicamente útil por si só, mas foi um dos primeiros exemplos de demonstração de vantagem quântica sobre os métodos clássicos.
  • A Transformada Quântica de Fourier (QFT) é a versão quântica da Transformada Rápida de Fourier no centro de muitos algoritmos poderosos.
  • Variational Quantum Eigensolver (VQE) é um algoritmo híbrido que está sendo explorado para aplicações de curto prazo em química quântica, simulação de materiais e problemas de otimização.

3. Simuladores e emuladores quânticos

Simuladores quânticos são ferramentas de software usadas para replicar o comportamento de sistemas quânticos em computadores clássicos. Eles constituem uma parte essencial do nosso fluxo de trabalho, desenvolvendo algoritmos e otimizando cargas de trabalho potenciais (especialmente com simuladores que apresentam o mesmo conjunto de portas ou outros elementos do hardware específico). O papel dos simuladores evoluiu à medida que a própria indústria evolui de pura pesquisa acadêmica para potencial utilidade comercial. A precisão da simulação para hardware quântico específico melhorou a ponto de modelar ruídos e erros exclusivos do sistema. Observe que os exemplos a seguir estão sujeitos a alterações ou obsoletos à medida que os fornecedores ( olhando para você, Qiskit 1.0 ) iteram ou simplificam suas gamas de produtos à medida que o setor amadurece.


4. Plataformas de nuvem quântica

Antes de avançarmos na pilha, precisamos fazer uma pequena observação sobre o tópico das plataformas de nuvem quântica. Na era atual, existem alguns grandes fornecedores com alguns sistemas de hardware em operação. Cada um enfrenta a mesma questão: tentar vender unidades de hardware diretamente, hospedar em seu próprio campus, vender acesso pela Internet ou alguma combinação dos itens acima. E então adicione interconexões privadas, fornecedores de nuvem pública, capacidade soberana e laboratórios de pesquisa à mistura. Não é um dado adquirido que o modelo de plataforma em nuvem provará ser o modelo económico definidor para a computação quântica, embora ocupe a maior atenção fora do sector, dados os padrões de computação em nuvem que vieram antes.


Dito tudo isso, preste atenção também às empresas que optam por não provisionar seus sistemas para acesso à plataforma em nuvem. Na Quantum Brilliance, meu foco estava em clusters de computação de borda altamente paralelizados usando a abordagem Diamond NV-center que permite QPUs de formato pequeno e temperatura ambiente (com o primeiro ). Ao falar com outras startups quânticas, os casos de uso para todas as formas de implantação fixa ou móvel parecem aplicar-se, e há muito trabalho interessante (e muitas vezes não divulgado) sendo feito fora da web. Entre aqueles acessíveis online, aqui estão alguns para assistir.


5. Compiladores quânticos e otimização de circuitos

A função do compilador quântico é traduzir os programas quânticos de alto nível em instruções de baixo nível a serem executadas no hardware quântico. Embora os detalhes estejam além do escopo deste artigo, o processo envolve decomposição de portas (para combinar as portas abstratas com os qubits físicos), mapeamento e agendamento (para combinar os qubits lógicos do algoritmo com os qubits físicos) e detalhes específicos do fornecedor e seu sistema específico (como fidelidade, taxas de erro e conectividade).


Para simplificar esta pilha de exemplos, colocaremos neste nível as várias formas de otimização de circuitos quânticos que aplicam técnicas para minimizar o número de portas quânticas, profundidade ou outros elementos de recursos sem alterar a função subjacente. Isso pode ocorrer antes da compilação, durante o processo de compilação ou posteriormente como parte de um ajuste fino do processo de hardware. Para maior clareza, vamos agrupá-lo aqui em nosso fluxo de trabalho. Aqui estão alguns exemplos que você deve conhecer.


6. Software de correção de erros quânticos

O papel da correção quântica de erros na era atual de sistemas quânticos “ruidosos” é especialmente importante. A tal ponto que existem empresas especializadas nesta camada da pilha. A necessidade dessas empresas e o esforço mais amplo de correção de erros se deve à natureza frágil dos sistemas quânticos. Embora os computadores quânticos supercondutores dominem a imaginação popular, a correção de erros é vital em todos os métodos (íon aprisionado, fotônico, centro NV, etc.).


Independentemente do método de geração de qubit, surgem desafios na preparação, execução da carga de trabalho e medição. A decoerência afeta todos os métodos, juntamente com erros de porta, erros de medição e qualidade individual de qubit. A correção quântica de erros é compreensivelmente complexa, mas pode incorporar técnicas como redundância de sistema (espalhar as informações quânticas por vários qubits), gerenciamento de síndrome (usando qubits auxiliares para detectar erros sem perturbar as informações codificadas) e traçar o perfil do desempenho de qubits individuais ou agrupados. ao longo do tempo. Embora ainda sejam importantes se a era da computação quântica verdadeiramente tolerante a falhas for alcançável, eles são um tópico interessante de pesquisa na atual era Noisy Intermediate-Scale Quantum (NISQ) em que nos encontramos. .


7. Sistemas de controle quântico

O sistema de controle quântico é responsável por gerenciar e controlar as operações do hardware quântico. Ele lida com tarefas no nível de hardware, como calibração, modelagem de pulso e controle de qubit. Dadas as diferentes formas de computação quântica em desenvolvimento e a gama de implementações de sistemas quânticos monolíticos ou em rede, podemos considerar o termo “sistema de controle quântico” mais inclusivo do que específico. Da mesma forma, não existe uma definição rígida e rápida de um “sistema operacional quântico”.


Isto provavelmente mudará com o tempo, à medida que a fase de desenvolvimento passar das fases de “Ciência para Tecnologia” e de “Engenharia para Produto” . Especialmente onde é desejável um alinhamento mais próximo com os padrões de produtos existentes e a terminologia dos usuários e/ou mercado. Na maior parte, o sistema de controle será um recurso interno (algo entre um sistema operacional e firmware), mas os seguintes fornecedores e produtos são notáveis.


8. Hardware quântico

A camada final da nossa pilha é o próprio hardware quântico. É útil lembrar que não existe uma maneira única ou correta de gerar e trabalhar com qubits. Também não existe uma abordagem clara de liderança de mercado. Cada método ou abordagem tem os seus próprios desafios e pode revelar-se que existem múltiplas abordagens com benefícios para cenários específicos.


A camada de hardware é o que muitos pensam quando ouvem o termo “computação quântica”, da mesma forma que os primeiros dispositivos de computação de tubos e válvulas definiam a terminologia e a linguagem pela pura força da interação mecânica. Com o tempo, interruptores e cartões perfurados deram lugar a instruções e programas, que por sua vez foram ampliados pela memória e pelo armazenamento e depois conectados por redes e servidores.


Esses padrões estão presentes na pesquisa e desenvolvimento de dispositivos quânticos e, como podemos ver acima, as camadas de uma pilha quântica de exemplo oferecem oportunidade para que a experiência existente em cada camada forneça ideias novas e interessantes. Esperançosamente, de novas maneiras que talvez nunca tivéssemos considerado, dadas as nuances que cada tecnologia subjacente e camada da pilha fornecem.

DR;

O trabalho realizado por físicos quânticos, engenheiros elétricos e eletrônicos, fabricantes e todos os tipos de manipuladores de átomos não é apenas apoiado, mas possibilitado por aqueles de nós que disputam os bits e (zetta)bytes. É um ótimo momento para se envolver.


Um bom começo para novos alunos é o Black Opal da Q-CTRL , o MOOC de alto nível da Universidade de Delft no edX e o caminho inevitável para o Qiskit da IBM . Para aqueles que usam C#, esta introdução da Microsoft dá uma rápida olhada em sua abordagem com o Q# e como ela é implementada no ecossistema Azure. E vale a pena marcar a biblioteca de algoritmos Classiq .


Em breve farei um artigo dedicado ao aprendizado quântico para engenheiros de software, pois esse é um tópico sobre o qual recebo emails quase semanalmente desde minha palestra no Open Source Summit (e as demissões contínuas de talentos de engenharia que ocorreram desde então). Embora qualquer mudança no setor seja difícil para as pessoas e famílias afetadas pelo frio da economia, pode, por sua vez, ser uma oportunidade para desbloquear o talento (e os planos de carreira) que, de outra forma, ficariam bloqueados. Portanto, se você está pensando em explorar mais, faça-o e envie-me uma mensagem se houver algo que eu possa fazer para ajudar . E não se esqueça de assinar o boletim informativo Product In Deep , onde nos aprofundamos na estratégia e na habilidade necessária para enviar produtos reais nos domínios Deep Tech e Frontier Technology.