Paralelização Eficiente para o Algoritmo Binário de Exponenciação Modular

Tamanho: px
Começar a partir da página:

Download "Paralelização Eficiente para o Algoritmo Binário de Exponenciação Modular"

Transcrição

1 Paralelização Eficiente para o Algoritmo Binário de Exponenciação Modular Pedro Carlos da Silva Lara Fábio Borges de Oliveira Renato Portugal Laboratório Nacional de Computação Científica

2 Índice 1 Introdução 2 Algoritmo Binário de Exponenciação Complexidade Computacional 3 Paralelização do Algoritmo Binário Análise de Complexidade 4 Acelerando o Algoritmo 5 Trabalhos Correlatos 6 Conclusões

3 Introdução Neste trabalho é considerado o problema de calcular g e mod m, onde g, e Z m. A exponenciação modular é utilizada em grande parte dos algoritmos de criptografia assimétrica e testes de primalidade. O desempenho do algoritmo de exponenciação modular possui forte impacto no desempenho de muitos criptossistemas assimétricos.

4 Introdução Foi utilizado o conceito de paralelismo de tarefas para acelerar o calculo de g e mod m sendo g, e Z m. A técnica proposta está baseada no algoritmo binário de exponenciação modular.

5 Algoritmo Binário Também referenciado com square-and-multiply o algoritmo binário de exponenciação modular pode ser descrito recursivamente como: 1 se e = 0 g e = (g e/2 ) 2 se e é par g e 1 g se e é ímpar

6 Algoritmo Binário Algoritmo 1: Algoritmo binário versão esquerda para direita. Entrada: Inteiro g Z m e e = k i=0 2i b i onde b i {0,1} (representação em base binária). Saída: g e mod m. início a 1; para i = k até 0 faça a a 2 mod m; se b i = 1 então a a g mod m; 7 8 retorna a; fim

7 Complexidade Custo Computacional O algoritmo anterior, no caso médio, executa log 2 e + 1 elevações ao quadrado e log 2 e +1 2 multiplicações modulares. Custo Computacional Sendo E o custo para uma elevação ao quadrado, M o custo para uma multiplicação e j = log 2 e + 1 T(j) = je + j 2 M

8 Paralelização do Algoritmo Binário e = (b k b k 1 b k 2...b k/2 b k/2 1...b 2 b 1 b 0 ), b i {0, 1}, i {0,...,k} Fazendo e = 2 r e 1 + e 0 com r = k/2. e 1 {}}{{}}{ e = ( b k b k 1 b k 2...b k/2 b k/2 1...b 2 b 1 b 0 ) e 0 = (b k/2 1...b 1 b 0 ) e e 1 = (b k b k 1...b k/2 ) e 0

9 Paralelização do Algoritmo Binário Desta forma O cálculo de g e = g 2r e 1 +e 0 = g 2r e 1 g e 0. g e = g 2r e 1 g e 0 poderá ser executado em paralelo. log 2 e 0 log 2 e 2 e log 2 e 1 log 2 e 2

10 Paralelização do Algoritmo Binário e = ( ) Região Paralela 1 e 1 = (10011) 2 Região Paralela 2 e 2 = (11010) 2 a 1 = g e1 a 2 = g 25 e2 g e = a 1 a 2

11 Paralelização do Algoritmo Binário Algoritmo 2: Paralelização do algoritmo binário. Entrada: Inteiro g Z m e e = P k i=0 2i b i onde b i {0, 1} (representação em base binária). Saída: g e mod m. início e 0 (b r+1... b 1 b 0 ) 2 ; e 1 (b k... b r 1 b r) 2 ; início [Região Paralela 1] a 0 g e 0 mod m; fim início [Região Paralela 2] fim a 1 g 2r ; a 1 a e 1 1 mod m; fim retorna a 0 a 1 mod m;

12 Generalização Poderiamos fazer e = 2 rn e n + 2 r n 1 e n r 1 e 1 + e 0. Com log 2 e i = log 2 e n+1 e r i = i log e n+1 para i {0,...,n}. Logo g e = g 2rn e n+2 r n 1e n r 1e 1 +e 0 g e = (g en ) 2rn (g e n 1 ) 2r n 1...g e 0.

13 Generalização (Exemplo) Exemplo e = ( ) j = log 2 e + 1 = 32 e = ( }{{} }{{} }{{} }{{}) e 3 e 2 e 1 e 0 e = ( r r r ) r 1 = 8, r 2 = 16, r 3 = 24 e = 2 r 3 e r 2 e r 1 e 1 + e 0

14 Custo Computacional Para duas linhas o custo computacional é determinado pelo cálculo da expressão (g e 1 ) 2r sendo r = log 2 e Como log 2 e 1 log 2 e 2 e fazendo j = log 2 e + 1, para calcular (g e 1 ) 2r é necessário: Complexidade ( ) j T 2 (j) = je M

15 Custo Computacional (Caso Geral) Neste caso a complexidade fica determinada pelo termo onde r i é máximo, ou seja, (g e k) 2rn. Como log 2 e i = log 2 e n+1, i {0,...,n} e r n = n log 2 e n+1. Complexidade ( ) j T n (j) = je + 2n + n 1 M

16 Análise de Complexidade Comparação Sequencial T(j) = je + j 2 M Paralelo, usando n linhas paralelas ( ) j T n (j) = je + 2n + n 1 M j = log 2 e + 1

17 Análise de Complexidade Considerações Não houve redução no número de elevações ao quadrado. É necessário estudar o comportamento da função a medida que n cresce. γ(n, j) = j 2n + n 1 Esta função está associada ao número de multiplicações modulares, no caso médio.

18 Análise de Complexidade Considerando j constante, a fim de minimizar o número de multiplicações, considere a derivada parcial γ n = j 2n (1) Igualando (1) a zero e resolvendo na variável n, temos a seguinte relação entre o número de linhas paralelas n e o tamanho do expoente j. j n = (2) 2 Como 2 γ n 2 = j n 3 > 0 a expressão (2) é um mínimo global.

19 Acelerando o Algoritmo Algoritmo 3: Paralelização da multiplicação final. Entrada: Inteiros a 1, a 2,...,a n Z p Saída: O produtório n i=1 a i mod p. início enquanto n 1 faça para cada processador i = 1 até n/2 faça em paralelo A i a 2i 1 a 2i mod p; n n/2; para i = 1 até n faça a i A i ; retorna A 1 ; fim

20 Análise de Complexidade Este algoritmo computa γ = log 2 n multiplicações. Assim o custo computacional total fica ( ) j + 1 T(j) = (j + 1)E + 2n + log 2 n M. Neste caso, o número de multiplicações modulares é Desta forma, resolvendo µ(j, n) = j + 1 2n + log 2 n. µ(j, n) n = 0 n = ln 2 2 (j + 1).

21 Resultados Experimentais Recursos Utilizados Sistema operacional Open SuSE Linux kernel x86/64. O hardware utilizado foram 8 nós Sun Blade x6250. Cada nó com 2 processadores Intel Xeon E5440 Quad Core 3GHz e 16GB de memória física interligados por um barramento InfiniBand. GMP (GNU Multiple Precision), aritmética de precisão múltipla. OpenMPI, paralelismo usando memória compartilhada.

22 Resultados Experimentais (512 bits) 300 Execution time speed on 512 bits 250 microseconds number of processes 12 Speedup on 512 bits speedup number of processes Figura: Tempo de execução e speedup para até 64 unsado 512 bits

23 Resultados Experimentais (1024 bits) 1800 Execution time speed on 1024 bits microseconds number of processes 18 Speedup on 1024 bits speedup number of processes Figura: Tempo de execução e speedup para até 64 unsado 1024 bits

24 Resultados Experimentais (2048 bits) Execution time speed on 2048 bits microseconds number of processes 30 Speedup on 2048 bits speedup number of processes Figura: Tempo de execução e speedup para até 64 unsado 2048 bits

25 Resultados Experimentais (Comparação) 2500 Time speed comparison on 1024 bits Algoritmo 2 Algoritmo microseconds number of processes Figura: Comparativo entre os algoritmo de paralelização apresentados.

26 Trabalhos Correlatos Grande parte dos autores posicionam seu trabalho em problemas de base-fixa, e. g., Diffie-Hellman. A versão multi-prima do RSA junto com o Teorema do Resto Chinês possui uma paralelização direta e eficiente.

27 Trabalhos Futuros Utilizar GPGPU (General-Purpose computing on Graphics Processing Units). Trabalhar com algoritmos mais interessantes do ponto de vista de desempenho, e. g., Janela Deslizante. Ajustar o ponto de partição, de forma a balancear a carga entre os processadores.

28 Conclusões Este trabalho descreveu uma técnica de paralelismo para o cálculo da exponenciação modular para o caso geral. A paralelização final do algoritmo mostrou-se mais escalável e como menor custo computacional que o algoritmo original. Somente foi possível diminuir o número de multiplicações modulares. O número de elevações ao quadrado foi mantido inalterado.

29 Último Slide Obrigado pela atenção! para contato: Perguntas?

Paralelização Eficiente para o Algoritmo Binário de Exponenciação Modular

Paralelização Eficiente para o Algoritmo Binário de Exponenciação Modular Anais do IX Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais 17 Paralelização Eficiente para o Algoritmo Binário de Exponenciação Modular Pedro Carlos da Silva Lara 1, Fábio

Leia mais

Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Z p

Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Z p Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Z p Pedro Carlos da Silva Lara Fábio Borges de Oliveira {pcslara, borges}@lncc.br LABORATÓRIO NACIONAL DE COMPUTAÇÃO CIENTÍFICA LNCC

Leia mais

Implementação para Multiplicação por Escalar. 2 Curvas Elípticas Sobre Z p

Implementação para Multiplicação por Escalar. 2 Curvas Elípticas Sobre Z p Anais do CNMAC v.2 ISSN 1984-820X Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Z p Pedro Lara, Fábio Borges, Coordenação de Sistemas e Redes, CSR, LNCC, 25651-075, Petrópolis,

Leia mais

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

Técnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot Técnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot Bruno Pereira dos Santos Dany Sanchez Dominguez Esbel Tomás Evalero Orellana Universidade Estadual de Santa Cruz Roteiro Breve introdução

Leia mais

Criptografia com Maple

Criptografia com Maple Criptografia com Maple - Verão/2005 Fábio Borges & Renato Portugal Criptografia com Maple p.1/32 Simétrica versus Assimétrica Simétrica Criptografia com Maple p.2/32 Simétrica versus Assimétrica Simétrica

Leia mais

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

Aluno de Pós-Graduação em Engenharia de Software para Dispositivos Móveis pela UNINTER COMPARAÇÃO DE DESEMPENHO NA PROGRAMAÇÃO PARALELA HÍBRIDA (MPI + OPENMP) NA BUSCA DE TEXTO EM ARQUIVOS 1 COMPARISON OF PERFORMANCE IN HYBRID PARALLEL PROGRAMMING (MPI + OPENMP) IN SEARCH OF TEXT IN FILES

Leia mais

Luís Fernando Schultz Xavier da Silveira. 12 de maio de 2010

Luís Fernando Schultz Xavier da Silveira. 12 de maio de 2010 Monóides e o Algoritmo de Exponenciação Luís Fernando Schultz Xavier da Silveira Departamento de Informática e Estatística - INE - CTC - UFSC 12 de maio de 2010 Conteúdo 1 Monóides Definição Propriedades

Leia mais

28 de fevereiro de 2016

28 de fevereiro de 2016 Ítalo Mendes da Silva Ribeiro UESPI 28 de fevereiro de 2016 1 / 72 Súmario Breve 2 / 72 Súmario Breve 3 / 72 Por que estudar Arquitetura e Organização de Computadores? Conhecimento do funcionamento interno

Leia mais

CRIVO QUADRÁTICO: IMPLEMENTAÇÃO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES

CRIVO QUADRÁTICO: IMPLEMENTAÇÃO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES CRIVO QUADRÁTICO: IMPLEMENTAÇÃO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES Alex Zanella Zaccaron1; Adriana Betânia de Paula Molgora2 1Estudante do Curso de

Leia mais

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

Sparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile? Sparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile? Paula Prata João Muranho Instituto de Telecomunicações Departamento de Informática Universidade da Beira Interior Instituto

Leia mais

AKS: um algoritmo para identificar números primos

AKS: um algoritmo para identificar números primos AKS: um algoritmo para identificar números primos IM-UFBA 08 de novembro de 2016 Índice 1 Preliminares 2 3 4 5 Introdução Números primos Comprovar a primalidade de um número natural significa comprovar

Leia mais

PTC Aula 20. (Kurose, p ) (Peterson, p ) 14/06/ Princípios de criptografia

PTC Aula 20. (Kurose, p ) (Peterson, p ) 14/06/ Princípios de criptografia PTC 2550 - Aula 20 5.2 Princípios de criptografia (Kurose, p. 587-626) (Peterson, p. 444-454) 14/06/2017 Muitos slides adaptados com autorização de J.F Kurose and K.W. Ross, All Rights Reserved Capítulo

Leia mais

Reynaldo C. Villena. Abril de 2013

Reynaldo C. Villena. Abril de 2013 Fatoração do inteiro N multi-primo com bits aleatórios Reynaldo C. Villena (reynaldo@ime.usp.br) Orientador: Routo Terada IME - DCC - USP Abril de 2013 Reynaldo C. Villena Fatoração do inteiro N multi-primo

Leia mais

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

Aplicação de Processamento Paralelo com GPU a Problemas de Escoamento Monofásico em Meios Porosos. Bruno Pereira dos Santos Dany Sanchez Dominguez Aplicação de Processamento Paralelo com GPU a Problemas de Escoamento Monofásico em Meios Porosos Bruno Pereira dos Santos Dany Sanchez Dominguez 1 Roteiro 1. Introdução 2. Five-Spot Problem 3. Modelagem

Leia mais

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

Processamento de áudio em tempo real utilizando dispositivos não convencionais: Processamento de áudio em tempo real utilizando dispositivos não convencionais: Processamento paralelo com Pure Data e GPU. André Jucovsky Bianchi ajb@ime.usp.br Departamento de Ciência da Computação Instituto

Leia mais

Troca de chaves Diffie-Hellman Grupos finitos Grupos cíclicos

Troca de chaves Diffie-Hellman Grupos finitos Grupos cíclicos Introdução à Chave Pública Troca de chaves Diffie-Hellman Grupos finitos Grupos cíclicos Troca de Chaves de Diffie-Hellman Parâmetros públicos p, α Alice: 1 Sorteia a = K pra {2, 3,..., p 2} 3 Envia para

Leia mais

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

ANÁLISE DE DESEMPENHO COM A PARALELIZAÇÃO DO CÁLCULO DE NÚMEROS PERFEITOS 1 ANÁLISE DE DESEMPENHO COM A PARALELIZAÇÃO DO CÁLCULO DE NÚMEROS PERFEITOS 1 Éder Paulo Pereira 2, Gilberto Przygoda Marmitt 3, Emilio Hoffmann De Oliveira 4, Edson Luiz Padoin 5, Carlos Eduardo Das Chagas

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Representação e aritmética binária

Universidade Federal de Uberlândia Faculdade de Computação. Representação e aritmética binária Universidade Federal de Uberlândia Faculdade de Computação Representação e aritmética binária Prof. Renato Pimentel 1 Tipos de informação Representação por meio de sequências binárias: 8 bits (byte) Também

Leia mais

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

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 12 1 1.1. Motivações Dentre os tipos de técnicas de Inteligência Artificial existentes, as técnicas de Programação Genética (PG) continuam mudando rapidamente conforme os pesquisadores e profissionais

Leia mais

Celso L. Mendes LAC /INPE

Celso L. Mendes LAC /INPE Arquiteturas para Processamento de Alto Desempenho (PAD) Aula 9 Celso L. Mendes LAC /INPE Email: celso.mendes@inpe.br Aula 9 (3/5): E. Aceleradores Estrutura Planejada i. Estruturas mais Populares ii.

Leia mais

SSC PROGRAMAÇÃO CONCORRENTE

SSC PROGRAMAÇÃO CONCORRENTE SSC- 0143 PROGRAMAÇÃO CONCORRENTE Aula 08 Avaliação de Desempenho de Programas Paralelos Prof. Jó Ueyama Créditos Os slides integrantes deste material foram construídos a par4r dos conteúdos relacionados

Leia mais

Emparelhamentos Bilineares Sobre Curvas

Emparelhamentos Bilineares Sobre Curvas Emparelhamentos Bilineares Sobre Curvas Eĺıpticas Leandro Aparecido Sangalli sangalli@dca.fee.unicamp.br Universidade Estadual de Campinas - UNICAMP FEEC - Faculdade de Engenharia Elétrica e de Computação

Leia mais

PCC104 Projeto e Análise de Algoritmos

PCC104 Projeto e Análise de Algoritmos PCC104 Projeto e Análise de Algoritmos Joubert de Castro Lima joubertlima@gmail.com Professor Adjunto DECOM UFOP 2010/1 Figuras retiradas do livro Introduction to parallel Computing Programar em paralelo

Leia mais

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

PARALELIZAÇÃO DE ALGORITMO DE INSPEÇÃO DE ROTAS UTILIZANDO PERMUTAÇÃO LEXICOGRÁFICA 1 PARALELIZAÇÃO DE ALGORITMO DE INSPEÇÃO DE ROTAS UTILIZANDO PERMUTAÇÃO LEXICOGRÁFICA 1 Jessica De Almeida Berlezi 2, Janiel Ceretta Foletto 3, Edson Luiz Padoin 4, Rogério S. M. Martins 5. 1 Trabalho realizado

Leia mais

Arquiteturas Paralelas

Arquiteturas Paralelas ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Arquiteturas Paralelas Medidas de desempenho Alexandre Amory Edson Moreno Índice 2 1. Introdução 2. Medidas de Desempenho Introdução 3 Aumento de desempenho dos

Leia mais

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

Paradigmas de Processamento Paralelo na Resolução do Fractal de Mandelbrot Paradigmas de Processamento Paralelo na Resolução do Fractal de Mandelbrot Bruno Pereira dos Santos Dany Sanchez Dominguez Universidade Estadual de Santa Cruz Cronograma Introdução Serial vs Processamento

Leia mais

Supercomputador Pleiades

Supercomputador Pleiades Supercomputador Pleiades Introdução ao Processamento Paralelo e Distribuído Renato Marques Dilli Prof. Adenauer C. Yamin Universidade Católica de Pelotas 1 de maio de 2009 Mestrado em Ciência da Computação

Leia mais

Monografia de Conclusão do Curso de Graduação em Ciência da Computação. 2

Monografia de Conclusão do Curso de Graduação em Ciência da Computação. 2 APLICAÇÃO DE BALANCEAMENTO DE CARGA COM CHARM++ NA PARALELIZANDO DE UM SIMULADOR DO MOVIMENTO DA ÁGUA NO SOLO 1 LOAD BALANCING APLICATION WITH CHARM++ IN THE PARALELIZATION OF A WATER MOVEMENT SIMULATOR

Leia mais

Falando um segredo em público a um estranho e mantendo o segredo

Falando um segredo em público a um estranho e mantendo o segredo Falando um segredo em público a um estranho e mantendo o segredo UEL - Out/2007 Fábio Borges de Oliveira LNCC Falando um segredo em público a um estranho e mantendo o segredo p.1/19 Origem do problema

Leia mais

List Ranking: Solução probabilística. Baseado na dissertação de mestrado de Guilherme Pereira Vanni Orientador: Prof.

List Ranking: Solução probabilística. Baseado na dissertação de mestrado de Guilherme Pereira Vanni Orientador: Prof. List Ranking: Solução probabilística Baseado na dissertação de mestrado de Guilherme Pereira Vanni Orientador: Prof. Siang Wung Song Introdução Definição Lista ligada: uma seqüência de nós tal que cada

Leia mais

Notas sobre teoria dos números (3)

Notas sobre teoria dos números (3) 1 / 21 Notas sobre teoria dos números (3) Fonte: livros do L. Lóvasz e Kenneth Rosen (ref. completa na página) Centro de Informática Universidade Federal de Pernambuco 2007.1 / CIn-UFPE 2 / 21 Teorema

Leia mais

Introdução ao CUDA. Material elaborado por Davi Conte.

Introdução ao CUDA. Material elaborado por Davi Conte. Introdução ao CUDA Material elaborado por Davi Conte. O objetivo deste material é que o aluno possa iniciar seus conhecimentos em programação paralela, entendendo a diferença da execução de forma sequencial

Leia mais

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos Sistema Distribuído Conjunto de máquinas (CPU + memória) interligadas em rede. Sistema Distribuído Sistema operacional distribuído trata este conjunto como um único sistema computacional. Estação 1 Estação

Leia mais

Ambientes de computação de alto desempenho no LNCC

Ambientes de computação de alto desempenho no LNCC Ambientes de computação de alto desempenho no LNCC Roberto Pinto Souto MCTI/LNCC/CSR - CENAPAD-RJ rpsouto@lncc.br 24 de Março de 2014 (Seminário da Pós-graduaçao) 24 de Março de 2014 1 / 78 Roteiro 1 Introdução

Leia mais

Processamento Paralelo Utilizando GPU

Processamento Paralelo Utilizando GPU Processamento Paralelo Utilizando GPU Universidade Estadual de Santa Cruz Bruno Pereira dos Santos Dany Sanchez Dominguez Esbel Evalero Orellana Cronograma Breve introdução sobre processamento paralelo

Leia mais

Toward an Architecture-Independent Analysis of Parallel Algorithms

Toward an Architecture-Independent Analysis of Parallel Algorithms 1/22 Introdução O algoritmo de aproximação Aplicações em Problemas Concretos Problemas Abertos Referências Toward an Architecture-Independent Analysis of Parallel Algorithms Mijail Gamarra Holguin 18 de

Leia mais

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

Análise de Desempenho da Paralelização do Problema de Caixeiro Viajante Análise de Desempenho da Paralelização do Problema de Caixeiro Viajante Gabriel Freytag Guilherme Arruda Rogério S. M. Martins Edson L. Padoin Universidade Regional do Noroeste do Estado do Rio Grande

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática UFG 1S/2004 Representação de Dados e Aritmética Computacional Roteiro Números inteiros

Leia mais

Computação Paralela (CUDA)

Computação Paralela (CUDA) Universidade Federal do Amazonas Faculdade de Tecnologia Departamento de Eletrônica e Computação Computação Paralela (CUDA) Hussama Ibrahim hussamaibrahim@ufam.edu.br Notas de Aula Baseado nas Notas de

Leia mais

COMPUTAÇÃO PARALELA COM ACELERADORES GPGPU 1. Emilio Hoffmann De Oliveira 2, Edson Luiz Padoin 3.

COMPUTAÇÃO PARALELA COM ACELERADORES GPGPU 1. Emilio Hoffmann De Oliveira 2, Edson Luiz Padoin 3. COMPUTAÇÃO PARALELA COM ACELERADORES GPGPU 1 Emilio Hoffmann De Oliveira 2, Edson Luiz Padoin 3. 1 Trabalho de Conclusão de Curso 2 Aluno do Curso de Ciência da Computação - emiliohoffmann@hotmail.com

Leia mais

Introdução. à Ciência da. Representação de Números em Ponto Flutuante. Aula 21. Números Fracionários

Introdução. à Ciência da. Representação de Números em Ponto Flutuante. Aula 21. Números Fracionários Universidade Federal de Pelotas Instituto de Física e Matemática Departamento de Informática Bacharelado em Ciência da Computação Introdução à Ciência da Computação Aula 21 Representação de Números em

Leia mais

Computadores e Programação (DCC/UFRJ)

Computadores e Programação (DCC/UFRJ) Computadores e Programação (DCC/UFRJ) Aula 3: 1 2 3 Abstrações do Sistema Operacional Memória virtual Abstração que dá a cada processo a ilusão de que ele possui uso exclusivo da memória principal Todo

Leia mais

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

A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES Euzébio da Costa Silva 1, Victor Pereira Ribeiro 2, Susana Brunoro Costa de Oliveira 3 1 29520-000, euzebioprogramacao@gmail.com 2 29520-000, victor3ifes@gmail.com

Leia mais

Introdução aos Conceitos de Computação Paralela através da estimativa de Pi

Introdução aos Conceitos de Computação Paralela através da estimativa de Pi Introdução aos Conceitos de Computação Paralela através da estimativa de Pi Diego da Silva Pereira 1 1 Professor de Redes de Computadores IFRN Câmpus Currais Novos. e-mail: diego.pereira@ifrn.edu.br Resumo:

Leia mais

Equação de Poisson. Paulo Matias. f (x, y) =

Equação de Poisson. Paulo Matias. f (x, y) = Equação de Poisson Paulo Matias 12 de outubro de 2011 1 Introdução Foi desenvolvido, em linguagem C++, um programa sequencial de alto desempenho para resolver a equação de Poisson: 2 u (x, y) x 2 + 2 u

Leia mais

Divisão e Conquista. Norton T. Roman. Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder

Divisão e Conquista. Norton T. Roman. Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder Divisão e Conquista Norton T. Roman Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder Divisão e Conquista Construção incremental Ex: Consiste em, inicialmente, resolver

Leia mais

Reconstrução da Chave Privada RSA Multi-primo

Reconstrução da Chave Privada RSA Multi-primo Reconstrução da Chave Privada RSA Multi-primo Reynaldo C. Villena (reynaldo@ime.usp.br) Orientador: Routo Terada Departamento de Ciência da Computação Instituto de Matemática e Estatística Universidade

Leia mais

Predição de Utilização de Recursos Computacionais Usando Séries Temporais

Predição de Utilização de Recursos Computacionais Usando Séries Temporais Predição de Utilização de Recursos Computacionais Usando Séries Temporais Aluno: Paulo Roberto Pereira da Silva Orientador: Paulo Romero Martins Maciel Coorientador: Jean Carlos Teixeira de Araujo de Garanhuns

Leia mais

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

Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core RSS-Verão-01/08 p.1/36 Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7 Escola de Verão 2008 Arquiteturas Multi-Core Renato S. Silva LNCC - MCT Janeiro de 2008 RSS-Verão-01/08 p.2/36 Objetivo:

Leia mais

PK - Public Key RSA. Segurança RSA

PK - Public Key RSA. Segurança RSA Introdução à Chave Pública PK - Public Key RSA Exponenciação rápida Segurança RSA Compartilhamento de chaves Algoritmo de chave simétrica Necessário compartilhar uma chave secreta previamente Chave que

Leia mais

MONTAGEM E MANUTENÇÃO DE COMPUTADORES

MONTAGEM E MANUTENÇÃO DE COMPUTADORES Álvaro Elias Flôres alvaro.flores@sc.senai.br MONTAGEM E MANUTENÇÃO DE COMPUTADORES Introdução A atividade de um computador pode ser definida por um modelo simples: Introdução Na etapa de processamento

Leia mais

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 1 Introdução Arquitetura e Organização 1. Arquitetura

Leia mais

Criptografia com Números Irracionais p.1/20

Criptografia com Números Irracionais p.1/20 Criptografia com Números Irracionais Foz-2006 Fábio Borges Laboratório Nacional de Computação Científica Criptografia com Números Irracionais p.1/20 Ataque M = {M 1,..., M n } Criptografia com Números

Leia mais

ARQUITECTURA DE COMPUTADORES

ARQUITECTURA DE COMPUTADORES ARQUITECTURA DE COMPUTADORES CAPÍTULO III AULA I, II e III Abril 2014 Índice Aritmética para computadores Intro Adição e subtração Multiplicação Divisão Virgula Flutuante Virgula Flutuante - aritmética

Leia mais

Aritmética de Ponto Fixo

Aritmética de Ponto Fixo Aritmética de Ponto Fixo Prof. Paulo Fernando Seixas Prof. Marcos Antônio Severo Mendes http://www.delt.ufmg.br/~elt/docs/dsp/ Representação Numérica DSP Ponto fixo Ponto flutuante 6 bits 3 bits 0 bits

Leia mais

PROCESSADORES Unidade de Controle Unidade Aritmética e Lógica efetua memória de alta velocidade registradores Program Counter Instruction Register

PROCESSADORES Unidade de Controle Unidade Aritmética e Lógica efetua memória de alta velocidade registradores Program Counter Instruction Register PROCESSADORES Um computador digital consiste em um sistema interconectado de processadores, memória e dispositivos de entrada e saída. A CPU é o cérebro do computador. Sua função é executar programas armazenados

Leia mais

Organização de Computadores

Organização de Computadores Organização de Computadores Aula 29 Controle Microprogramado Rodrigo Hausen 24 de novembro de 2011 http://cuco.pro.br/ach2034 1/32 Apresentação 1. Bases Teóricas 2. Organização de computadores... 2.6.

Leia mais

Computação científica utilizando placas gráficas

Computação científica utilizando placas gráficas Brasília, dezembro de 2008 Universidade de Brasília - Faculdade do Gama Sumário Introdução Sumário Introdução Arquitetura da GPU Sumário Introdução Arquitetura da GPU Modelo de programação Sumário Introdução

Leia mais

Microprocessadores II - ELE 1084

Microprocessadores II - ELE 1084 Microprocessadores II - ELE 1084 CAPÍTULO III PROCESSADORES P5 3.1 Gerações de Processadores 3.1 Gerações de Processadores Quinta Geração (P5) Pentium (586) 32 bits; Instruções MMX; Concorrente K5 (AMD).

Leia mais

XV ESCOLA REGIONAL DE ALTO DESEMPENHO ERAD 2015

XV ESCOLA REGIONAL DE ALTO DESEMPENHO ERAD 2015 XV ESCOLA REGIONAL DE ALTO DESEMPENHO ERAD 2015 Impacto das Interfaces de Programação Paralela e do Grau de Paralelismo no Consumo Energético de uma Aplicação Thayson R. Karlinski, Arthur F. Lorenzon,

Leia mais

Um novo algoritmo probabilístico para fatoração de inteiros com primos relativamente distantes p.1/15

Um novo algoritmo probabilístico para fatoração de inteiros com primos relativamente distantes p.1/15 Um novo algoritmo probabilístico para fatoração de inteiros com primos relativamente distantes VIII SBSeg - Set/08 Fábio Borges - LNCC Um novo algoritmo probabilístico para fatoração de inteiros com primos

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Prof. Cristiano Damiani Vasconcellos cristiano.vasconcellos@udesc.br Algoritmos com Inteiros Grandes

Leia mais

Organização de Sistemas Computacionais Processadores: Organização da CPU

Organização de Sistemas Computacionais Processadores: Organização da CPU Universidade Paulista UNIP Curso: Ciências da Computação Turma: CCP30 Turno: Noturno Disciplina: Arquitetura de Computadores Professor: Ricardo Loiola Alunos: Thiago Gomes dos Santos Matrícula: C63873-0

Leia mais

Autenticação por par de. chaves assimétricas. Bruno Follmann

Autenticação por par de. chaves assimétricas. Bruno Follmann Autenticação por par de 1 chaves assimétricas Bruno Follmann 2 Criptografia assimétrica Criada em 1976 por Diffie e Hellman; Também chamada de criptografia de chave pública; Sistema para cifrar e decifrar

Leia mais

PARTE I I: ARITMÉTICA COMPUTACIONAL ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

PARTE I I: ARITMÉTICA COMPUTACIONAL ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR PARTE I I: ARITMÉTICA COMPUTACIONAL ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR Introdução Como representar números em memória? Como representar números negativos e de ponto flutuante?

Leia mais

COMPLEXIDADE DE ALGORITMOS

COMPLEXIDADE DE ALGORITMOS COMPLEXIDADE DE ALGORITMOS Algoritmos Seqüência de instruções necessárias para a resolução de um problema bem formulado Permite implementação computacional COMPLEXIDADE DE ALGORITMOS Um algoritmo resolve

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Expressões aritméticas, relacionais e lógicas Estruturas condicionais

Universidade Federal de Uberlândia Faculdade de Computação. Expressões aritméticas, relacionais e lógicas Estruturas condicionais Universidade Federal de Uberlândia Faculdade de Computação Expressões aritméticas, relacionais e lógicas Estruturas condicionais Prof. Renato Pimentel 1 Expressões aritméticas 2 Prof. Renato Pimentel 1

Leia mais

Universidade do Minho

Universidade do Minho Teórica n o 1 2007-02-22 Apresentação do docente e da disciplina. Algumas revisões de teoria de números elementar. O algoritmo de Euclides estendido; demonstração do teorema que fundamenta o algoritmo.

Leia mais

Codificação de Informação 2010/2011

Codificação de Informação 2010/2011 Codificação de Informação 2010/2011 Sumário: Criptografia de chave pública Tipos de chave: cifras simétricas Chave comum à operação de cifrar e de decifrar Chave secreta P mensagem em claro, C mensagem

Leia mais

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

Paralelismo de dados. (execução de simultaneidade) Tipo de arquitetura paralela SIMD. SIMD (Single Instruction Multiple Data) Paralelismo de dados (execução de simultaneidade) Em métodos tradicionais de programação (processamento sequencial), uma grande quantidade de dados é processada em um único núcleo de uma CPU, enquanto

Leia mais

Cérebro humano versus Computador digital

Cérebro humano versus Computador digital Cérebro humano versus Computador digital O cérebro humano possui uma rede de neurónios (células nervosas) que formam um sistema de processamento de informação em rede extremamente potente. E isso é um

Leia mais

RSA: ALGORITMOS DE CHAVE PÚBLICA PRIMEIRA PUBLICAÇÃO: ABRIL/1998 QUARTA REVISÃO: DEZEMBRO/2004

RSA: ALGORITMOS DE CHAVE PÚBLICA PRIMEIRA PUBLICAÇÃO: ABRIL/1998 QUARTA REVISÃO: DEZEMBRO/2004 Teoria e Implementação Chave Pública São algoritmos baseados em propriedades matemáticas que possibilitam o processo de criptografia (encrypt) a partir de uma chave de conhecimento público (K P ), mas

Leia mais

Programação de Computadores I

Programação de Computadores I Programação de Computadores I 2018.2 Computador O computador é uma máquina que realiza processamento de dados automaticamente. Ela é formada por um hardware e um software. Notebook Celular Video Game Câmeras

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Prof. Cristiano Damiani Vasconcellos cristiano.vasconcellos@udesc.br Um pouco de Teoria dos Números

Leia mais

Processamento de áudio em tempo real em dispositivos computacionais de alta disponibilidade e baixo custo

Processamento de áudio em tempo real em dispositivos computacionais de alta disponibilidade e baixo custo Processamento de áudio em tempo real em dispositivos computacionais de alta disponibilidade e baixo custo André J. Bianchi 21/10/2013 1 / 33 1 Introdução 2 Metodologia 3 Arduino 4 GPU 5 Android 6 Conclusão

Leia mais

Decisões arquiteturais importantes. Projeto arquitetural x projeto de algoritmos. Decomposição de dados. Decomposição de dados

Decisões arquiteturais importantes. Projeto arquitetural x projeto de algoritmos. Decomposição de dados. Decomposição de dados Processamento Paralelo Técnicas de Decomposição de Problemas Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) Decisões arquiteturais importantes 1. Divisão de responsabilidades entre partes (componentes)

Leia mais

CIC 111 Análise e Projeto de Algoritmos II

CIC 111 Análise e Projeto de Algoritmos II CIC 111 Análise e Projeto de Algoritmos II Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 21 Number theory Primes and factors Modular arithmetic Solving equations Other results

Leia mais

Introdução a Computação

Introdução a Computação O que é um computador? Um computador é uma coleção de componentes que realizam operações lógicas e aritméticas sobre um grande volume de dados. (F. K. Miyazawa) Um computador é composto por: Introdução

Leia mais

Teste à Primalidade. (Método de Monte Carlo) Geração de Números Primos (Grandes)

Teste à Primalidade. (Método de Monte Carlo) Geração de Números Primos (Grandes) Teste à Primalidade (Método de Monte Carlo) Margarida Mamede, DI FCT/UNL APD, 2010/11, Teste à Primalidade 1 Geração de Números Primos (Grandes) Como se pode obter um número primo grande? Gerando números

Leia mais

Disciplina: Arquitetura de Computadores

Disciplina: Arquitetura de Computadores Disciplina: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof a. Carla Katarina de Monteiro Marques UERN Introdução Responsável por: Processamento e execução de programas armazenados na

Leia mais

FACULDADE DE TECNOLOGIA SENAC GOIÁS. Arquitetura de Computadores

FACULDADE DE TECNOLOGIA SENAC GOIÁS. Arquitetura de Computadores FACULDADE DE TECNOLOGIA SENAC GOIÁS DESIRON GONÇALVES, IURY NERES, JADER FIGUEIREDO E JEFFERSON MENDES. Arquitetura de Computadores Goiânia, dezembro de 2016. FACULDADE DE TECNOLOGIA SENAC GOIÁS DESIRON

Leia mais

OpenMP: Variáveis de Ambiente

OpenMP: Variáveis de Ambiente Treinamento OpenMP C/C++ 1 TREINAMENTO OpenMP C/C++ Módulo 1 Computação de Alto Desempenho Módulo 2 OpenMP: Construtores Paralelos Módulo 3 OpenMP: Diretivas de sincronização Módulo 4 OpenMP: Funções de

Leia mais

30/5/2011. Sistemas computacionais para processamento paralelo e distribuído

30/5/2011. Sistemas computacionais para processamento paralelo e distribuído Arquitetura de Computadores Sistemas computacionais para processamento paralelo e distribuído Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO Processamento

Leia mais

Exemplo Amdahl. O speedup total é dado por:

Exemplo Amdahl. O speedup total é dado por: Í Revisão da prova Questão 20: A exploração do paralelismo em nível de instruções em uma arquitetura superescalar é realizada identificando no fluxo de instruções aquelas que são independentes a fim de

Leia mais

Frustum Culling Híbrido Utilizando CPU e GPU. Aluno: Eduardo Telles Carlos Orientador: Alberto Raposo Co-Orientador: Marcelo Gattass

Frustum Culling Híbrido Utilizando CPU e GPU. Aluno: Eduardo Telles Carlos Orientador: Alberto Raposo Co-Orientador: Marcelo Gattass Frustum Culling Híbrido Utilizando CPU e GPU Aluno: Eduardo Telles Carlos Orientador: Alberto Raposo Co-Orientador: Marcelo Gattass Agenda Objetivos Motivação Algoritmos de visibilidade Frustum Culling

Leia mais

Intel Thread Building Blocks (TBB)

Intel Thread Building Blocks (TBB) Intel Thread Building Blocks (TBB) MCZA020-13 - Programação Paralela Emilio Francesquini e.francesquini@ufabc.edu.br 2019.Q1 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Disclaimer

Leia mais

Comparação de eficiência entre OpenCL e CUDA

Comparação de eficiência entre OpenCL e CUDA Aluno: Thiago de Gouveia Nunes Orientador: Prof. Marcel P. Jackowski GPGPU O que é GPGPU? É programação de propósito geral em GPUs. =D GPGPU Existem 2 linguagens populares no mercado para GPGPU, o CUDA

Leia mais

OTES07 Segurança da Informação Módulo 05c: Criptografia Assimétrica RSA e ECC

OTES07 Segurança da Informação Módulo 05c: Criptografia Assimétrica RSA e ECC OTES07 Segurança da Informação Módulo 05c: Criptografia Assimétrica RSA e ECC Prof. Charles Christian Miers e-mail: charles.miers@udesc.br Breve Histórico Primeiro algoritmo de chave pública foi desenvolvido

Leia mais

Algoritmos Paralelos Eficientes para Alguns Problemas em Proce. Caracteres

Algoritmos Paralelos Eficientes para Alguns Problemas em Proce. Caracteres lgoritmos Paralelos Eficientes para lguns Problemas em Processamento de Cadeias de Caracteres JI/SBC 2007 - Rio de Janeiro Parte 1 gradecimentos O material deste curso é baseado em trabalhos publicados

Leia mais

TOCI08 Segurança em Redes de Computadores Módulo 08: Criptografia Assimétrica RSA e ECC

TOCI08 Segurança em Redes de Computadores Módulo 08: Criptografia Assimétrica RSA e ECC TOCI08 Segurança em Redes de Computadores Módulo 08: Criptografia Assimétrica RSA e ECC Prof. M.Sc. Charles Christian Miers e-mail: charles@joinville.udesc.br Roteiro Criptografia Moderna: Diferenças criptografia

Leia mais

Proposta de Melhoria de uma Implementação Paralela para GPUs Usando CUDA - Estudo de Caso em Modelo Atmosférico

Proposta de Melhoria de uma Implementação Paralela para GPUs Usando CUDA - Estudo de Caso em Modelo Atmosférico Proposta de Melhoria de uma Implementação Paralela para GPUs Usando CUDA - Estudo de Caso em Modelo Atmosférico Fabiano Cassol de Vargas, Matheus Beniz Bieger, Claudio Schepke 1 Laboratório de Estudos

Leia mais

Análise de Algoritmos Estrutura de Dados II

Análise de Algoritmos Estrutura de Dados II Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Análise de Algoritmos Estrutura de Dados II COM10078 - Estrutura de Dados II Prof. Marcelo Otone Aguiar marcelo.aguiar@ufes.br

Leia mais

Análise de Desempenho e Paralelização de Algoritmos para Redes Neurais Profundas

Análise de Desempenho e Paralelização de Algoritmos para Redes Neurais Profundas Análise de Desempenho e Paralelização de Algoritmos para Redes Neurais Profundas Carlos A. T. Aguni, Alex E. Kawahira, Daniel Cordeiro 1 Escola de Artes Ciências e Humanidades Universidade de São Paulo

Leia mais

1. Conceitos Básicos de Computação

1. Conceitos Básicos de Computação Introdução à Computação I IBM1006 1. Conceitos Básicos de Computação Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 1.Conceitos Básicos de Computação 1.1.

Leia mais

Jônatas Lopes de Paiva Instituto de Matemática e Estatística Universidade de São Paulo. 06 de maio de 2011

Jônatas Lopes de Paiva Instituto de Matemática e Estatística Universidade de São Paulo. 06 de maio de 2011 Jônatas Lopes de Paiva jlp@ime.usp.br Instituto de Matemática e Estatística Universidade de São Paulo 06 de maio de 2011 Introdução String-matching O que é? Em que é utilizado Tipos GPU GPGPU String-matching

Leia mais

ESTRATÉGIAS DE OTIMIZAÇÃO DE CÓDIGO EM OPENCL

ESTRATÉGIAS DE OTIMIZAÇÃO DE CÓDIGO EM OPENCL 6ª Jornada Científica e Tecnológica e 3º Simpósio de Pós-Graduação do IFSULDEMINAS 04 e 05 de novembro de 2014, Pouso Alegre/MG ESTRATÉGIAS DE OTIMIZAÇÃO DE CÓDIGO EM OPENCL Claudio André da SILVA JUNIOR

Leia mais

CRIPTOGRAFIA DE CHAVE PÚBLICA O PAPEL DA ARITMÉTICA EM PRECISÃO MÚLTIPLA

CRIPTOGRAFIA DE CHAVE PÚBLICA O PAPEL DA ARITMÉTICA EM PRECISÃO MÚLTIPLA CRIPTOGRAFIA DE CHAVE PÚBLICA O PAPEL DA ARITMÉTICA EM PRECISÃO MÚLTIPLA Aline Sousa da Silveira* (IC), Antonio Cândido Faleiros (PQ) Divisão de Ensino Fundamental IEF Instituto Tecnológico de Aeronáutica

Leia mais

Análise da segurança de esteganocriptografia em seqüências de imagens p.1/33

Análise da segurança de esteganocriptografia em seqüências de imagens p.1/33 Análise da segurança de esteganocriptografia em seqüências de imagens LNCC - Fev/2007 Fábio Borges de Oliveira Análise da segurança de esteganocriptografia em seqüências de imagens p.1/33 Divisão do trabalho

Leia mais

Algoritimos e Estruturas de Dados III CIC210

Algoritimos e Estruturas de Dados III CIC210 Algoritimos e Estruturas de Dados III CIC210 Divisão e Conquista Haroldo Gambini Santos Concurso Universidade Federal de Ouro Preto - UFOP 3 de setembro de 2009 Haroldo Gambini Santos Divisão e Conquista

Leia mais