Distribuídas no Ambiente VPE-qGM

Documentos relacionados
SIMULAÇÃO DA TRANSFORMADA QUÂNTICA DE FOURIER COM O SIMULADOR ZENO

de petróleo. Um novo domínio chamado computação de propósito geral em processadores gráficos (GPGPU) surgiu quando os pipelines de gráficos de

Introdução à Computação Quântica

Introdução a Circuitos Quânticos

Especificando uma Arquitetura Básica para Conversão de Circuitos Quânticos para o Modelo qgm

Aluno de Pós-Graduação em Engenharia de Software para Dispositivos Móveis pela UNINTER

Introdução OpenMP. Nielsen Castelo Damasceno

OpenMP: Variáveis de Ambiente

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES

Uma ferramenta de simulação numérica e simbólica de circuitos quânticos

Implementando Algoritmo de Deutsch

Computadores e Programação (DCC/UFRJ)

Simulação Distribuída de Algoritmos Quânticos via GPUs

Ferramentas para Programação em Processadores Multi-Core

Arranjo de Processadores

Sparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile?

UFCG IQuanta DSC. Cheyenne R. G. Isidro Bernardo Lula Júnior

A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES

Aplicação de Processamento Paralelo com GPU a Problemas de Escoamento Monofásico em Meios Porosos. Bruno Pereira dos Santos Dany Sanchez Dominguez

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

Fundamentos da Teoria Quântica da Informação

Um estudo de Caso para o Modelo qgm: Interferômetro de Mach-Zehnder

OpenMP. Slides baseados em tutorial de Tim Mattson da Intel

Universidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02

Modelo de Programação Paralela

Estudo de Desempenho Sobre a Biblioteca Int-Haar

UM ESTUDO COMPARATIVO DE DESEMPENHO UTILIZANDO PROGRAMAÇÃO SEQUENCIAL VS PARALELA APLICADO EM ALGORITMOS GENÉTICOS 1

Paradigmas de Processamento Paralelo na Resolução do Fractal de Mandelbrot

1.1 Descrição do problema A programação genética (PG) é uma meta-heurística utilizada para gerar programas de computadores, de modo que o computador

Aula 01. Murilo V. G. da Silva DINF/UFPR

Sistema Operacional. Etapa

Uma Introdução à Computação Quântica

SSC510 Arquitetura de Computadores. 6ª aula

Palavras-chave: (banco de dados; prontuário médico; paciente); deve vir logo abaixo do resumo

4 Cálculo de Equivalentes Dinâmicos

Análise de Desempenho da Paralelização do Problema de Caixeiro Viajante

Sistemas Operacionais. Conceitos de Hardware

Construtores de Sicronização em OpenMP

Sistemas Distribuídos

SISTEMAS OPERACIONAIS

Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Filipo Mór

Matéria: Sistema Computacional - SC. Prof.: Esp.: Patrícia Dias da Silva Peixoto

Os efeitos do paralelismo e relações de thesaurus em uma ferramenta de busca em bases textuais

Parte I Multiprocessamento

Programação de Alto Desempenho - 2. Prof: Carla Osthoff

Sistemas Operacionais. Tipos de SO

Adaptação Dinâmica desistemas Distribuídos p.1/54

4 Implementação do Gerador de arquivos VRML - VRMLGer

Técnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot

Introdução a Sistemas Operacionais. Adão de Melo Neto

Sistemas Operacionais Aula 3

Sistemas Distribuídos e Paralelos

BLOCKSIM. Simulador de Sistemas Dinâmicos por Diagrama de Blocos

Memória Compartilhada e Distribuída. _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP

18/10/2010. Unidade de Controle Controle. UC Microprogramada

Computação Paralela (CUDA)

PARALELIZAÇÃO DE ALGORITMO DE INSPEÇÃO DE ROTAS UTILIZANDO PERMUTAÇÃO LEXICOGRÁFICA 1

SUMÁRIO. 1.3 CONCEITOS DE SISTEMA OPERACIONAL Processos Arquivos O shell 42

ANÁLISE DE SISTEMAS. Diagrama de atividades. por. Antônio Maurício Pitangueira

Definindo melhor alguns conceitos

Processamento de áudio em tempo real utilizando dispositivos não convencionais:

ANÁLISE DE DESEMPENHO COM A PARALELIZAÇÃO DO CÁLCULO DE NÚMEROS PERFEITOS 1

SSC0112 Organização de Computadores Digitais I

Introdução ao OpenMP

INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Função e Estrutura. Introdução Organização e Arquitetura. Organização e Arquitetura

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS

1 Introdução. I know because I must know. It's my purpose. It's the reason I'm here. (The Matrix) 1.1 Objetivos do trabalho

Mini-curso de Spintrônica

Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core

Apresentação. Sistemas Operacionais. Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D.

Paralelismo em Computadores com Tecnologia Multicore

Circuitos Quânticos: uma introdução

Redes P2P Gnutella e Simuladores

Introdução à Computação: Máquinas Multiníveis

Introduzindo um Ambiente de Programação Visual para a Máquina Geométrica

Uma Arquitetura de Co-Processador para Simulação de Algoritmos Quânticos em FPGA

As principais contribuições do presente trabalho são as seguintes:

Chapter 4: Threads. Operating System Concepts 8th Edition

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

SSC0611 Arquitetura de Computadores

Alocação de máquinas virtuais no CloudSim e OpenStack Symphony

é a saida do melhor individuo. A configuração de parâmetros da

4. Algoritmos de Busca em Vetores

Arquitetura e Organização de Computadores

Lista - RAID. c) Redundância d) Capacidade

6 Análise Dinâmica. 6.1 Modelagem computacional

Subsistemas de E/S Device Driver Controlador de E/S Dispositivos de E/S Discos Magnéticos Desempenho, redundância, proteção de dados

Introdução à Computação Quântica

Utilização do solidthinking Embed como interface gráfica para a construção de modelos de processos termofluidodinâmicos

Arquitetura de Computadores. Processamento Paralelo

4 Cálculo de Equivalentes Dinâmicos

Mecânica Quântica para Sistemas Fechados

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado)

A Revolução da Computação Quântica

2, ao medirmos um observável deste estado que possui autovetores 0 e 1, obtemos o resultado 0 com probabilidade α 2, e 1 com probabilidade β 2.

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

SSC510 Arquitetura de Computadores 1ª AULA

Paralelismo de dados. (execução de simultaneidade) Tipo de arquitetura paralela SIMD. SIMD (Single Instruction Multiple Data)

Transcrição:

Análise e Validação das Simulações Quânticas Paralelas e Distribuídas no Ambiente VPE-qGM Murilo F. Schmalfuss 1, Anderson B. de Avila 1, Renata H. S. Reiser 1, Maurício L. Pilla 1 1 Centro de Desenvolvimento Tecnológico 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 qgm C -Analyzer library were parallelized with OpenMP and JCUDA in VirD- GM. The results of the simulations were compared with two other quantum simulators, the Libquantum library and the QuiDDPro. Resumo. Este artigo apresenta uma análise dos resultados dos tempos de simulações quânticas no ambiente VPE-qGM. As simulações analisadas foram transformações Hadamards executadas na biblioteca qgm C -Analyzer paralelizada com OpenMP e em GPUs através da implementação em JCUDA na VirD- GM. Os resultados das simulações foram comparados com outros dois simuladores quânticos, a biblioteca Libquantum e o QuiDDPro. 1. Introdução A Computação Quântica (CQ) é um paradigma fundamentado nos fenômenos da mecânica quântica [Nielsen and Chuang 2000]. A aplicação destes conceitos na computação permite alcançar um desempenho que pode chegar a ser exponencialmente maior do que computadores clássicos. Apesar de todos os esforços, vários desafios técnicos limitam os sistemas atuais à apenas alguns bits quânticos [Steeb and Hardy 2004]. Devido à indisponibilidade de hardware quântico, o estudo e desenvolvimento de aplicações na CQ usualmente é feito estritamente pela especificação matemática das computações ou por meio de ferramentas de simulação. Este último caracteriza a abordagem mais prática, entretanto a complexidade computacional associada à simulação de sistemas quânticos a partir de computadores clássicos limita o tamanho dos sistemas que podem ser simulados. O objetivo deste trabalho é analisar e validar os resultados obtidos com as implementações paralela e distribuída das bibliotecas responsáveis pela geração dos resultados das transformações quânticas, comparando com resultados obtidos com o estado da arte dos simuladores quânticos. Este artigo está dividido da seguinte forma. Conceitos básicos de Computação Quântica são apresentados na Seção 2. O ambiente em que este trabalho foi realizado, o VPE-qGM, é discutido na Seção 3. Após, a implementação da qgm C -Analyzer é detalhada na Seção 4 e os resultados são discutidos na Seção 6. Trabalhos relacionados são discutidos na Seção 5. Finalmente, as conclusões e trabalhos futuros são analisados na Seção 7. 332

2. Conceitos Básicos de CQ Na CQ, o qubit é a unidade básica de informação, definido por um vetor de estado, unitário e bidimensional, genericamente descrito, na notação de Dirac [Nielsen and Chuang 2000], pela expressão ψ = α 0 + β 1. Os coeficientes α e β são números complexos correspondentes às amplitudes dos respectivos estados, respeitando a condição de normalização α 2 + β 2 = 1, a qual garante a unitariedade do vetor de estado do sistema, nesta expressão representado por (α, β) t. As amplitudes permitem que o sistema represente, simultaneamente, estados distintos, configurando um estado de superposição quântica, característica que origina o fenômeno do paralelismo quântico [Nielsen and Chuang 2000]. O espaço de estados de um sistema quântico de múltiplos qubits é compreendido pelo produto tensorial do espaço de estados de seus sistemas componentes. Considerando um sistema quântico de dois qubits, ψ = α 0 + β 1 e ϕ = γ 0 + δ 1, o espaço de estados é composto pelo produto tensor ψ ϕ, ou seja α 00 + β 01 + γ 10 + δ 11. A mudança de estado em um sistema quântico é feita por transformações quânticas unitárias, associadas a matrizes quadradas ortonormalizadas de ordem 2 N, sendo N a quantidade de qubits da transformação. 3. Ambiente VPE-qGM O ambiente VPE-qGM (Visual Programming Environment for the qgm Model) [Maron et al. 2013], fundamentado no modelo de processos qgm (Quantum Geometric Machine Model) [Reiser and Amaral 2010], é constituído de construtores para modelagem e simulação gráfica de aplicações quânticas. De acordo com o modelo qgm, a noção de portas quânticas pode ser substituída pelo conceito de sincronização de processos elementares (PEs). No ambiente VPE-qGM, o PE é um elemento estruturado por três atributos: (i) Ação: corresponde às transformações quânticas aplicadas a diferentes qubits em um mesmo instante de tempo; (ii) Parâmetros: contém dados auxiliares associados à definição das transformações quânticas; (iii) Posição: referente à posição de escrita em um espaço de memória global e compartilhada, na qual é armazenado o resultado do PE. Neste contexto, uma transformação quântica, aplicada à N qubits, pode ser modelada pela sincronização de 2 N PEs, cujas parametrizações satisfazem as condições equivalentes à definição dos vetores componentes da matriz (transformação unitária ou de medida) associada. Assim, durante a simulação, ocorre a execução (sequencial ou síncrona) dos PEs, os quais têm suas correspondentes computações efetuadas pela biblioteca qgm C - Analyzer, manipulando os dados presentes nas posições de memória e simulando o comportamento de um sistema quântico. 4. Biblioteca qgm C -Analyzer A biblioteca de execução dos PEs desenvolvida neste trabalho, denominada qgm C - Analyzer, implementa otimizações que controlam o aumento exponencial dos vetores componentes das Matrizes de Definição do Operador (MDOs) de múltiplos qubits, conforme introduzido em [Maron et al. 2011]. 333

Os resultados relacionados comprovam a redução no consumo de memória durante a simulação, suportando algoritmos com 11 qubits. Entretanto, o tempo total de simulação obtido permanece elevado, devido a quantidade de operações necessárias para simular uma transformação quântica. Tendo em vista que o crescimento da complexidade algoritmica se dá de forma exponencial, abordagens paralelas e distribuídas foram estudadas para otimizar os cálculos envolvidos na simulação de uma transformação quântica. 4.1. Funcionamento da Biblioteca A execução de PEs considera uma estratégia de geração dinâmica dos valores associados aos correspondentes vetores componentes da MDO. Para isso, as matrizes associadas às transformações quânticas básicas são substituídas por um conjunto de funções elementares. Para a transformação Hadamard (H), por exemplo, a M DO está caracterizada pela função elementar abaixo, onde a matriz correspondente está representada à esquerda e a função à direita 1 2 ( 1 1 1 1 ) { 1 2, para linha = 0 H(linha, pos) = 1 pos 2, para linha = 1 (1) Todas as transformações suportadas pela biblioteca qgm C -Analyzer são definidas de forma análoga, evitando o armazenamento de estruturas de dados matriciais. Utilizando-se essas funções são construídas pilhas que armazenam os cálculos parciais das transformações. Por fim, todos os valores da última matriz são 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 implementação do paralelismo. Ela utiliza o modelo fork-join: o código é executado sequencialmente por uma única thread até encontrar uma região paralela. Então, o trabalho é distribuído entre um pool de threads como se fossem realizados forks. Após, as threads são sincronizadas, de forma equivalente ao join. O algoritmo divide os operadores em listas, no caso de uma Hadamard de 15 qubits, são criadas três listas, H 15 [H 5 ] [H 5 ] [H 5 ]. O cálculo dos valores é gerado iterando a última lista com os valores contidos numa pilha. Na implementação paralela, cada thread possui uma cópia privada da pilha, e as memórias de escrita e leitura são compartilhadas entre todas as threads, pois cada valor calculado é escrito em uma posição diferente da memória. A divisão das threads é feita de forma a manter juntos os valores necessários para o cálculo de uma posição. Para isso as iterações são divididas levando em conta o número de colunas da primeira lista envolvida na transformação. Nos casos em que a transformação possui apenas uma lista, as threads são divididas de forma à calcular os valores referenters à própria lista, para que a distribuição do trabalho seja balanceada. A definição do número de threads utilizadas pela biblioteca é definida por uma váriavel de ambiente (OMP NUM THREADS), gerando uma implementação mais 334

flexível. Ou seja, dependendo da transformação quântica, tem-se um controle da granulosidade visando melhor desempenho da biblioteca. 5. Trabalhos Relacionados Esta seção apresenta os trabalhos de pesquisa relacionados, mostrando as abordagens utilizadas por outras frentes de pesquisa. Existem vários trabalhos relacionados, dentre os quais se destacam o módulo VirD-GM (Virtual Distributed Geometric Machine) [Avila et al. 2014] do ambiente VPE-qGM, a biblioteca Libquantum [Butscher and Weimer 2003] e o simulador quântico QuiDDPro [Viamontes 2007]. 5.1. VirD-GM A VirD-GM é um módulo do ambiente VPE-qGM responsável pelo gerenciamento transparente da simulação distribuída. Ela é desenvolvida em Java e atualmente conta com suporte à simulação sequencial em CPUs e massivamente paralela através de GPUs, implementada utilizando a interface JCUDA. A execução distribuída de algoritmos quânticos na VirD-GM é controlada por três módulos principais: (i) A VirD-Loader, que é responsável pela interpretação de arquivos descritores contendo o algoritmo a ser simulado e seu vetor de estado inicial; (ii) Escalonamento e controle de fluxo são tratados pelo módulo VirD-Launcher; (iii) O módulo VirD-Exec controla a comunicação e transferência de dados entre os clientes de execução, nomeados VirD-Clients. A simulação em GPUs, auxiliados pelo VirD-GM, consiste em buscar uma distribuição equilibrada das tarefas através dos VirD-Clients. 5.2. Libquantum A biblioteca Libquantum utiliza uma abordagem paralela utilizando OpenMP e otimiza a representação dos valores, omitindo os estados base cujas amplitudes são zero. Esta abordagem requer que os estados de base diferentes de zero sejam armazenadas assim como o número total de estados diferentes de zero. A forma como é projetada a biblioteca, não dá suporte a simulação de emaranhamento quântico, o que reduz a complexidade da biblioteca. 5.3. QuiDDPro O simulador QuiDDPro representa os estados quânticos multidimensionais e as transformações quânticas através de uma estrutura denominada QuIDD (Quantum Information Decision Diagram), definidos por blocos de valores. Os valores seguem padrões, sendo possível representá-los de forma compacta reduzindo os tempos de acesso à informação e consequentemente o tempo de simulação e o consumo de memória. O QuiDDPro também não suporta a simulação de emaranhamento quântico. 6. Resultados Para a realização dos testes foram simuladas transformações Hadamards de 14 a 21 qubits, abrangendo as quatro abordagens mencionadas no trabalho, todas deterministicas. 335

O número de qubits utilizados nas simulações foi limitado pela expansão exponencial do espaço de memória. A medida de desempenho analisada foi o tempo médio de simulação, para cada caso de teste foram realizadas 15 simulações. A máquina utilizada para os testes possui as seguintes configurações: Intel Core i7-3770, 8 GiB RAM e GPU NVidia GT640. Os resultados obtidos podem ser observados na Tabela 1, as simulações executadas na qgm C -Analyzer e na VirD-GM tiveram tempos de execução mais elevados que as outras abordagens, no entanto este resultado já era esperado. Devido a forma como a representação do vetor de estados é implementada no QuIDDPro e na Libquantum os tempos de acesso e o número de operações realizadas são muito menores. O desvio padrão das simulações foram omitidos da tabela por estarem todos abaixo de 1,6%. Tabela 1. Tempos de simulação Qubits Tempos de Simulação (s) qgm C -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 NE 1 345,433 0,199667 0,038402 21 NE 1 1364,844 0,420133 0,040002 1 Não executado devido ao elevado tempo de simulação necessário Figura 1. Gráfico dos resultados das simulações nas quatro abordagens. Ainda nestes resultados é possível observar que os tempos de simulação para 14 qubits na qgm C -Analyzer foram menores que na VirD-GM. Sendo a VirD-GM um gerenciador de simulação distribuído, a cópia de grande volume de dados para um número de operações não muito alto interfere no desempenho da simulação. 336

A Figura 1 permite analisar a escalabilidade das bibliotecas. As abordagens utilizadas pelo ambiente VPE-qGM apresentaram um crescimento exponencial no tempo de simulação, enquanto as outras abordagens, Libquantum e QuiDDPro, apresentaram um crescimento linear. O ambiente VPE-qGM se propõe a ser um ambiente de simulação quântica completo, simulando os efeitos de superposição quântica e emaranhamento quântico, portanto, a forma como são realizados os cálculos, calculando paralelamente todo o estado, torna a simulação mais complexa. 7. Conclusões Os resultados obtidos pela biblioteca qgm C -Analyzer ainda estão distantes do estado-daarte em simuladores quânticos, porém o objetivo do ambiente VPE-qGM é ser flexível e permitir que o usuário possa modelar e simular seus circuitos de forma gráfica, oferecendo recursos para a criação de novas portas quânticas. Estas características representam a vantagem do ambiente em relação às outras bibliotecas, que oferecem apenas portas já definidas e a modelagem dos circuitos é feita de forma textual. Com a abordagem distribuída da VirD-GM e a paralela da qgm C -Analyzer, um modelo de computação heterogênea englobando as duas abordagens é justificada para otimizar os tempos de simulações. Transformações que necessitam um elevado número de operações seriam destinadas as GPUs enquanto as demais transformações seriam distribuídas entre as CPUs. O desafio desta proposta é o controle do volume de dados transportados para cada máquina do cluster, pois para cada nodo é necessário copiar toda a memória, ocasionando um grande fluxo de dados, limitando o desempenho. Para trabalhos futuros busca-se uma otimização da estrutura que representa o vetor de estados, buscando padrões para a simplificação da estrutura. Referências 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., Ávila, A., Reiser, R., and Pilla, M. (2011). Introduzindo uma nova abordagem para simulação quântica 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 simulation 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 Information. 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ópolis/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. 337