Crédito:IBM
A computação quântica está no limiar de lidar com problemas importantes que não podem ser calculados de forma eficiente ou prática por outros, meios mais clássicos. Ultrapassar esse limite exigirá que construamos, testar e operar computadores quânticos confiáveis com 50 ou mais qubits.
Alcançar esse potencial exigirá grandes avanços tanto na ciência quanto na engenharia. Para ajudar a dar esses saltos, métodos são necessários para testar dispositivos quânticos e comparar comportamentos observados com comportamentos desejados para que o projeto, fabricação, e a operação desses dispositivos pode ser melhorada com o tempo. Em particular, para testar se os resultados medidos observados em um dispositivo quântico são consistentes com o circuito quântico que está sendo executado, é preciso ter a capacidade de calcular as amplitudes quânticas esperadas (números complexos usados para descrever o comportamento dos sistemas) para esses resultados, a fim de testar circuitos arbitrários. Os circuitos quânticos podem ser considerados conjuntos de instruções (portas) que são enviadas a dispositivos quânticos para realizar cálculos.
Essa necessidade nos apresentou um problema. Em cerca de 50 qubits, os métodos existentes para calcular as amplitudes quânticas requerem muitos cálculos para serem práticos, ou mais memória do que está disponível em qualquer supercomputador existente, ou ambos. A IBM Research reuniu uma equipe este ano para estudar este problema, visando circuitos de curta profundidade para sistemas de 49 qubits e além. Publicamos nossa abordagem para resolver esse problema em arXiv:arxiv.org/abs/1710.05867.
Eu fazia parte dessa equipe e tive uma ideia-chave em um momento aparentemente inconseqüente.
Visualizando portas quânticas como uma escova de cerdas
Um qubit, ou bit quântico, é a unidade básica de informação na computação quântica, assim como um pouco na computação clássica. Um qubit, Contudo, pode representar 0 e 1 simultaneamente - na verdade, em combinações ponderadas (por exemplo, 37% -0, 63% -1). Dois qubits podem representar quatro valores simultaneamente:00, 01, 10, e 11, novamente em combinações ponderadas. De forma similar, três qubits podem representar 2 ^ 3, ou oito valores simultaneamente:000, 001, 010, 011, 100, 101, 110, 111. Cinquenta qubits podem representar mais de um quatrilhão de valores simultaneamente, e 100 qubits sobre um quatrilhão ao quadrado.
Quando os qubits são medidos, seus estados quânticos colapsam para apenas um desses valores representados, onde os pesos dos valores - as amplitudes quânticas - definem as probabilidades de observar esses valores. A grande promessa da computação quântica é o potencial de realizar cálculos paralelos sobre muitos resultados possíveis exponencialmente, para produzir estados quânticos onde os resultados desejados dos cálculos têm grandes amplitudes e, portanto, serão observados com alta probabilidade quando os qubits forem medidos.
Meu momento aparentemente inconseqüente veio uma noite enquanto lavava pratos e usava uma escova de cerdas para limpar um copo alto. De repente, ocorreu-me que, se olharmos para as portas aplicadas a um determinado qubit em um circuito de grade, os portões formam um padrão de escova de cerdas onde as cerdas são os portões emaranhados que estão sendo aplicados a esse qubit. Matematicamente, aquela "escova de cerdas" de portas corresponde a um tensor e as cerdas a índices tensores. Um tensor em matemática corresponde essencialmente a um array n-dimensional em ciência da computação.
Essa percepção levou imediatamente à ideia de separar um circuito de grade em "escovas de cerdas individuais, "um para cada qubit, então computar os tensores correspondentes, e, finalmente, combinando os tensores para cada qubit para calcular as amplitudes quânticas para o circuito geral. Na manhã seguinte, descobri como calcular as amplitudes de 64 qubit, circuito de profundidade 10 usando apenas um Gigabyte de memória, separando grupos de 16 qubits. A partir daí, a ideia cresceu em formas mais gerais de particionar circuitos em subcircuitos, simular sub-circuitos separadamente e combinar os resultados dos sub-circuitos em várias ordens para calcular as amplitudes desejadas.
O resultado líquido é um método para calcular amplitudes quânticas que requer ordens de magnitude menos memória do que os métodos anteriores, embora ainda seja comparável ao melhor desses métodos, em termos da quantidade de computação realizada por amplitude. Esses requisitos de memória menores são alcançados usando o fatiamento de tensor em combinação com os insights mencionados acima para calcular as amplitudes de saída dos circuitos em fatias, sem ter que calcular e / ou armazenar todas as amplitudes de uma vez.
Ao calcular amplitudes para resultados medidos, apenas as fatias que correspondem aos resultados reais medidos precisam ser calculadas. Em outras palavras, com a finalidade de avaliar o desempenho de um dispositivo quântico com base nos resultados medidos, uma simulação completa não é necessária e não é necessário incorrer em custos computacionais que são exponenciais no número de qubits. Este é um benefício importante de nossa abordagem.
Contudo, se alguém realmente estiver interessado em realizar simulações completas, nosso método de fatiamento tem um benefício adicional em que as fatias podem ser computadas de forma completamente independente de uma forma constrangedoramente paralela - o que significa que podem ser facilmente separadas - permitindo que as computações sejam distribuídas em uma rede de recursos de computação de alto desempenho fracamente acoplados. Esta possibilidade muda completamente a economia de simulações completas, permitindo a simulação de circuitos quânticos que antes eram considerados impossíveis de simular.
Simulando circuitos de 49 e 56 qubit usando um supercomputador
Nossa equipe de pesquisa entrou em contato com o Laboratório Nacional Lawrence Livermore (LLNL) e a Universidade de Illinois para transformar essa última possibilidade em realidade. Usando o supercomputador Vulcan no LLNL e o Cyclops Tensor Framework originalmente desenvolvido na Universidade da Califórnia, Berkeley para fazer as manipulações de tensores, primeiro escolhemos simular um circuito aleatório universal de 49 qubit de profundidade 27, que foi proposto como uma demonstração da chamada supremacia quântica. Para esta simulação, os cálculos foram divididos em 2 ^ 11 fatias com 2 ^ 38 amplitudes calculadas por fatia; 4,5 Terabytes foram necessários para manter os valores do tensor. Os cálculos de fatias foram constrangedoramente paralelizados em seis grupos de quatro racks de processadores, onde cada grupo de quatro racks compreendia 4, 096 nós de processamento com um total de 64 Terabytes de memória. Esses circuitos de 49 qubit eram considerados impossíveis de simular, porque os métodos anteriores exigiriam oito petabytes de memória, que excede a capacidade dos supercomputadores existentes.
Para nossa próxima demonstração, escolhemos um circuito aleatório universal de 56 qubit de profundidade 23, que teria sido impossível simular usando métodos anteriores porque um exabyte de memória teria sido necessário. Os cálculos foram divididos em 2 ^ 19 fatias de 2 ^ 37 amplitudes cada. Mas, neste caso, optamos por calcular as amplitudes para apenas uma fatia selecionada arbitrariamente para fins de demonstração; 3,0 Terabytes foram necessários para manter os valores do tensor e os cálculos foram realizados em dois racks de 2, 048 nós de processamento com um total de 32 Terabytes de memória.
Além dessas demonstrações, também descobrimos maneiras de particionar o circuito de 49 qubit de modo que apenas 96 Gigabytes de memória sejam necessários para sua simulação, com apenas um pouco mais do que o dobro dos requisitos computacionais. Também descobrimos um particionamento que requer 162 Gigabytes, para o qual quase não há aumento nos requisitos computacionais. Portanto, existe a possibilidade de agora realizar essas simulações em clusters de servidores high-end, em vez de usar supercomputadores.
Os avanços na simulação ajudarão os avanços no hardware quântico
Embora toda a extensão do que agora é classicamente computável usando nossos métodos ainda esteja para ser determinada, está claro que esse avanço nos permitiu cruzar um limiar na simulação de circuitos quânticos de curta profundidade de 49 qubits e maiores. Pragmaticamente, os métodos facilitarão o teste e a compreensão da operação de dispositivos físicos. Eles também irão facilitar o desenvolvimento e depuração de algoritmos de curta profundidade para problemas onde a computação quântica tem o potencial de fornecer uma vantagem real sobre as abordagens convencionais.
Pelo menos para dispositivos quânticos agora em desenvolvimento ou nas pranchetas, a capacidade de realizar essas simulações agora se tornou uma questão de quantidade de recursos de computação que podem ser economicamente adquiridos e não se as simulações podem ser realizadas fisicamente. Por exemplo, no caso de nossa simulação de 56 qubit, uma simulação completa não foi realizada simplesmente porque nossa alocação de tempo no Vulcan havia se esgotado. Não há dúvida de que uma simulação completa de circuito de curta profundidade de 56 qubit agora pode ser realizada fisicamente. Nem os tempos de execução dessas simulações são fisicamente limitados pelos recursos disponíveis em sistemas de computador isolados. Como os cálculos de fatias podem ser embaraçosamente paralelos, eles podem ser distribuídos em redes de sistemas fracamente acoplados com comunicação mínima, permitindo que uma forte escalabilidade seja alcançada até o número de fatias. A simulação quântica baseada em nuvem pode, em última análise, permitir que circuitos quânticos razoavelmente grandes sejam simulados.
Isso significa que não precisamos de computadores quânticos reais? De jeito nenhum. Nós absolutamente precisaremos deles! Dependendo do tipo específico de aplicativo, precisaremos de computadores quânticos físicos para realizar cálculos que exigirão muita memória, ou muito poder de processamento para ser executado economicamente em computadores clássicos. E, em algum ponto, nós realmente teremos evidências de que os computadores quânticos terão uma vantagem sobre os computadores clássicos para algumas aplicações práticas, em um sentido muito real.
Esta não é uma noção artificial de "supremacia quântica". Em vez, estamos agora em um período em que estamos nos preparando para o quantum para tirar o máximo proveito do hardware quântico, recursos de software e engenharia que colocamos online. A simulação já é parte integrante desta fase quântica.
A IBM disponibilizou acesso a simuladores e hardware real de cinco e 16 qubits como parte da experiência IBM Q, que fornece recursos para aprender e experimentar. Também temos um SDK quântico, ou Quantum Information Software Kit (QISKit) para facilitar a construção de circuitos. Para ajudar a aprender mais sobre como começar, fornecemos exemplos de notebooks Jupyter no github.
Conforme a tecnologia do dispositivo avança, entraremos em um período de vantagem quântica, onde uma ampla gama de empresas, cientistas e engenheiros farão pleno uso do hardware e do poder da computação quântica para continuar a resolver problemas cada vez mais difíceis e complexos. Durante esta fase de vantagem quântica, recursos de simulação avançados serão necessários para apoiar a pesquisa e o desenvolvimento de novos algoritmos quânticos, bem como o avanço da própria tecnologia do dispositivo.