An´alise e Validac¸˜ao das Simulac¸˜oes Quˆanticas Paralelas e
Distribu´ıdas no Ambiente VPE-qGM
Murilo F. Schmalfuss1, Anderson B. de Avila1, Renata H. S. Reiser1, Maur´ıcio L. Pilla1
1Centro de Desenvolvimento Tecnol´ogico – Universidade Federal de Pelotas (UFPel)
Caixa Postal 354 – 96.010-900 – Pelotas – RS – Brazil {mfschmalfuss,abdavila,reiser,pilla}@inf.ufpel.edu.br Abstract. This article presents an analysis of the results of quantum simulation times in the VPE-qGM enviroment. Hadamards transformations performed in qGMC-Analyzer library were parallelized with OpenMP and JCUDA in
VirD-GM. The results of the simulations were compared with two other quantum si-mulators, the Libquantum library and the QuiDDPro.
Resumo. Este artigo apresenta uma an´alise dos resultados dos tempos de simulac¸˜oes quˆanticas no ambiente VPE-qGM. As simulac¸˜oes analisadas foram transformac¸˜oes Hadamards executadas na biblioteca qGMC-Analyzer
paraleli-zada com OpenMP e em GPUs atrav´es da implementac¸˜ao em JCUDA na VirD-GM. Os resultados das simulac¸˜oes foram comparados com outros dois simula-dores quˆanticos, a biblioteca Libquantum e o QuiDDPro.
1. Introduc¸˜ao
A Computac¸˜ao Quˆantica (CQ) ´e um paradigma fundamentado nos fenˆomenos da mecˆanica quˆantica [Nielsen and Chuang 2000]. A aplicac¸˜ao destes concei-tos na computac¸˜ao permite alcanc¸ar um desempenho que pode chegar a ser exponencialmente maior do que computadores cl´assicos. Apesar de todos os esforc¸os, v´arios desafios t´ecnicos limitam os sistemas atuais `a apenas alguns bits quˆanticos [Steeb and Hardy 2004].
Devido `a indisponibilidade de hardware quˆantico, o estudo e desenvolvimento de aplicac¸˜oes na CQ usualmente ´e feito estritamente pela especificac¸˜ao matem´atica das computac¸˜oes ou por meio de ferramentas de simulac¸˜ao. Este ´ultimo caracteriza a abor-dagem mais pr´atica, entretanto a complexidade computacional associada `a simulac¸˜ao de sistemas quˆanticos a partir de computadores cl´assicos limita o tamanho dos sistemas que podem ser simulados.
O objetivo deste trabalho ´e analisar e validar os resultados obtidos com as implementac¸˜oes paralela e distribu´ıda das bibliotecas respons´aveis pela gerac¸˜ao dos re-sultados das transformac¸˜oes quˆanticas, comparando com rere-sultados obtidos com o estado da arte dos simuladores quˆanticos.
Este artigo est´a dividido da seguinte forma. Conceitos b´asicos de Computac¸˜ao Quˆantica s˜ao apresentados na Sec¸˜ao 2. O ambiente em que este trabalho foi realizado, o VPE-qGM, ´e discutido na Sec¸˜ao 3. Ap´os, a implementac¸˜ao da qGMC-Analyzer ´e
deta-lhada na Sec¸˜ao 4 e os resultados s˜ao discutidos na Sec¸˜ao 6. Trabalhos relacionados s˜ao discutidos na Sec¸˜ao 5. Finalmente, as conclus˜oes e trabalhos futuros s˜ao analisados na Sec¸˜ao 7.
2. Conceitos B´asicos de CQ
Na CQ, o qubit ´e a unidade b´asica de informac¸˜ao, definido por um vetor de estado, unit´ario e bidimensional, genericamente descrito, na notac¸˜ao de Di-rac[Nielsen and Chuang 2000], pela express˜ao|ψi = α|0i + β|1i.
Os coeficientesα e β s˜ao n´umeros complexos correspondentes `as amplitudes dos respectivos estados, respeitando a condic¸˜ao de normalizac¸˜ao |α|2 + |β|2 = 1, a qual
garante a unitariedade do vetor de estado do sistema, nesta express˜ao representado por (α, β)t. As amplitudes permitem que o sistema represente, simultaneamente, estados
distintos, configurando um estado de superposic¸˜ao quˆantica, caracter´ıstica que origina o fenˆomeno do paralelismo quˆantico [Nielsen and Chuang 2000].
O espac¸o de estados de um sistema quˆantico de m´ultiplos qubits ´e compreendido pelo produto tensorial do espac¸o de estados de seus sistemas componentes. Considerando um sistema quˆantico de dois qubits,|ψi = α|0i + β|1i e |ϕi = γ|0i + δ|1i, o espac¸o de estados ´e composto pelo produto tensor|ψi ⊗ |ϕi, ou seja α|00i + β|01i + γ|10i + δ|11i. A mudanc¸a de estado em um sistema quˆantico ´e feita por transformac¸˜oes quˆanticas unit´arias, associadas a matrizes quadradas ortonormalizadas de ordem 2N, sendo N a
quantidade de qubits da transformac¸˜ao.
3. Ambiente VPE-qGM
O ambiente VPE-qGM (Visual Programming Environment for the qGM Mo-del) [Maron et al. 2013], fundamentado no modelo de processos qGM (Quantum Ge-ometric Machine Model) [Reiser and Amaral 2010], ´e constitu´ıdo de construtores para modelagem e simulac¸˜ao gr´afica de aplicac¸˜oes quˆanticas. De acordo com o modelo qGM, a noc¸˜ao de portas quˆanticas pode ser substitu´ıda pelo conceito de sincronizac¸˜ao de pro-cessos elementares (PEs).
No ambiente VPE-qGM, o PE ´e um elemento estruturado por trˆes atributos: (i) Ac¸˜ao: corresponde `as transformac¸˜oes quˆanticas aplicadas a diferentes qubits em um mesmo instante de tempo; (ii) Parˆametros: cont´em dados auxiliares associados `a definic¸˜ao das transformac¸˜oes quˆanticas; (iii) Posic¸˜ao: referente `a posic¸˜ao de escrita em um espac¸o de mem´oria global e compartilhada, na qual ´e armazenado o resultado do PE. Neste contexto, uma transformac¸˜ao quˆantica, aplicada `a N qubits, pode ser mo-delada pela sincronizac¸˜ao de 2N PEs, cujas parametrizac¸˜oes satisfazem as condic¸˜oes
equivalentes `a definic¸˜ao dos vetores componentes da matriz (transformac¸˜ao unit´aria ou de medida) associada.
Assim, durante a simulac¸˜ao, ocorre a execuc¸˜ao (sequencial ou s´ıncrona) dos PEs, os quais tˆem suas correspondentes computac¸˜oes efetuadas pela biblioteca qGMC
-Analyzer, manipulando os dados presentes nas posic¸˜oes de mem´oria e simulando o com-portamento de um sistema quˆantico.
4. Biblioteca qGM
C-Analyzer
A biblioteca de execuc¸˜ao dos PEs desenvolvida neste trabalho, denominada qGMC
-Analyzer, implementa otimizac¸˜oes que controlam o aumento exponencial dos vetores componentes das Matrizes de Definic¸˜ao do Operador (M DOs) de m´ultiplos qubits, con-forme introduzido em [Maron et al. 2011].
Os resultados relacionados comprovam a reduc¸˜ao no consumo de mem´oria du-rante a simulac¸˜ao, suportando algoritmos com 11 qubits. Entretanto, o tempo total de simulac¸˜ao obtido permanece elevado, devido a quantidade de operac¸˜oes necess´arias para simular uma transformac¸˜ao quˆantica.
Tendo em vista que o crescimento da complexidade algoritmica se d´a de forma ex-ponencial, abordagens paralelas e distribu´ıdas foram estudadas para otimizar os c´alculos envolvidos na simulac¸˜ao de uma transformac¸˜ao quˆantica.
4.1. Funcionamento da Biblioteca
A execuc¸˜ao de PEs considera uma estrat´egia de gerac¸˜ao dinˆamica dos valores associados aos correspondentes vetores componentes daM DO. Para isso, as matrizes associadas `as transformac¸˜oes quˆanticas b´asicas s˜ao substitu´ıdas por um conjunto de func¸˜oes elementa-res. Para a transformac¸˜ao Hadamard (H), por exemplo, aM DO est´a caracterizada pela func¸˜ao elementar abaixo, onde a matriz correspondente est´a representada `a esquerda e a func¸˜ao `a direita 1 √ 2 1 1 1 −1 H(linha, pos) = ( 1 √ 2, para linha = 0 −1pos √ 2 , para linha = 1 (1)
Todas as transformac¸˜oes suportadas pela biblioteca qGMC-Analyzer s˜ao
defini-das de forma an´aloga, evitando o armazenamento de estruturas de dados matriciais. Utilizando-se essas func¸˜oes s˜ao constru´ıdas pilhas que armazenam os c´alculos parciais das transformac¸˜oes. Por fim, todos os valores da ´ultima matriz s˜ao multiplicados pelos valores contidos na pilha, gerando os valores resultantes.
4.2. Paralelismo com OpenMP
A biblioteca OpenMP possui um conjunto de rotinas e diretivas para a implementac¸˜ao do paralelismo. Ela utiliza o modelo fork-join: o c´odigo ´e executado sequencialmente por uma ´unica thread at´e encontrar uma regi˜ao paralela. Ent˜ao, o trabalho ´e distribu´ıdo entre um pool de threads como se fossem realizados forks. Ap´os, as threads s˜ao sincronizadas, de forma equivalente ao join.
O algoritmo divide os operadores em listas, no caso de uma Hadamard de 15 qubits, s˜ao criadas trˆes listas, H⊗15 ≡ [H⊗5]⊗ [H⊗5]⊗ [H⊗5]. O c´alculo dos valores
´e gerado iterando a ´ultima lista com os valores contidos numa pilha. Na implementac¸˜ao paralela, cada thread possui uma c´opia privada da pilha, e as mem´orias de escrita e leitura s˜ao compartilhadas entre todas as threads, pois cada valor calculado ´e escrito em uma posic¸˜ao diferente da mem´oria.
A divis˜ao das threads ´e feita de forma a manter juntos os valores necess´arios para o c´alculo de uma posic¸˜ao. Para isso as iterac¸˜oes s˜ao divididas levando em conta o n´umero de colunas da primeira lista envolvida na transformac¸˜ao. Nos casos em que a transformac¸˜ao possui apenas uma lista, as threads s˜ao divididas de forma `a calcular os valores referenters `a pr´opria lista, para que a distribuic¸˜ao do trabalho seja balanceada.
A definic¸˜ao do n´umero de threads utilizadas pela biblioteca ´e definida por uma v´ariavel de ambiente (OMP NUM THREADS), gerando uma implementac¸˜ao mais
flex´ıvel. Ou seja, dependendo da transformac¸˜ao quˆantica, tem-se um controle da granulo-sidade visando melhor desempenho da biblioteca.
5. Trabalhos Relacionados
Esta sec¸˜ao apresenta os trabalhos de pesquisa relacionados, mostrando as aborda-gens utilizadas por outras frentes de pesquisa. Existem v´arios trabalhos relacio-nados, dentre os quais se destacam o m´odulo VirD-GM (Virtual Distributed Ge-ometric Machine) [Avila et al. 2014] do ambiente VPE-qGM, a biblioteca Libquan-tum[Butscher and Weimer 2003] e o simulador quˆantico QuiDDPro [Viamontes 2007]. 5.1. VirD-GM
A VirD-GM ´e um m´odulo do ambiente VPE-qGM respons´avel pelo gerenciamento trans-parente da simulac¸˜ao distribu´ıda. Ela ´e desenvolvida em Java e atualmente conta com suporte `a simulac¸˜ao sequencial em CPUs e massivamente paralela atrav´es de GPUs, im-plementada utilizando a interface JCUDA.
A execuc¸˜ao distribu´ıda de algoritmos quˆanticos na VirD-GM ´e controlada por trˆes m´odulos principais:
(i)A VirD-Loader, que ´e respons´avel pela interpretac¸˜ao de arquivos descritores contendo o algoritmo a ser simulado e seu vetor de estado inicial;
(ii)Escalonamento e controle de fluxo s˜ao tratados pelo m´odulo VirD-Launcher; (iii)O m´odulo VirD-Exec controla a comunicac¸˜ao e transferˆencia de dados entre os clientes de execuc¸˜ao, nomeados VirD-Clients.
A simulac¸˜ao em GPUs, auxiliados pelo VirD-GM, consiste em buscar uma distribuic¸˜ao equilibrada das tarefas atrav´es dos VirD-Clients.
5.2. Libquantum
A biblioteca Libquantum utiliza uma abordagem paralela utilizando OpenMP e otimiza a representac¸˜ao dos valores, omitindo os estados base cujas amplitudes s˜ao zero. Esta abordagem requer que os estados de base diferentes de zero sejam armazenadas assim como o n´umero total de estados diferentes de zero. A forma como ´e projetada a biblioteca, n˜ao d´a suporte a simulac¸˜ao de emaranhamento quˆantico, o que reduz a complexidade da biblioteca.
5.3. QuiDDPro
O simulador QuiDDPro representa os estados quˆanticos multidimensionais e as transformac¸˜oes quˆanticas atrav´es de uma estrutura denominada QuIDD (Quantum In-formation Decision Diagram), definidos por blocos de valores. Os valores seguem padr˜oes, sendo poss´ıvel represent´a-los de forma compacta reduzindo os tempos de acesso `a informac¸˜ao e consequentemente o tempo de simulac¸˜ao e o consumo de mem´oria. O QuiDDProtamb´em n˜ao suporta a simulac¸˜ao de emaranhamento quˆantico.
6. Resultados
Para a realizac¸˜ao dos testes foram simuladas transformac¸˜oes Hadamards de 14 a 21 qu-bits, abrangendo as quatro abordagens mencionadas no trabalho, todas deterministicas.
O n´umero de qubits utilizados nas simulac¸˜oes foi limitado pela expans˜ao exponencial do espac¸o de mem´oria. A medida de desempenho analisada foi o tempo m´edio de simulac¸˜ao, para cada caso de teste foram realizadas 15 simulac¸˜oes. A m´aquina utilizada para os testes possui as seguintes configurac¸˜oes: Intel Core i7-3770, 8 GiB RAM e GPU NVidia GT640. Os resultados obtidos podem ser observados na Tabela 1, as simulac¸˜oes executadas na qGMC-Analyzer e na VirD-GM tiveram tempos de execuc¸˜ao mais elevados que as
outras abordagens, no entanto este resultado j´a era esperado. Devido a forma como a representac¸˜ao do vetor de estados ´e implementada no QuIDDPro e na Libquantum os tempos de acesso e o n´umero de operac¸˜oes realizadas s˜ao muito menores. O desvio padr˜ao das simulac¸˜oes foram omitidos da tabela por estarem todos abaixo de 1,6%.
Tabela 1. Tempos de simulac¸ ˜ao
Qubits Tempos de Simulac¸˜ao (s)
qGMC-Analyzer VirD-GM (GPU) Libquantum QuiDDPro
14 1,1372 1,679 0,005067 0,029335 15 4,6993 2,083 0,006733 0,031468 16 14,779 2,319 0,008667 0,033068 17 59,78 7,469 0,016133 0,034135 18 245,16 23,604 0,033267 0,036802 19 1721,21 86,404 0,089133 0,037068 20 NE1 345,433 0,199667 0,038402 21 NE1 1364,844 0,420133 0,040002
1N˜ao executado devido ao elevado tempo de simulac¸˜ao necess´ario
Figura 1. Gr ´afico dos resultados das simulac¸ ˜oes nas quatro abordagens.
Ainda nestes resultados ´e poss´ıvel observar que os tempos de simulac¸˜ao para 14 qubitsna qGMC-Analyzerforam menores que na VirD-GM. Sendo a VirD-GM um
geren-ciador de simulac¸˜ao distribu´ıdo, a c´opia de grande volume de dados para um n´umero de operac¸˜oes n˜ao muito alto interfere no desempenho da simulac¸˜ao.
A Figura 1 permite analisar a escalabilidade das bibliotecas. As abordagens utili-zadas pelo ambiente VPE-qGM apresentaram um crescimento exponencial no tempo de simulac¸˜ao, enquanto as outras abordagens, Libquantum e QuiDDPro, apresentaram um crescimento linear. O ambiente VPE-qGM se prop˜oe a ser um ambiente de simulac¸˜ao quˆantica completo, simulando os efeitos de superposic¸˜ao quˆantica e emaranhamento quˆantico, portanto, a forma como s˜ao realizados os c´alculos, calculando paralelamente todo o estado, torna a simulac¸˜ao mais complexa.
7. Conclus˜oes
Os resultados obtidos pela biblioteca qGMC-Analyzerainda est˜ao distantes do
estado-da-arte em simuladores quˆanticos, por´em o objetivo do ambiente VPE-qGM ´e ser flex´ıvel e permitir que o usu´ario possa modelar e simular seus circuitos de forma gr´afica, oferecendo recursos para a criac¸˜ao de novas portas quˆanticas. Estas caracter´ısticas representam a vantagem do ambiente em relac¸˜ao `as outras bibliotecas, que oferecem apenas portas j´a definidas e a modelagem dos circuitos ´e feita de forma textual.
Com a abordagem distribu´ıda da VirD-GM e a paralela da qGMC-Analyzer, um
modelo de computac¸˜ao heterogˆenea englobando as duas abordagens ´e justificada para otimizar os tempos de simulac¸˜oes. Transformac¸˜oes que necessitam um elevado n´umero de operac¸˜oes seriam destinadas as GPUs enquanto as demais transformac¸˜oes seriam dis-tribu´ıdas entre as CPUs. O desafio desta proposta ´e o controle do volume de dados trans-portados para cada m´aquina do cluster, pois para cada nodo ´e necess´ario copiar toda a mem´oria, ocasionando um grande fluxo de dados, limitando o desempenho.
Para trabalhos futuros busca-se uma otimizac¸˜ao da estrutura que representa o vetor de estados, buscando padr˜oes para a simplificac¸˜ao da estrutura.
Referˆencias
Avila, A., Maron, A., Reiser, R., Pilla, M., and Yamin, A. (2014). Gpu-aware distributed quantum simulation. In Proc. of the SAC’14, pages 1–6.
Butscher, B. and Weimer, H. (2003). Simulation eines quantencomputers.
Maron, A., ´Avila, A., Reiser, R., and Pilla, M. (2011). Introduzindo uma nova abordagem para simulac¸˜ao quˆantica com baixa complexidade espacial. In Anais do DINCON 2011, pages 1–6. SBMAC.
Maron, A., Reiser, R., and Pilla, M. (2013). High-performance quantum computing si-mulation for the quantum geometric machine model. In Proc. of CCGRID 2013, pages 1–8.
Nielsen, M. A. and Chuang, I. L. (2000). Quantum Computation and Quantum Informa-tion. Cambridge University Press.
Reiser, R. and Amaral, R. (2010). The quantum states space in the qGM model. In Proc. of the III WEICIQ, pages 92–101, Petr´opolis/RJ. LNCC Publisher.
Steeb, W. H. and Hardy, Y. (2004). Problems and solutions in Quantum Computing and Quantum Information. World Scientific, New Jersey.
Viamontes, G. (2007). Efficient Quantum Circuit Simulation. Phd thesis, The University of Michigan.