Workshop de Informática Biomédica (WIBm)

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

Download "Workshop de Informática Biomédica (WIBm)"

Transcrição

1 42 UTILIZAÇÃO DE UNIDADES DE PROCESSAMENTO GRÁFICO EM SIMULAÇÕES DO PROBLEMA DE PONTOS ALEATÓRIOS Cristiano Roberto Fabri Granzotti 1, Alexandre Souto Martinez 1 1 Laboratório de Simulação em Sistemas Complexos, Departamento de Física - FFCLRP, USP Ribeirão Preto, Brasil Resumo: Este estudo apresenta a utilização de unidade gráfica de processamento (GPUs) da NVIDIA em modelos de física estatística e física biológica. Simulações nestas áreas são baseadas em técnicas de Monte Carlo, que podem diminuir o tempo de processamento em algumas ordens de grandeza, ao serem implementadas na GPU. O ganho se deve ao massivo paralelismo do processamento da unidade gráfica. O modelo considerado é uma estatística de distâncias entre N pontos do problema de pontos aleatórios, que descreve uma distribuição de distâncias de um ponto aos vizinhos mais próximos. Palavras-chave: Cuda, Monte Carlo, Epidemiologia. Abstract: This study presents the use of NVIDIA graphic processing unit (GPUs) in statistical physics and biological physics models. In these subjects, simulations are based on Monte Carlo techniques, which can reduce the processing time by some orders of magnitude, when implemented in the GPU. The gain is due to the massively parallel processing of graphic unit. The model considered is the statistic distance among N points in the random points problem, which describes a distribution of distances from a point to the closest neighbours. Keywords: Cuda, Monte Carlo, Epidemiology. Introdução A maioria dos algoritmos de simulação é escrito para processar a informação de maneira serial, ou seja, apenas uma instrução é processada a cada intervalo de tempo, a grosso modo o intervalo é determinado pelo clock do processador. Em contrapartida, os algoritmos paralelos utilizam múltiplos recursos computacionais para realizar mais de uma instrução simultaneamente. Recentemente, a NVIDIA 1 introduziu o CUDA, uma arquitetura geral de processamento, com um novo modelo de programação em paralelo. O CUDA é um ambiente de software que permite desenvolver de maneira ágil códigos em C, C++, Java, Fortran, Direct Compute e OpenCL. Esta plataforma de desenvolvimento tem sido amplamente utilizada nos mais diversos campos de pesquisa, tais como modelos de redes 2, astronomia 3, processamento de imagens 4, criptografia 5, etc. As redes bidimensionais são amplamente aplicadas no estudo de epidemiologia e teoria da informação, em que cada nó, ou sítio, representa um indivíduo. Em geral, essas redes são altamente organizadas, ou seja, a distância entre um indivíduo e seus vizinhos mais próximos apresenta sempre o valores bem definidos. Em contrapartida, há a situação em que as coordenados dos indivíduos são distribuídas de maneira aleatória, seguindo a função densidade de probabilidade (pdf) uniforme nas arestas de um hipercubo. Este é o problema de pontos aleatórios 6, que consiste em uma abordagem para a obtenção de um meio desordenado. Neste caso, a distância entre um indivíduo e seus vizinhos mais próximos não é definida de maneira trivial. Recentemente, mostramos que a pdf que descreve a distribuição de distâncias entre vizinhos é a distribuição de Stacy 7.

2 43 A validação do resultado analítico é obtida por meio de simulações numéricas de Monte Carlo. A primeira versão do código, que simula o problema da estatística de distâncias, é serial. Ela é executada na CPU e torna-se bastante lenta, principalmente quando o sistema é composto por muitos sítios. Com o objetivo de obter simulações mais rápidas e com maior quantidade de pontos, o CUDA C foi escolhido para codificar a segunda versão do algoritmo da estatística de distâncias. As principais vantagens desta escolha são o baixo custo da unidade gráfica e o fato da paralelização na GPU permitir uma migração mais fácil do código para clusters de CPUs, caso seja necessário. Métodos O CUDA C permite estender a linguagem C ao definir procedimentos que são executados em paralelo na GPU. Estes procedimentos são chamados de kernels. A diferença do procedimento na GPU é que o código pode ser executado simultaneamente por várias threads. A paralelização do código é possível somente se o problema permitir e esta deve seguir a hierarquia de execução padrão definida pela NVIDIA: Multiprocessadores São unidades físicas de processamento que agrupam vários blocos. Blocos São também conhecidos como cores e estão fisicamente presentes no interior de cada multiprocessador. Threads É a capacidade de um bloco executar instruções correspondentes a várias linhas de execução, que podem ser executadas paralelamente ou serialmente. O principal motivo do ganho de desempenho é que as GPUs são dedicadas ao processamento de dados, não tendo a função de guardar informações em memórias cache extensas nem tratar de controle de fluxo altamente complexo. Desta forma, na GPU há uma área menor destinada à memória cache do que na CPU, assim como ilustrado na Figura 1. Figura 1: A CPU dedica parte considerável dos recursos para controle de fluxo e para guardar dados em memórias cache. Essa mesma característica não está presente na GPU, a qual diminui estas funções visando ganho no tempo de processamento. Entretanto essa diminuição de controle de fluxo exige mais recursos do programador, pois ele tem que determinar qual thread irá executar determinada instrução. Assim como na CPU, há diversos tipos de memória na GPU, que são utilizadas para diferentes fins:

3 44 Registradores É o tipo de memória mais rápida na GPU. Usualmente, as variáveis declaradas dentro de um kernel residem neste espaço de memória. Memória compartilhada Também conhecida como shared memory, ela pode ser tão rápida quanto os registradores. Está localizada em cada bloco, sendo acessível a- penas às threads deste bloco. O tempo de vida desta memória é o mesmo do bloco. Memória global É o análogo da memória RAM da CPU. Ela é duas ordens de grandeza mais lenta que os registradores. A transferência de dados da CPU para GPU e vice-versa ocorre por intermédio desta memória. Memória de Constantes É um tipo de memória apenas de leitura para a GPU, sendo otimizada para o caso em que todas as threads acessam um mesmo endereçamento de memória ao mesmo tempo. Completando as características da GPU, há o compute capability, que está relacionado com características do hardware e do software. Esta grandeza é representada por dois números de revisão (tal como 1.3). O primeiro deles é relativo à arquitetura dos blocos e o segundo relacionado a novas funcionalidades do software, tal como uma nova biblioteca. A abordagem serial para codificar a estatística de distâncias está descrita passo a passo a seguir, sendo representada no fluxograma da Figura Gerar as N coordenadas dos pontos em cada aresta do hipercubo d-dimensional seguindo a pdf uniforme. São necessários N d espaços de memória para armazenar as coordenadas; 2. Calcular a distância entre todos os pares de pontos. São necessários N N espaços de memória e cada linha desta matriz guarda a distância de um dado ponto a todos os demais; 3. Encontrar os µ primeiros vizinhos de cada ponto e armazenar as distâncias a cada um deles em uma tabela que consome N µ espaços de memória; 4. Obter o histograma das µ-ésimas primeiras ordens de vizinhança. São necessários µ nbin posições de memória, em que nbin é o número de classes do histograma. 5. Figura 2: Fluxograma da codificação serial da simulação da estatística de distância na CPU de acordo com os passos listados acima. Esta mesma abordagem não pode ser implementada para GPUs. O fator limitante neste caso é a memória global que, em geral, é limitada a 1 Gb. Todavia, é possível contornar este problema realizando uma divisão dos cálculos.

4 45 Em geral, as dimensões utilizadas são baixas (espaço tridimensional), enquanto o número de pontos é grande. Desta maneira, guardar toda a matriz de distâncias é inviável. A forma de contornar o problema é guardar toda a tabela de coordenadas, pois ela contém informação global para o cálculo das distâncias e a tabela do histograma, que ocupa pouco espaço. Sendo assim, sobra margem para aumentar ou diminuir a matriz de distâncias e tabela de primeiros vizinhos. Se a estatística de distância for processada para os N pontos, são necessárias N 2 +Nµ posições de memória para armazenar a matriz de distâncias e a tabela de primeiros vizinhos. Contudo, só é possível armazenar n distâncias para serem processadas em paralelo, sendo n determinado a partir da seguinte regra: nn+µn=memória livre. O próximo passo é gerar toda a tabela de coordenadas, o que é feito em paralelo (concorrentemente) na GPU pelo algoritmo CURAND, disponibilizado pela NVIDIA. Em um caso hipotético em que N=1000 e n=100, após a geração das coordenadas a CPU chama na GPU o procedimento que calcula as distâncias, informando a este para calcular em paralelo a distância entre cada um dos n pontos e seus vizinhos. No próximo passo, a CPU chama na GPU a função que encontra as µ-ésimas primeiras distâncias dos n pontos. Essa função encontra os µ primeiras distâncias para cada um dos 100 pontos, o que ocorre em paralelo para cada ponto. O último passo é o calculo do histograma. Ele consiste em verificar a qual classe o valor de distância pertence. Essa verificação ocorre para todas as classes ao mesmo tempo e obviamente apenas uma retornará como aquela à qual a distância pertence, a essa classe é somada uma ocorrência. Dessa maneira, é finalizado o cálculo para os primeiros n pontos. Agora, são realizados os mesmos passos para os pontos de 101 à 200, de 201 à 300,..., de 901 à Note que a CPU faz N/n = frac chamadas na GPU às funções: cálculo de distâncias, primeiras distâncias e histograma. O código torna-se, portanto, serial paralelo, assim como ilustrado no fluxograma da Figura 3. Figura 3: Implementação paralela da estatística de distâncias.

5 46 Resultados A função densidade de probabilidade que descreve a estatística de distância foi obtida de duas maneiras distintas, com argumentação geométrica e com uma argumentação baseada na utilização de funções acumuladas, sendo dada pela Equação 1. k kd / 2 dk 1 d / 2 d 1 dn r N r f ( r) exp (1) dk k d ( k) L [ (1 d / 2)] L (1 d / 2) em que: r é a distância entre os sítios; N é o numero de pontos do meio; d é a dimensionalidade do sistema; k é a ordem de vizinhança; L é comprimento da aresta do hipercubo. Os resultados por simulação foram validados por meio da Equação 1 e estão presentes no gráfico da Figura 4. Figura 4: Distribuição de distâncias do primeiro ao quarto vizinho em um ambiente unidimensional. Foram considerados 512 pontos, 1000 realizações e condições abertas de contorno. As curvas cheias representam a Equação 1. Figura 5: Tempo de processamento em função do número de pontos. O aumento do ganho deve-se ao fato de que a complexidade computacional foi reduzida na GPU. Esta comparação foi realizada entre um processador AMD Phenon X6 3.3 GHz e uma placa Geforce GTX 580.

6 47 O ganho de desempenho obtido com a utilização da GPU está ilustrado no gráfico da Figura 5. Este ganho de desempenho é de uma ordem de grandeza em sistemas com tamanho acima de 4096 pontos. Em sistemas muito pequenos, tal como N=128 pontos, a CPU torna-se mais rápida que a GPU, pois o processo de configuração da GPU e transferência de informação requer tempo. Discussão Em geral, na literatura 2,3, encontram-se casos onde o ganho de desempenho é de duas ordens de grandeza, enquanto que no algoritmo da estatística de distâncias ele é de apenas uma. Esta discrepância no desempenho ocorre devido à natureza do problema físico envolvido e às limitações físicas da GPU. Grande parte dos códigos de simulação de Monte Carlo utiliza a memória compartilhada para armazenar parte dos dados durante o processamento (nas arquiteturas mais modernas, há 48 kilobytes desta memória por bloco), pois esta memória é duas ordens de grandeza mais veloz que a memória global, de forma que tanto a leitura quanto a escrita são processos rápidos. No problema da estatística de distâncias, não há como lançar mão deste artifício devido à sua natureza de longo alcance, ou seja, no caso da matriz de distância os pontos mais próximo do ponto 1 podem ser qualquer ponto, de forma que não há meio de carregar partes das distâncias para realizar a busca do ponto mais próximo, por exemplo. Conclusão A plataforma CUDA C mostra-se como uma excelente aplicação para o desenvolvimento de aplicativos baseados em simulação de Monte Carlo, principalmente naquelas onde há interações de curto alcance, tal como no modelo de Ising. No algoritmo da estatística de distâncias, não foi possível lançar mão do uso da memória compartilhada. Mesmo assim, foi possível obter ganhos de desempenho de uma ordem de grandeza em tempo de execução. Referências [1] NVIDIA CUDA C Programming Guide. v Disponível em Acessado em 10 set [2] Tal Levy, Guy Cohen, Eran Rabani. Simulating Lattice Spin Models on Graphics Processing Units. arxiv: [3] Bharath Pattabiraman, Stefan Umbreit, Wei-keng Liao, Alok Choudhary, Vassiliki Kalogera, Gokhan Memik. A Parallel Monte Carlo Code for Simulating Collisional N body Systems. arxiv: v1. [4] Dalong Liu, Emad S. Ebbini. Real-Time 2-D Temperature Imaging Using Ultrasound. IEEE Transactions on Biomedical Engineering. v. 53. n. 1. p [5] Anderson Gonçalves Marco, Alexandre Souto Martinez, Odemir Martinez Bruno. Fast, Parallel And Secure Cryptography Algorithm Using Lorenz's Attractor. International Journal of Modern Physics C. v. 21. n. 3. p [6] Terçariol CAS, Martinez AS. An Efficient Algorithm to Generate Random Uncorrelated Euclidean Distances: The Random Link Model. Brazilian Journal of Physics. v. 36. p

7 48 [7] Gavin E. Crooks. The Amoroso Distribution. arxiv: v1. Contato Cristiano Roberto Fabri Granzotti Graduando em Física Médica no Departamento de Física da FFCLRP da USP de Ribeirão Preto. Laboratório de Modelagem em Sistemas Complexos, sala 408, bloco B5. Tel: Alexandre Souto Martinez Professor Associado ao Departamento de Física da FFCLRP da USP de Ribeirão Preto. Laboratório de Modelagem em Sistemas Complexos, sala 408, bloco B5. Tel: Sala

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

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

Implementação de um escalonador de processos em GPU

Implementação de um escalonador de processos em GPU Implementação de um escalonador de processos em GPU Guilherme Martins guilhermemartins@usp.br 6 de abril de 2017 Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos

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

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

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

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

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES João Ricardo Kohler Abramoski (PAIC/FUNDAÇÃO ARAUCÁRIA), Sandra Mara Guse Scós Venske (Orientadora), e-mail: ssvenske@unicentro.br

Leia mais

What is? Eduardo Viola Nicola Disciplina de IPPD

What is? Eduardo Viola Nicola Disciplina de IPPD What is? Eduardo Viola Nicola evnicola@inf.ufpel.edu.br Disciplina de IPPD Sumário 1)Introdução 2)Princípio Geral de Funcionamento 3)Exemplos de Aplicações 4)Modelo de Programação 5)Linguagens Suportadas

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

Fabrício Gomes Vilasbôas

Fabrício Gomes Vilasbôas Fabrício Gomes Vilasbôas Apresentação Placas Arquitetura Toolkit e Ferramentas de Debug Pensando em CUDA Programação CUDA Python Programação PyCUDA 1) Grids( padrão Globus) 2) Clusters ( padrão MPI) 3)

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

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

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

Paralelização do Detector de Bordas Canny para a Biblioteca ITK usando CUDA

Paralelização do Detector de Bordas Canny para a Biblioteca ITK usando CUDA Paralelização do Detector de Bordas Canny para a Biblioteca ITK usando CUDA Luis Henrique Alves Lourenço Grupo de Visão, Robótica e Imagens Universidade Federal do Paraná 7 de abril de 2011 Sumário 1 Introdução

Leia mais

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

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 1 Introdução 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 possa resolver problemas de forma automática

Leia mais

Introdução à Programação Paralela através de Padrões. Denise Stringhini Calebe Bianchini Luciano Silva

Introdução à Programação Paralela através de Padrões. Denise Stringhini Calebe Bianchini Luciano Silva Introdução à Programação Paralela através de Padrões Denise Stringhini Calebe Bianchini Luciano Silva Sumário Introdução: conceitos de paralelismo Conceitos básicos sobre padrões de programação paralela

Leia mais

3 Computação de Propósito Geral em Unidades de Processamento Gráfico

3 Computação de Propósito Geral em Unidades de Processamento Gráfico 3 Computação de Propósito Geral em Unidades de Processamento Gráfico As Unidades de Processamento Gráfico (GPUs) foram originalmente desenvolvidas para o processamento de gráficos e eram difíceis de programar.

Leia mais

UNIVERSIDADE FEDERAL DO PARÁ PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO DIRETORIA DE PESQUISA PROGRAMA INSTITUCIONAL DE BOLSAS DE INICIAÇÃO CIENTÍFICA

UNIVERSIDADE FEDERAL DO PARÁ PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO DIRETORIA DE PESQUISA PROGRAMA INSTITUCIONAL DE BOLSAS DE INICIAÇÃO CIENTÍFICA UNIVERSIDADE FEDERAL DO PARÁ PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO DIRETORIA DE PESQUISA PROGRAMA INSTITUCIONAL DE BOLSAS DE INICIAÇÃO CIENTÍFICA RELATÓRIO TÉCNICO CIENTÍFICO Período: Outubro/2015 a

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

Introdução OpenMP. Nielsen Castelo Damasceno

Introdução OpenMP. Nielsen Castelo Damasceno Introdução OpenMP Nielsen Castelo Damasceno Computação de auto desempenho Processamento Paralelo Memória Distribuída e Compartilhada Modelo de programação OpenMP Métricas de Desempenho Computação de auto

Leia mais

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

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação PROGRAMAÇÃO PARALELA

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

5 Unidades de Processamento Gráfico GPUs

5 Unidades de Processamento Gráfico GPUs 5 Unidades de Processamento Gráfico GPUs As GPUs são processadores maciçamente paralelos, com múltiplos elementos de processamento, tipicamente utilizadas como aceleradores de computação. Elas fornecem

Leia mais

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

Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Filipo Mór Bacharelado em Sistemas de Informação Sistemas Operacionais Prof. Filipo Mór WWW.FILIPOMOR.COM - REVISÃO ARQUITETURAS PARALELAS Evolução das Arquiteturas Evolução das Arquiteturas Entrada CPU Saída von

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

Sumário. Referências utilizadas. Introdução. MAFIA: Merging of Adaptive Finite Intervals. Introdução Visão Geral e Objetivos do MAFIA

Sumário. Referências utilizadas. Introdução. MAFIA: Merging of Adaptive Finite Intervals. Introdução Visão Geral e Objetivos do MAFIA Sumário : Merging of Adaptive Finite Intervals Elaine Ribeiro de Faria Análise de Agrupamento de Dados ICMC-USP Dezembro 2010 Introdução Visão Geral e Objetivos do Algoritmo Grid Adaptativo Algoritmo Algoritmo

Leia mais

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

Programação de Alto Desempenho - 2. Prof: Carla Osthoff Programação de Alto Desempenho - 2 Prof: Carla Osthoff E-mail: osthoff@lncc.br 3- Modelos de programação paralela Shared Memory/Threads Posix Win32 treads OpenMP Message Passing MPI Data Parallel OpenCL/Cuda

Leia mais

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

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 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 Os hardwares gráficos atualmente podem ser considerados como verdadeiros processadores

Leia mais

Carlos Eduardo Batista Centro de Informática - UFPB

Carlos Eduardo Batista Centro de Informática - UFPB Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Motivação Arquitetura de computadores modernos Desafios da programação concorrente Definição de concorrência Correr junto Disputa por

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

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

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 13/11/2017 ALUNO

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 13/11/2017 ALUNO INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 13/11/2017 ALUNO 1. Sockets - Indicar (Verdade/Falso): (2.0) (a) (Verdade/Falso) A comunicação entre processos consiste em transmitir uma mensagem entre

Leia mais

Eng. Thársis T. P. Souza

Eng. Thársis T. P. Souza Introdução à Computação de Alto Desempenho Utilizando GPU Seminário de Programação em GPGPU Eng. Thársis T. P. Souza t.souza@usp.br Instituto de Matemática e Estatística - Universidade de São Paulo Introdução

Leia mais

Paralelização do Método de Jacobi em Memória Compartilhada 1

Paralelização do Método de Jacobi em Memória Compartilhada 1 Paralelização do Método de Jacobi em Memória Compartilhada 1 Claudio Schepke cschepke@inf.ufrgs.br 1 PPGC - Instituto de Informática - UFRGS Introdução ao Processamento Paralelo e Distribuído Professor

Leia mais

MC4: Introdução à Programação Paralela em GPU para a Implementação de Métodos Numéricos

MC4: Introdução à Programação Paralela em GPU para a Implementação de Métodos Numéricos MC4: Introdução à Programação Paralela em GPU para a Implementação de Métodos Numéricos Aula 1: Introdução à programação paralela e ao ambiente de programação CUDA Profs.: Daniel Alfaro e Silvana Rossetto

Leia mais

Paralelização do algoritmo de Método de Estimação Não-Paramétrico por Núcleo Estimador Multivariado (KDE) utilizando GPU/CUDA

Paralelização do algoritmo de Método de Estimação Não-Paramétrico por Núcleo Estimador Multivariado (KDE) utilizando GPU/CUDA See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/271325676 Paralelização do algoritmo de Método de Estimação Não-Paramétrico por Núcleo Estimador

Leia mais

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

ENGENHARIA DE SISTEMAS MICROPROCESSADOS ENGENHARIA DE SISTEMAS MICROPROCESSADOS Prof. Pierre Vilar Dantas Turma: 0040-A Horário: 4N Aula 01-26/07/2017 Plano de ensino Professor www.linkedin.com/in/pierredantas/ TÓPICOS Conceitos gerais. Evolução

Leia mais

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

é a saida do melhor individuo. A configuração de parâmetros da 61 4 4.1. Configuração Neste capítulo, comparam-se os resultados e o desempenho obtidos pela PGLIQ com a extensão do modelo proposto GPU-PGLIQ-I que foi desenvolvido nesta dissertação. Apresentam-se dois

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

Arquiteturas paralelas Parte 1

Arquiteturas paralelas Parte 1 Arquiteturas paralelas Parte 1 Processamento Paralelo Prof. Oberlan Romão Departamento de Computação e Eletrônica DCEL Centro Universitário Norte do Espírito Santo CEUNES Universidade Federal do Espírito

Leia mais

Aplicações em CUDA. Medialab Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center

Aplicações em CUDA. Medialab Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center Aplicações em CUDA Medialab Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center Roteiro l Introdução l Eventos l Aspectos históricos l Operações atômicas l Introdução sobre

Leia mais

COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1

COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1 COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1 Márcia Da Silva 2, Igor Gamste Haugg 3, Eliézer Silveira Prigol 4, Édson L. Padoin 5, Rogério S. M. Martins

Leia mais

GPU (Graphics Processing Unit) Bruno Padilha Gregory De Bonis Luciana Kayo

GPU (Graphics Processing Unit) Bruno Padilha Gregory De Bonis Luciana Kayo GPU (Graphics Processing Unit) Bruno Padilha - 5745282 Gregory De Bonis - 6431180 Luciana Kayo - 6430992 O que é? O que é? - Processador auxiliar responsável principalmente por operações de ponto flutuante

Leia mais

5.1. Caso 1 Cálculo da Energia e Estrutura de Bandas de Nanotubos

5.1. Caso 1 Cálculo da Energia e Estrutura de Bandas de Nanotubos 5 Estudo de Casos Neste capítulo, serão descritos os sistemas físicos e as suas propriedades calculadas com o objetivo comparar o desempenho computacional de uma GPU com o desempenho obtido com uma CPU.

Leia mais

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização Hardware: Componentes Básicos Arquitetura dos Computadores Dispositivos de Entrada Processamento Dispositivos de Saída Armazenamento Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Sistema de

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Memória Cache Slide 1 Introdução Tamanho Função de Mapeamento Política de Escrita Tamanho da Linha Número de Memórias Cache Cache em Níveis Slide 2 Introdução

Leia mais

Monitorando o Consumo Energético de Aplicações Concorrentes com Arduino

Monitorando o Consumo Energético de Aplicações Concorrentes com Arduino Monitorando o Consumo Energético de Aplicações Concorrentes com Arduino Bruno Giacobo Pinto Lucas Mendonça da Silva Xavier Gerson G. H. Cavalheiro Laboratory of Ubiquitous and Parallel Systems Universidade

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES RCM00014 Haswell wafer ARQUITETURA DE COMPUTADORES Prof. Luciano Bertini Site: http://www.professores.uff.br/lbertini/ Objetivos do Curso Entendimento mais aprofundado do funcionamento

Leia mais

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião Processos Sistemas operacionais modernos criam vários processadores virtuais, cada um para executar um programa. Para monitorar

Leia mais

Linguagem de Programação II

Linguagem de Programação II Linguagem de Programação II Carlos Eduardo Ba6sta Centro de Informá6ca - UFPB bidu@ci.ufpb.br Mo6vação Adaptar a estrutura lógica de um problema (Ex.: Servidores Web). Lidar com disposi6vos independentes

Leia mais

The future is parallel but it may not be easy

The future is parallel but it may not be easy The future is parallel but it may not be easy Adriano Tabarelli, Alex Morinaga, Caio Silva, Cássia Ferreira, Daniel Santos, Eduardo Apolinário, Hugo Posca, Thiago Batista, Paulo Floriano Universidade de

Leia mais

Microprocessadores. São máquinas elétricas onde podemos armazenar instruções lógicas, aritméticas e de tomada de decisão;

Microprocessadores. São máquinas elétricas onde podemos armazenar instruções lógicas, aritméticas e de tomada de decisão; Microprocessadores São máquinas elétricas onde podemos armazenar instruções lógicas, aritméticas e de tomada de decisão; CPU (Central Processing Unit Unidade Central de Processamento) CPU (Central Processing

Leia mais

Introdução à Computação: Sistemas de Computação

Introdução à Computação: Sistemas de Computação Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,

Leia mais

CUDA: Compute Unified Device Architecture. Marco Antonio Simões Teixeira

CUDA: Compute Unified Device Architecture. Marco Antonio Simões Teixeira CUDA: Compute Unified Device Architecture Marco Antonio Simões Teixeira Sumário Introdução; CUDA: História; CUDA: programando; CUDA e deep learning; Links úteis; Considerações finais. 2 INTRODUÇÃO 3 O

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

Reconhecimento de texturas utilizando padrão binário local e classificador knn.

Reconhecimento de texturas utilizando padrão binário local e classificador knn. Reconhecimento de texturas utilizando padrão binário local e classificador knn. Vinicius Santos Andrade 1 Resumo. Através de uma imagem é possível obter inúmeras informações. Portanto, é cada vez mais

Leia mais

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

Universidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD Universidade Federal do Rio de Janeiro Informática DCC/IM Arquitetura de Computadores II Arquiteturas MIMD Arquiteturas MIMD As arquiteturas MIMD dividem-se em dois grandes modelos: Arquiteturas MIMD de

Leia mais

COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto

COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES Adão de Melo Neto 1 INTRODUÇÃO Desde 1950, houveram poucas inovações significativas nas áreas de arquitetura e organização de computadores. As principais

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

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL INTRODUÇÃO À TECNOLOGIA DA ORGANIZAÇÃO COMPUTACIONAL PROFESSOR CARLOS MUNIZ ORGANIZAÇÃO DE UM COMPUTADOR TÍPICO Memória: Armazena dados e programas Processador (CPU - Central Processing Unit): Executa

Leia mais

Barramento. Prof. Leonardo Barreto Campos 1

Barramento. Prof. Leonardo Barreto Campos 1 Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;

Leia mais

PROCESSADORES SUPERESCALARES FELIPE G. TORRES

PROCESSADORES SUPERESCALARES FELIPE G. TORRES PROCESSADORES SUPERESCALARES FELIPE G. TORRES PROCESSAMENTO DAS INSTRUÇÕES Como podemos melhorar esse processamento? Arquitetura de computadores 2 PROCESSAMENTO DAS INSTRUÇÕES Como uma abordagem simplificada,

Leia mais

Puca Huachi Vaz Penna

Puca Huachi Vaz Penna BCC201 Introdução à Computação Turmas 61, 62, 63, 64, 65 e 66 Puca Huachi Vaz Penna Departamento de Computação Universidade Federal de Ouro Preto http://www.decom.ufop.br/puca puca@iceb.ufop.br Aula 2

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

Arquitetura de Computadores II

Arquitetura de Computadores II Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Arquitetura de Computadores II Prof. Flávio Rogério Uber Informações Úteis Professor: Flávio Rogério Uber Bloco C-56 Sala

Leia mais

Memory-level and Thread-level Parallelism Aware GPU Architecture Performance Analytical Model

Memory-level and Thread-level Parallelism Aware GPU Architecture Performance Analytical Model Memory-level and Thread-level Parallelism Aware GPU Architecture Performance Analytical Model Sunpyo Hong Hyesoon Kim ECE School of Computer Science Georgia Institute of Technology April 6, 2011 Visão

Leia mais

Brilliant Solutions for a Safe World

Brilliant Solutions for a Safe World IDENTIFICAÇÃO DE FACE E RASTREAMENTO DE MOVIMENTO PARA SISTEMAS DE GERENCIAMENTO DE VÍDEO (VMS) SentiVeillance Server é um software de identificação biométrica de faces e rastreamento de movimento pronto

Leia mais

Aula 06. Slots para Memórias

Aula 06. Slots para Memórias Aula 06 Slots para Memórias Slot para as memórias 2 Slot para as memórias Os soquetes de memória são numerados: 1, 2 e 3. Instale memória primeiro no 1, depois no 2, depois no 3. Normalmente não é permitido

Leia mais

SSC510 Arquitetura de Computadores 1ª AULA

SSC510 Arquitetura de Computadores 1ª AULA SSC510 Arquitetura de Computadores 1ª AULA REVISÃO DE ORGANIZAÇÃO DE COMPUTADORES Arquitetura X Organização Arquitetura - Atributos de um Sistema Computacional como visto pelo programador, isto é a estrutura

Leia mais

SSC0611 Arquitetura de Computadores

SSC0611 Arquitetura de Computadores SSC0611 Arquitetura de Computadores 5ª e 6ª Aulas Revisão de Hierarquia de Memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Memória Memória Todo componente capaz de armazenar bits de informação

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

USO DE PARALELISMO DE DADOS PARA MAIOR EFICIÊNCIA DE ALGORITMOS DE PROCESSAMENTO DE IMAGENS

USO DE PARALELISMO DE DADOS PARA MAIOR EFICIÊNCIA DE ALGORITMOS DE PROCESSAMENTO DE IMAGENS Universidade Federal de Ouro Preto - UFOP Instituto de Ciências Exatas e Biológicas - ICEB Departamento de Computação - DECOM USO DE PARALELISMO DE DADOS PARA MAIOR EFICIÊNCIA DE ALGORITMOS DE PROCESSAMENTO

Leia mais

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

INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Função e Estrutura. Introdução Organização e Arquitetura. Organização e Arquitetura Introdução Organização e Arquitetura INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES Eduardo Max Amaro Amaral Arquitetura são os atributos visíveis ao programador. Conjunto de instruções, número

Leia mais

INTRODUÇÃO AOS SISTEMAS LÓGICOS INTRODUÇÃO

INTRODUÇÃO AOS SISTEMAS LÓGICOS INTRODUÇÃO 1 INTRODUÇÃO AOS SISTEMAS LÓGICOS INTRODUÇÃO 2 O COMPUTADOR 3 O COMPUTADOR 4 O COMPUTADOR Blocos funcionais 5 TIPOS DE COMPUTADOR Você conhece os diferentes tipos de computador? 6 TIPOS DE COMPUTADOR PC

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

Clusterização K-Means Paralelo Aplicado na Classificação de Alvos em Imagens de Alta Resolução

Clusterização K-Means Paralelo Aplicado na Classificação de Alvos em Imagens de Alta Resolução Clusterização K-Means Paralelo Aplicado na Classificação de Alvos em Imagens de Alta Resolução Luís Paulo Manfré Ribeiro luis.ribeiro@inpe.br Instituto Nacional de Pesquisas Espaciais - INPE São José dos

Leia mais

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend Concorrência Nos sistemas Monoprogramáveis somente um programa pode estar em execução por vez, permanecendo o processador dedicado a esta única tarefa. Os recursos como memória, processador e dispositivos

Leia mais

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação MULTIPROCESSADORES

Leia mais

Algoritmos Computacionais

Algoritmos Computacionais UNIDADE 1 Processador e instruções Memórias Dispositivos de Entrada e Saída Software ARQUITETURA BÁSICA UCP Unidade central de processamento MEM Memória E/S Dispositivos de entrada e saída UCP UNIDADE

Leia mais

Arquiteturas RISC e CISC. Adão de Melo Neto

Arquiteturas RISC e CISC. Adão de Melo Neto Arquiteturas RISC e CISC Adão de Melo Neto 1 Arquitetura RISC Arquitetura RISC. É um das inovações mais importantes e interessantes. RISC significa uma arquitetura com um conjunto reduzido de instruções

Leia mais

Principais Componentes do Gabinete. Componentes Básicos de um Computador. CPU ou UCP (Processador) 17/02/2017

Principais Componentes do Gabinete. Componentes Básicos de um Computador. CPU ou UCP (Processador) 17/02/2017 Professora: Janaide Nogueira E-mail: nogueirajanaide@gmail.com Materiais: https://janaide.wordpress.com Componentes Básicos de um Computador Principais Componentes do Gabinete 3 4 CPU ou UCP (Processador)

Leia mais

Multiprogramação leve em arquiteturas multi-core

Multiprogramação leve em arquiteturas multi-core Multiprogramação leve em arquiteturas multi-core Prof. Dr. Departamento de Informática Universidade Federal de Pelotas Sumário Arquiteturas multi-core Programação multithread Ferramentas de programação

Leia mais

Concorrência em Processos

Concorrência em Processos Concorrência em Processos Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Baseado nas aulas do professor Alberto Costa Neto da UFS 1 O que fazer com essa apresentação

Leia mais

ORGANIZAÇÃO DE COMPUTADORES

ORGANIZAÇÃO DE COMPUTADORES Organização de Computadores ORGANIZAÇÃO DE COMPUTADORES Curso: Tecnologia em Gestão da Tecnologia da Informação Ano: 2011 Conhecida como Processador ou é o cerebro do computador Unifica todo sistema e

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

speedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado

speedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado Multiprocessadores - A evolução tecnológica dos processadores iria diminuir drasticamente. 2- O caminho para o aumento de desempenho é de unir mais de um processador para realizar a mesma tarefa em menos

Leia mais

Santos Dumont - LNCC: Utilização e Pesquisa. Carla Osthoff e Roberto Souto CENAPAD/LNCC Laboratório Nacional de Computação Científica

Santos Dumont - LNCC: Utilização e Pesquisa. Carla Osthoff e Roberto Souto CENAPAD/LNCC Laboratório Nacional de Computação Científica Santos Dumont - LNCC: Utilização e Pesquisa Carla Osthoff e Roberto Souto CENAPAD/LNCC Laboratório Nacional de Computação Científica www.lncc.br 1 Laboratório Nacional de Computação Científica LNCC/ MCTIC

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I BARRAMENTO Slide 1 Sumário Introdução Componentes de Computador Funções dos Computadores Estruturas de Interconexão Interconexão de Barramentos Slide 2 Introdução

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

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5 Cristina Boeres Introdução! Diferença de velocidade entre Processador e MP O processador executa uma operação rapidamente e fica em

Leia mais

Estrutura de um computador digital. Gustavo Queiroz Fernandes

Estrutura de um computador digital. Gustavo Queiroz Fernandes Gustavo Queiroz Fernandes Atualizado em: 18/02/2019 Sumário Objetivos... 1 Pré-requisitos... 1 Recursos e Materiais... 1 Última Atualização... 1 1. Memória primária... 1 2. Memória secundária... 2 3. Unidade

Leia mais

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores Ciência da Computação Arq. e Org. de Computadores Processadores Prof. Sergio Ribeiro Composição básica de um computador eletrônico digital: Processador Memória Memória Principal Memória Secundária Dispositivos

Leia mais

SSC510 Arquitetura de Computadores. 6ª aula

SSC510 Arquitetura de Computadores. 6ª aula SSC510 Arquitetura de Computadores 6ª aula PARALELISMO EM NÍVEL DE PROCESSOS PROFA. SARITA MAZZINI BRUSCHI Tipos de Paralelismo Instrução (granulosidade fina) Paralelismo entre as instruções Arquiteturas

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Thaís Vasconcelos Batista UFRN DIMAp http://www.dimap.ufrn.br/~thais thais@ufrnet.br Programa do Curso INTRODUÇÃO Conceitos Básicos Sistemas em Rede X Sistemas Distribuídos Necessidade

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

Programação Concorrente

Programação Concorrente INE 5410 Programação Concorrente Professor: Lau Cheuk Lung (turma A) INE UFSC lau.lung@inf.ufsc.br Conteúdo Programático 1. 2. Programação Concorrente 3. Sincronização 1. Condição de corrida, região critica

Leia mais

Hardware. Informática

Hardware. Informática Hardware Informática l Sistema Informatizado Chama-se sistema informatizado a integração que acontece de três componentes básicos: a) Os computadores = hardware b) Os programas = software c) Os seres humanos

Leia mais

BUSCA EM GRAFOS ACELERADA POR GPU

BUSCA EM GRAFOS ACELERADA POR GPU BUS EM GROS ELERD POR Guilherme esar Leite¹, Silvio do Lago Pereira² ¹Tecnólogo em nálise e Desenvolvimento de Sistemas TE-SP ²Prof. Dr. do Departamento de Tecnologia da Informação TE-SP guilhermecesarleite@gmail.com,

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

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