ALGORITMO PARALELO DE PROCESSAMENTO DE IMAGENS DIGITAIS COM HYPER-THREADING E MULTICORE COM PTHREAD

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

Download "ALGORITMO PARALELO DE PROCESSAMENTO DE IMAGENS DIGITAIS COM HYPER-THREADING E MULTICORE COM PTHREAD"

Transcrição

1 ALGORITMO PARALELO DE PROCESSAMENTO DE IMAGENS DIGITAIS COM HYPER-THREADING E MULTICORE COM PTHREAD Leandro Takeshi Hattori 1, Henrique Yoshikazu Shishido 1 1 Coordenação de Engenharia de Computação Campus Cornélio Procópio Universidade Tecnológica Federal do Paraná - UTFPR Av. Alberto Carazzai, Cornélio Procópio - PR leandrotakeshihattori@gmail.com, shishido@utfpr.edu.br Resumo - Esse trabalho descreve uma experiência da implementação de um algoritmo paralelo de procesamento de imagens. A biblioteca usada é a pthread que permite explorar o desempenho oferecido por arquiteturas multithread como multicore e hyper-threading. Essa biblioteca é aplicada para comparar essas diferentes arquiteturas para apresentar o quanto os processadores multicore são mais rápidos que a tecnologia hyper-thread. Os resultados apresentados aqui indicam que processadores hyper-threading melhoram 16% do desempenho enquanto um processadores quad-core atingiu um desempenho 3.98 vezes maior que a aplicação sequencial. Palavras-chave: Hyperthreading, Multicore, Processamento, Imagem, Paralelo. Abstract - This paper describes a experience of the implementation of a parallel algorithm of image processing. The library used is pthread that permits explore the performance provided by multithread architectures such as multicore and hyper-threading. This library is applied to compare this different architectures to show how much multicore processors can be faster than hyper-thread technology. The results presented here indicates that hyper-threading processors improves 16% of speedup and, otherhand, a quad-core processor can achieve a 3.98 of speedup factor than the sequential code. Keywords: Hyperthreading, Multicore, Image, Processing, Parallel. INTRODUÇÃO Para melhorar o desempenho de processadores com apenas um núcleo era preciso aumentar os recursos disponíveis como memória cache, otimizar o pipeline de execução e o clock. Entretanto, as limitações físicas acabaram restringindo o avanço dessas técnicas [2], [3]. Diante dessas circunstâncias, tecnologias alternativas foram desenvolvidas para oferecer maior desempenho a aplicações que demandam alto processamento. Dentre essas arquiteturas, pode-se citar os processadores multicore e hyper-threading. As arquiteturas hyper-threading e multicore são classificadas como arquiteturas de memória compartilhada. A organização para acesso a memória é realizado mediante referências diretas a uma memória global [1]. A vantagem de seu uso é a minimização de overheads externos como a qualidade de transmissão de rede em sistemas distribuídos. Outro fator que conta a favor de sistemas de memória compartilhada é a facilidade de comunicação de dados entre diferentes fluxos de processamento.

2 Alguns trabalhos exploram a análise comparativa do uso de bibliotecas multithread e OpenMP [5], englobando o processamento de imagens digitais [6]. Contudo, encontra-se poucas comparações entre a tecnologia hyper-threading e arquiteturas multicore. Nesse sentido, este trabalho apresenta a paralelização de um algoritmo de processamento de imagens digitais por meio da criação de múltiplas threads. Dentro do contexto apresentado, alguns questionamentos podem ser levantados com o intuito de verificar a viabilidade da aplicação de arquiteturas multicore e hyper-threading em aplicações multithreads: 1. A tecnologia hyper-threading oferece desempenho equivalente à multicore? 2. Qual o ganho de desempenho oferecido por ambas as tecnologias? 3. Quais vantagens da programação em processadores multicore em relação a arquiteturas distribuídas? Este trabalho está organizado em cinco seções, além desta introdução. O Referencial Teórico apresenta um breve referencial teórico relativo ao conceito de hyper-threading, multicore e o embasamento teórico do algoritmo a ser paralelizado. A seção Métodos apresenta os instrumentos de pesquisa utilizados para realizar os experimentos, e os métodos de paralelização utilizados. A seção Modelo Paralelo descreve o modelo do algoritmo paralelo em thread. Na seção de Resultados e Discussão são apresentados os resultados obtidos com a execução da versão paralela em threads em hardware multicore e hyper-threading. E, por fim, a seção Conclusões faz as considerações finais pertinentes a este trabalho. REFERENCIAL TEÓRICO Hyper-threading: a tecnologia hyper-threading (HT) cria a visão de dois processadores lógicos em um único núcleo físico de um chip, compartilhando os demais recursos logicamente. O objetivo é diminuir o tempo ocioso do processador em até 16%, dirigindo tarefas para cada estado do pipeline [4]. Para usufruir dessa arquitetura, os sistemas operacionais necessitam reconhecer e suportar tal tecnologia reconhecendo dois processadores no ambiente. O sistema operacional é encarregado de gerenciar as tarefas aos núcleos lógicos [7]. Internamente, processadores com tecnologia HT possuem filas de execução para diferentes tipos de instruções das etapas do pipeline. Assim, diminui-se a ociosidade de cada etapa. Multicore A tecnologia multicore é uma unidade de processamento que consiste em dois ou mais núcleos físicos. Cada núcleo é tratado como um único processador e, geralmente, possui seus próprios recursos como registradores, memória cache e pipeline. Igualmente em ambientes multiprocessados, processadores multicore permitem que processos e threads possam ser executados paralelamente. No entanto, para que uma única aplicação explore os recursos dessa arquitetura, é preciso reescrevê-la no utilizando alguma biblioteca que permite explorar o paralelismo do processador, como por exemplo, a biblioteca pthread que será apresentada nas próximas seções. Outra alternativa ao pthread é a programação de aplicações através do conceito de processos na qual a comunicação é realizada por meio de passagem de mensagens utilizando padrões como o PVM ou MPI. Dentro desse contexto, cada processo possui a sua memória exclusiva, necessitando do envio e recebimento de mensagens para que haja a comunicação de dados entre processos. ConvoluçãoO algoritmo alvo para proporcionar a comparação das duas arquiteturas exploradas nesse trabalho é fundamentado no processo de convolução aplicado no processamento de ima-

3 gens digitais. A convolução é um método de reconhecimento de padrões e auxilia na obtenção de padrões em imagens [8], [9]. Esse tipo de algoritmo possui parâmetros que influenciam o tempo de execução. Considerando uma imagem de dimensão L linhas e C colunas, é calculado a variabilidade da região de cada pixel(l,c). A região que é calculada a variabilidade do pixel é chamada de janela ou máscara e é definido por dimensões NxN. A convolução é definida por: A convolução consiste em determinar um pixel(l,c) da imagem, coletando a variabilidade dos pixels vizinhos que estão contidos na área abrangida pela máscara. De acordo com o coeficiente de cada elemento da janela é classificado o valor de um pixel, em uma escala de valores entre 0 e 1. Após definido o índice de variabilidade, é possível determinar um tom de cor para ser expressada em uma nova imagem de saída. Algoritmo sequencial Para melhor compreensão do algoritmo a ser paralelizado em threads, o Algoritmo 1 demonstra a lógica do processamento sequencial com ênfase as principais instruções e estruturas. Algoritmo 1 Algoritmo sequencial begin Load image(p ath); Allocate Buf f er Results(); Split intervals(); Do Convolution() for l := 1 to HEIGHT step 1 for c := 1 to W IDT H step 1 Set mask(); F ind pixel interval(); Compute new pixel(); Set mapped values(); Save results(); end A sub-rotina da convolução é inicializada percorrendo a matriz, fazendo L x C chamadas para o calculo de todos os valores dos pixels. Este procedimento tem como objetivo de percorrer toda a matriz determinando um coeficiente para cada pixel. A quantidade de iterações feitas pelos laços são diretamente influenciadas de acordo com o tamanho da imagem de entrada. Os resultados obtidos pelo resultado de convolução são armazenados em uma nova matriz alocada dinamicamente. Após o término das iterações, a nova imagem é gravada. MÉTODOS Esta seção descreve os equipamentos e softwares utilizados para a execução dos experimentos deste trabalho. Além disso, apresenta o método de paralelização em thread. Hardware Para executar o experimento com hyper-threading foi utilizado o processador Intel Core i3 (2.93ghz, 128kb de cache L1 e 4096kb cache L2) com suporte ao hyper-threading

4 em cada núcleo físico, constituindo 2 núcleos físicos e 2 núcleos lógicos. E, para executar o experimento quadcore utilizou-se o processador Intel Quad Core (2.66ghz, 96kb de cache L1 e 4096kb de cache L2), o qual não possui a tecnologia hyper-threading. Entretanto o processador possui os 4 núcleos físicos. Software O sistema operacional utilizado para a execução da aplicação o foi Linux Cento OS 5 com kernel x86. A biblioteca utilizada foi a pthread, a qual é um padrão para sistema operacionais derivados do UNIX. A biblioteca pthread é baseada no padrão UNIX, ou seja, apenas é suportado por sistemas operacionais baseados no UNIX como Linux, Mac OS X, Solaris, entre outros [10]. Além disso, oferece um conjunto de bibliotecas contendo procedimentos em linguagem C/C++ padronizada pelo órgão IEEE. Esta biblioteca possui funcionalidades para o gerenciamento de algoritmos multithread como sincronização e controle da execução de múltiplas threads. Método O método empregado na paralelização do algoritmo de convolução em thread é apresentado na Figura. Um processo é responsável por inicializar as threads que executarão os procedimentos paralelamente. Os experimentos paralelos são executados tanto no processador Intel Quad Core, utilizando os quatro núcleos disponíveis da arquitetura, quanto no processador Intel Core i3, devido o mesmo possuir dois núcleos físicos. Entretanto, a concorrência do processador Core i3 também foi explorada através da tecnologia hyper-threading, totalizando 2 núcleos + 2 unidades lógicas de processamento com hyper-threading. A imagem utilizada para o execução possui dimensão de 8039 pixels de largura por 6852 pixels de altura. O arquivo possui extensão Tagged Image File (TIF). A partir do retorno do número de elementos de processamento de uma função disponível no pthread, são inicializadas N threads. A imagem de entrada é segmentada em um número igual ao número de threads. O algoritmo de convolução em imagens digitais não possui dependência de dados de pixels vizinhos, assim os segmentos podem ser computados sem nenhum problema de variáveis compartilhadas ou quaisquer sincronizações. Figura 1. Modelo em threads O segmento incumbido por cada thread é determinado de acordo com a ordem de sua inicialização. Utilizando o compartilhamento de memória a thread pode ter acesso a fatia designada a ela e executar todo o processo de convolação. Após a execução das tarefas pelas threads o processo que as originou é responsável por finalizá-las.

5 Os experimentos em cada arquitetura foram executados variando a quantidade de threads de 1 a 4. E, cada variação de thread em cada experimento iterou-se 3 vezes. Em razão de ambos os processadores serem multicore explorou-se o uso de todos os núcleos e hyper-threading no Intel Core i3. ALGORITMO PARALELO Algoritmo paralelo em thread O algoritmo paralelo baseado em threads tem o objetivo de dividir a imagem de acordo com a quantidade de threads, conforme demonstrado no Algoritmo 2. A aplicação paralela consiste em carregar a imagem que será processada, alocar espaço em memória, na qual será inserida os valores dos pixles convolucionados, a inicialização das threads, divisão da imagem em N partes de acordo com N threads inicializadas, para que cada thread processe a mesma quantia e a finalização das threads. Cada thread aplica o processo de convolução no seu segmento. Consequentemente os dados processados são inseridos na matriz de resultados. Em razão das threads compartilharem a mesma memória, o delay de comunicação entre o processador e a memória é extremamente rápido, se comparado a comunicações realizadas em uma rede de computadores. Algoritmo 2 Algoritmo paralelo em threads begin Load image(); Allocate buf f er results(); Split image(num threads); F or each thread do : startt hread(thread id, image segment); Join threads(); Save results(); end Em geral, o processamento paralelo de imagens geralmente envolve o tratamento das bordas superiores e inferiores dos segmentos. No entanto, uma vez que a memória dessa arquitetura é compartilhada, não há a necessidade de realizar a redundância de dados entre as threads vizinhas. RESULTADOS E DISCUSSÃO O resultado dos tempos do modelo em thread utilizando o algoritmo de convolução é apresentado na Figura. Os experimentos com hyper-threading e quad-core foram inseridos no mesmo gráfico para facilitar a comparação do desempenho. Percebe-se a superioridade de desempenho do algoritmo executado em no Intel Core i3 na maioria dos experimentos até duas threads. O fator de maior influência no desempenho desta arquitetura está ligada a cada núcleo do processador Intel Core i3 possuir maior frequência em relação ao Intel Quad Core. Quando a CPU Intel Core i3 passa a executar mais que 2 threads, nota-se a queda do desempenho do experimento em função de que o hyper-threading não oferece eficiência igual a um núcleo real. Ao executar o teste com quatro threads o experimento com o processador Intel Core i3 se mostra menos eficiente que o processador Intel Quad Core. Esta mudança de rendimento mostra que mesmo ativada a tecnologia hyper-threading o processador Intel Core i3 sofre com a ineficiência da tecnologia HT conforme a média dos tempos apresentados pela

6 Figura 2. Tempo de execução da versão paralela Tabela. Threads Intel Core i3 (s) Intel Quadcore (s) Tabela 1. Tempos de execução do algoritmo paralelo em multicore e hyper-threading A Figura apresenta o speedup alcançado pelas execuções dos experimentos em paralelo das arquiteturas hyper-threading e quad-core. Figura 3. Speedup das execuções em multicore e hyper-threading Analisando o gráfico percebe-se claramente a melhora das versões paralelas em relação à versão sequencial. Entretanto, há a discreta melhora de desempenho da arquitetura em hyperthreading no experimento com 3 e 4 threads. Comparando ao experimento com quad-core, a execução com hyper-threading mostra-se uma queda de 49% e 82%. O aspecto que influencia o desempenho do experimento do processador Intel Core i3 é a disponibilidade de apenas 2 núcleos físicos, tendo a execução a utilização de núcleos lógicos em execuções a partir de três threads. Analisando o experimento executado na arquitetura quadcore observa-se que o speedup se manteve linear. Tal comportamento se deve a ausência de sincronismo e de variáveis compar-

7 tilhadas no algoritmo de convolução, evitando assim, a ociosidade dos elementos de processamento. Outro motivo desse bom desempenho, é a exclusividade de cada thread por cada núcleo de processamento seja real com processador quad-core ou virtual com hyper-threading. Pode-se observar na Figura a eficiência dos algoritmos executados. Observamos que a partir do experimento com 3 threads a eficiência do algoritmo de convolução executado no processador Intel Core i3 cai 33% em relação ao algoritmo executado no Intel Quad Core. Ajustando a quantidade de threads para 4 a eficiência do Intel Core i3 com tecnologia hyperthreading cai aproximadamente 46%. Todavia, considerando a concorrência entre as threads pelos núcleos virtuais o experimento com hyper-threading ofereceu uma considerável ajuda no processamento. Figura 4. Eficiência das execuções em multicore e hyper-threading CONCLUSÕES O objetivo deste trabalho foi mostrar a análise do impacto do desempenho entre arquiteturas de memória compartilhada, o hyper-threading e quad-core, utilizando threads. Para explorar o paralelismo, foi adotada a biblioteca pthread para o desenvolvimento do algoritmo paralelo de convolução com o objetivo avaliar ambas arquiteturas e responder os questionamentos levantados na introdução desse trabalho. Para observar a diferença de desempenho utilizou-se os tempos de execução de cada experimento. Apesar de melhores tempos de execução, a tecnologia hyper-threading do processador Intel Core i3 não consegue acompanhar a escalabilidade dos núcleos do processador Intel Quad Core, o qual possui 4 núcleos reais. O speedup máximo alcançado pelo processador Intel Quad Core é de 3,98, enquanto a CPU Intel Core i3 atingiu o índice próximo 2,2. Com a execução de 3 threads, a eficiência do Intel Core i3 com tecnologia hyper-threading cai aproximadamente 46% em relação a 3 núcleos reais. Apesar da perda de eficiência nos experimentos durante o acréscimo do número de threads executadas pelo hyper-threading, mesmo assim os núcleos lógicos atingiram melhor eficiência em relação a versão sequencial. Pode-se notar que em aplicações com independência de dados e tarefas, cada núcleo da arquitetura quad-core obteve aproximadamente 99% de eficiência na execução de uma thread. A tecnologia hyper-threading apresentou a discreta melhora de 9,2% com a adição de cada núcleo virtual. A programação em arquiteturas fortemente acopladas como as exploradas nesse trabalho, apresentam maior facilidade, pois não é necessária a passagem de mensagens entre os elementos

8 de processamento. Além disso, o desempenho dessas arquiteturas mostrou ser expressivo em virtude do tráfego entre os elementos de processamento ser o próprio processador ao invés de uma rede de computadores. TRABALHOS FUTUROS Como trabalhos futuros recomenda-se: 1. O desenvolvimento e avaliação do desempenho de arquiteturas quad-core em clusters de computadores, uma vez mais de um processo pode ser alocado em cada nó de processamento, levando assim a consideração do gargalo de comunicação entre os processos de uma aplicação paralela distribuída. 2. Avaliação e comparação entre aplicações quad-core utilizando a biblioteca OpenMP e pthread. REFERÊNCIAS [1] TANENBAUM, A. Modern operating systems. Prentice Hall New Jersey, v. 2. [2] HILL, M.; MARTY, M. Amdahl s law in the multicore era. Computer, v. 41, n. 7, p , [3] ZHIRNOV, V.; CAVIN III, R.; HUTCHBY, J.; BOURIANOFF, G. Limits to binary logic switch scaling-a gedanken model. Proceedings of the IEEE, v. 91, n. 11, p , [4] MARR, D. Hyper-threading technology in the netburst R microarchitecture. 14th Hot Chips, [5] PENHA, D.; CORRÊA, J.; MARTINS, C. Análise comparativa do uso de multi-thread e openmp aplicados a operações de convolução de imagem. In:. c2002. [6] LIU, Y.; GAO, F. Parallel implementations of image processing algorithms on multi-core. In:. c2010. p [7] GEER, D. Chip makers turn to multicore processors. Computer, v. 38, n. 5, p , [8] TURNER, M. Landscape ecology: the effect of pattern on process. Annual review of ecology and systematics, v. 20, p , [9] CENTENO, J. Sensoriamento remoto e processamento de imagens digitais. Curitiba: Curso de Pós Graduação em Ciências Geodésicas, Universidade Federal do Paraná, [10] DREPPER, U.; MOLNAR, I. The native posix thread library for linux. White Paper, Red Hat, 2003.

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

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

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

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

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional ARQUITETURA E IMPLEMENTAÇÃO Pacote de Threads Conjunto de rotinas disponíveis para que uma aplicação utilize as facilidades dos threads.

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

Paralelismo em Computadores com Tecnologia Multicore

Paralelismo em Computadores com Tecnologia Multicore IFRN - Pau dos Ferros Pau dos Ferros/RN, 25 de fevereiro de 2016 O minicurso Descrição: Para se utilizar os vários núcleos de processamento disponíveis nos computadores atuais de forma eficiente, faz necessário

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

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ   fevereiro, / 41 Thread Sistemas Operacionais Leonard B. Moreira UNIVERSIDADE ESTÁCIO DE SÁ e-mail: leonardbarreto@gmail.com.br fevereiro, 2013 1 / 41 Sumário 1 Introdução 2 Ambientes Monothread 3 Ambientes Multithread

Leia mais

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

UM ESTUDO COMPARATIVO DE DESEMPENHO UTILIZANDO PROGRAMAÇÃO SEQUENCIAL VS PARALELA APLICADO EM ALGORITMOS GENÉTICOS 1 UM ESTUDO COMPARATIVO DE DESEMPENHO UTILIZANDO PROGRAMAÇÃO SEQUENCIAL VS PARALELA APLICADO EM ALGORITMOS GENÉTICOS 1 Eldair F. Dornelles 2, Henrique A. Richter 3, Miquéias F. M. Trennepohl 4, Taís T. Siqueira

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

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

Introdução ao OpenMP

Introdução ao OpenMP Introdução ao OpenMP Threads em CPU multicore Rogério A. Gonçalves 1,2 Alfredo Goldman 2 1 Departamento de Computação (DACOM) Universidade Tecnológica Federal do Paraná (UTFPR) 2 Departamento de Ciência

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

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

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

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

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

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

Organização de Computadores Computação paralela; Sistema de entrada e saída (I/O); Suporte a Sistema operacional. Professor: Francisco Ary

Organização de Computadores Computação paralela; Sistema de entrada e saída (I/O); Suporte a Sistema operacional. Professor: Francisco Ary Organização de Computadores Computação paralela; Sistema de entrada e saída (I/O); Suporte a Sistema operacional Professor: Francisco Ary Computação Paralela Capacidade de um sistema computacional executar

Leia mais

Faculdade de Computação 3 a Prova de Arquitetura e Organização de Computadores 2 Parte I Prof. Cláudio C. Rodrigues

Faculdade de Computação 3 a Prova de Arquitetura e Organização de Computadores 2 Parte I Prof. Cláudio C. Rodrigues Faculdade de Computação 3 a Prova de Parte I Prof. Cláudio C. Rodrigues Nome: Matrícula: Valor: 15 Nome: Matrícula: Valor: 15 Nome: Matrícula: Valor: 15 Nome: Matrícula: Valor: 15 Problemas: P1. Qual o

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Motivação Aplicações Motivam Possibilita Engenharia Motivação! Aplicações cada vez mais complexas! Qual a técnica mais comum para redução de complexidade? " Modularização Dividir

Leia mais

Sistemas Operacionais. Prof. Fabio Augusto Oliveira

Sistemas Operacionais. Prof. Fabio Augusto Oliveira Sistemas Operacionais Prof. Fabio Augusto Oliveira Threads Um processo representa uma sequência de instruções única, executada paralelamente a outra seqüências de instruções. Um thread é uma maneira de

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

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

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

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

Programação Paralela e Distribuída

Programação Paralela e Distribuída INE 5645 Programação Paralela e Distribuída Professor: Lau Cheuk Lung (turma A) INE UFSC lau.lung@inf.ufsc.br Conteúdo Programático 1. Introdução 2. Programação Paralela 3. Controle de Concorrência 4.

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

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

SSC PROGRAMAÇÃO CONCORRENTE. Aula 06 Modelos de Programação Prof. Jó Ueyama e Julio Cezar Estrella

SSC PROGRAMAÇÃO CONCORRENTE. Aula 06 Modelos de Programação Prof. Jó Ueyama e Julio Cezar Estrella SSC- 0143 PROGRAMAÇÃO CONCORRENTE Aula 06 Modelos de Programação Prof. Jó Ueyama e Julio Cezar Estrella Créditos Os slides integrantes deste material foram construídos a par4r dos conteúdos relacionados

Leia mais

Sistemas Operacionais. Processos e Threads

Sistemas Operacionais. Processos e Threads Sistemas Operacionais Processos e Threads Sumário 1. Introdução 2. Estrutura do Processo 1. Contexto de Hardware 2. Contexto de Software 3. Espaço de Endereçamento 3. Estados 1. Mudanças de Estado 2. Criação

Leia mais

Organização de Computadores Sistema de entrada e saída (I/O) e computação paralela. Professor: Francisco Ary

Organização de Computadores Sistema de entrada e saída (I/O) e computação paralela. Professor: Francisco Ary Organização de Computadores Sistema de entrada e saída (I/O) e computação paralela Professor: Francisco Ary Computação Paralela Capacidade de um sistema computacional ser executado de forma simultânea,

Leia mais

Sistemas Distribuídos e Paralelos

Sistemas Distribuídos e Paralelos Sistemas Distribuídos e Paralelos Aula #6: Programação paralela em sistemas de memória compartilhada. ISUTIC - 2016 Eng. Alexander Rodríguez Bonet Aula de hoje Regiões paralelas. Cláusulas de âmbito. Partilha

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

Arquitetura de Computadores. Processamento Paralelo

Arquitetura de Computadores. Processamento Paralelo Arquitetura de Computadores Processamento Paralelo 1 Multiprogramação e Multiprocessamento Múltiplas organizações de computadores Single instruction, single data stream - SISD Single instruction, multiple

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

SSC0611 Arquitetura de Computadores

SSC0611 Arquitetura de Computadores SSC0611 Arquitetura de Computadores 17ª Aula Paralelismos nível de tarefas Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Paralelismo no nível de tarefas Paralelismo a nível de thread (TLP Thread-Level

Leia mais

Avaliação de Desempenho

Avaliação de Desempenho Avaliação de Desempenho Clock do Sistema Cristal de Quartzo envia onda de sinais constantes que são convertidas em sinais digitais 1GHz = 1 bilhão de pulsos Taxa de pulsos = taxa de clock Incremento de

Leia mais

Chapter 4: Threads. Operating System Concepts 8th Edition

Chapter 4: Threads. Operating System Concepts 8th Edition Chapter 4: Threads Sobre a apresentação (About the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2009. Esse apresentação foi modificada por Cristiano

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

SSC PROGRAMAÇÃO CONCORRENTE. Aula 03 Terminologia Geral de Computação Paralela Prof. Jó Ueyama

SSC PROGRAMAÇÃO CONCORRENTE. Aula 03 Terminologia Geral de Computação Paralela Prof. Jó Ueyama SSC- 0742 PROGRAMAÇÃO CONCORRENTE Aula 03 Terminologia Geral de Computação Paralela Prof. Jó Ueyama Créditos Os slides integrantes deste material foram construídos a par4r dos conteúdos relacionados às

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

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

Sistemas Computacionais e Hardware. Disciplina: Informática Prof. Higor Morais

Sistemas Computacionais e Hardware. Disciplina: Informática Prof. Higor Morais Sistemas Computacionais e Hardware Disciplina: Informática Prof. Higor Morais 1 Agenda Sistema Computacional O Computador e seus componentes Hardware 2 Unidade de entrada Unidade de saída Unidade de Processamento

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 9 Threads Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Threads Uma thread

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

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

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

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

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

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

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

Estruturas de Sistemas Operacionais

Estruturas de Sistemas Operacionais Estruturas de Sistemas Operacionais Sistemas Operacionais - Tópicos Componentes do Sistema Serviços de Sistemas Operacionais Chamadas ao Sistema Estrutura do Sistema Máquinas Virtuais Chamadas ao Sistema

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

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Sistemas Operacionais Prof. Fabrício Sérgio de Paula

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Sistemas Operacionais Prof. Fabrício Sérgio de Paula Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Sistemas Operacionais Prof. Fabrício Sérgio de Paula Tópicos Conceitos Modelos multithreads Bibliotecas Opções de criação

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

Ferramentas para Programação em Processadores Multi-Core

Ferramentas para Programação em Processadores Multi-Core Ferramentas para Programação em Processadores Multi-Core Prof. Dr. Departamento de Informática Universidade Federal de Pelotas Sumário Introdução Arquiteturas multi-core Ferramentas de programação Prática

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Sistemas Operacionais Multithreading (multiprogramação leve) Aula 04 Forma diferente de enxergar a abstração de processo = Conjunto de recursos relacionados endereçamento, arquivos, filhos,

Leia mais

Sistemas MIMD. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro

Sistemas MIMD. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro Sistemas MIMD Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Arquiteturas Paralelas (SISD) Single Instruction Stream, Single Data Stream: Monoprocessador

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

Sistemas Operacionais. Visão Geral

Sistemas Operacionais. Visão Geral Sistemas Operacionais Visão Geral Sumário 1. Máquina de Camadas 2. Funções Básicas do SO 3. Conceitos Introdutórios 1. Hardware 2. Software 3. Operações de E/S 4. Histórico 1. Década de 40 2. Década de

Leia mais

TÍTULO: PROGRAMAÇÃO PARALELA - UMA INTRODUÇÃO AO PARALELISMO COM A OPENMPI

TÍTULO: PROGRAMAÇÃO PARALELA - UMA INTRODUÇÃO AO PARALELISMO COM A OPENMPI Anais do Conic-Semesp. Volume 1, 2013 - Faculdade Anhanguera de Campinas - Unidade 3. ISSN 2357-8904 TÍTULO: PROGRAMAÇÃO PARALELA - UMA INTRODUÇÃO AO PARALELISMO COM A OPENMPI CATEGORIA: CONCLUÍDO ÁREA:

Leia mais

Ferramentas para Programação em Processadores Multi-Core

Ferramentas para Programação em Processadores Multi-Core Ferramentas para Programação em Processadores Multi- Prof. Dr. Departamento de Informática Universidade Federal de Pelotas Sumário Introdução Programação multithread Ferramentas de programação Prática

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

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

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais 04 Processos Introdução Um sistema de computação quase sempre tem mais atividades a executar que o número de processadores disponíveis. Diferentes tarefas têm necessidades distintas

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

Chamadas de Sistema (SYSCALL)

Chamadas de Sistema (SYSCALL) Chamadas de Sistema (SYSCALL) Eduardo Ferreira dos Santos Engenharia de Computação Centro Universitário de Brasília UniCEUB Abril, 2016 1 / 26 Sumário 1 Estrutura dos Sistemas Operacionais 2 System Calls

Leia mais

Análise de Desempenho de Aplicações Paralelas do Padrão Pipeline em Processadores com Múltiplos Núcleos

Análise de Desempenho de Aplicações Paralelas do Padrão Pipeline em Processadores com Múltiplos Núcleos Análise de Desempenho de Aplicações Paralelas do Padrão Pipeline em Processadores com Múltiplos Núcleos Giuseppe G. P. Santana 1, Luís F. W. Goés 1 1 Departamento de Ciência da Computação Pontifícia Universidade

Leia mais

Ruby e JRuby em... Paralelos e Distribuídos. Felipe Barden Lucas Fialho Zawacki

Ruby e JRuby em... Paralelos e Distribuídos. Felipe Barden Lucas Fialho Zawacki Ruby e JRuby em... Paralelos e Distribuídos Felipe Barden 151343 Lucas Fialho Zawacki 172072 Sobre o que vamos falar? A linguagem Ruby e suas aplicações em programação paralela e distribuída. A implementação

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

Organização de Computadores 2005/2006 Processamento Paralelo

Organização de Computadores 2005/2006 Processamento Paralelo GoBack Organização de Computadores 2005/2006 Processamento Paralelo Paulo Ferreira paf a dei.isep.ipp.pt Maio de 2006 ORGC Processamento Paralelo slide 1 Porquê? Definição de computação paralela Alocação

Leia mais

Multiprocessamento. Patterson & Hennessy Capítulo 9. Arquitetura e Organização de Computadores Juliano M. Vieira (c) 2011

Multiprocessamento. Patterson & Hennessy Capítulo 9. Arquitetura e Organização de Computadores Juliano M. Vieira (c) 2011 Multiprocessamento Patterson & Hennessy Capítulo 9 Arquitetura e Organização de Computadores Juliano M. Vieira (c) 2011 Tópicos Abordados Tipos comuns SMP (processamento paralelo) NUMA (placas de alto

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

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

Introdução a Sistemas Operacionais. Adão de Melo Neto Introdução a Sistemas Operacionais Adão de Melo Neto 41 Definição de SO Sistema Operacional É um conjunto de rotinas (programa) executado pelo processador que controla o funcionamento do computador como

Leia mais

SIST706 Sistemas Distribuídos

SIST706 Sistemas Distribuídos Slide01 Introdução e Conceitos de Sistemas Distribuídos SIST706 Sistemas Distribuídos 2013/1 Prof. Jéfer Benedett Dörr @: prof.jefer@gmail.com profjefer.wordpress.com Sistema Distribuído Definição de Andrew

Leia mais

Sistemas Multiprogramáveis/Multitarefa

Sistemas Multiprogramáveis/Multitarefa Sistemas Multiprogramáveis/Multitarefa - Programas submetidos são armazenados em fitas/discos onde são executado sequencialmente -A UCP pode processar seqüencialmente cada job (tarefa), diminuindo o tempo

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

Curso de Programação Distribuída e Paralela 29/09/2008. Informática UFRGS. Sistemas Operacionais II (C. Geyer) Sincronização 1. Pg.

Curso de Programação Distribuída e Paralela 29/09/2008. Informática UFRGS. Sistemas Operacionais II (C. Geyer) Sincronização 1. Pg. Sistemas Operacionais Professor Cláudio Geyer Instituto de - Sistemas Operacionais II (C. Geyer) Sincronização 1 Sistemas Operacionais Professor Cláudio Geyer Instituto de - Pg. 1 1 Tópicos ensinados no

Leia mais

Arquitetura de Sistemas Digitais

Arquitetura de Sistemas Digitais Universidade Federal do Amazonas Faculdade de Tecnologia Departamento de Eletrônica e Computação Arquitetura de Sistemas Digitais Lucas Cordeiro lucascordeiro@ufam.edu.br Notas de Aula Os slides deste

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 8 Suporte do sistema operacional slide 1 Objetivos e funções Conveniência: Tornar o computador mais fácil de usar. Eficiência:

Leia mais

Processos Concorrentes

Processos Concorrentes Processos Concorrentes Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04008 Sistemas de Tempo Real Copyright

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Processos Gustavo Reis gustavo.reis@ifsudestemg.edu.br 1 - Processos Conceito originado do campos de sistemas operacionais no qual, em geral, são definidos como programas em execução

Leia mais

Instituto de Matemática e Estatística - USP MAC Organização de Computadores EP1. Experimentos com o cache. Tiago Andrade Togores

Instituto de Matemática e Estatística - USP MAC Organização de Computadores EP1. Experimentos com o cache. Tiago Andrade Togores Instituto de Matemática e Estatística - USP MAC0412 - Organização de Computadores EP1 Experimentos com o cache Tiago Andrade Togores - 6514230 30 de setembro de 2010 Sumário 1 Introdução 2 1.1 O que é

Leia mais

Sistema Operacional. Prof. Leonardo Barreto Campos. 1/30

Sistema Operacional. Prof. Leonardo Barreto Campos.   1/30 Sistema Operacional Prof. Leonardo Barreto Campos 1/30 Sumário Introdução Middleware e SO de Rede SO de Rede Processos e Threads Leitura Complementar Bibliografia 2/30 Introdução A tarefa de qualquer sistema

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 de Sistemas de Computadores

Organização de Sistemas de Computadores Organização de Sistemas de Computadores Cap. 2 (Tanenbaum), Cap. 3 (Weber) 2.1 Processadores 1 CPU UC = buscar instruções na memória principal e determinar o seu tipo ULA = adição e AND Registradores =

Leia mais

Desenvolvimento de um Escalonador de Cenas para motores de jogos

Desenvolvimento de um Escalonador de Cenas para motores de jogos Desenvolvimento de um Escalonador de Cenas para motores de jogos Lucas Pinheiro Otaviano Andre 1 1 Instituto Metrópole Digital Universidade Federal do Rio Grande do Norte (UFRN) lpoandre@inf.ufrgs.br Abstract.

Leia mais

Aula 2: Tipos de Sistemas Operacionais. Instituto Federal da Bahia Campus Salvador INF009 - Sistemas Operacionais Profª Flávia Maristela

Aula 2: Tipos de Sistemas Operacionais. Instituto Federal da Bahia Campus Salvador INF009 - Sistemas Operacionais Profª Flávia Maristela Aula 2: Tipos de Sistemas Operacionais Instituto Federal da Bahia Campus Salvador INF009 - Sistemas Operacionais Profª Flávia Maristela O que veremos nesta aula? Principais tipos de sistemas operacionais

Leia mais

Caracterização de Sistemas Distribuídos

Caracterização de Sistemas Distribuídos Caracterização de Sistemas Distribuídos Roteiro Conceitos de Hardware Conceitos de Software Classificação de Flynn Classificação baseada no acesso a memória 2 Conceitos de HW Múltiplas CPUs Diferentes

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

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES Tecnologia da informação e comunicação UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES CICLO DE INSTRUÇÕES OU DE EXECUÇÃO Arquitetura de computadores 2 CICLO DE EXECUÇÃO No inicio de cada ciclo de instrução,

Leia mais

Threads. Agenda. Threads. Processo. Processo. Processo. Processo. (c) Volnys B. Bernal Versão de 22/3/2012

Threads. Agenda. Threads. Processo. Processo. Processo. Processo. (c) Volnys B. Bernal Versão de 22/3/2012 1 2005-2009 Volnys Bernal 1 2005-2009 Volnys Bernal 2 Agenda Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Interface de threads Interfaces de threads de usuário x threads de núcleo

Leia mais

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017. ALUNO Prof. Bosco

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017. ALUNO Prof. Bosco INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO Prof. Bosco 1. Sockets - Indicar (Verdade/Falso): (a) (Verdade/Falso) Sockets são abstrações utilizadas nos protocolos de comunicação

Leia mais

Sistemas Distribuídos Aula 3

Sistemas Distribuídos Aula 3 Sistemas Distribuídos Aula 3 Aula passada Processos IPC Características Ex. sinais, pipes, sockets Aula de hoje Threads Kernel level User level Escalonamento Motivação: Servidor Web Considere Servidor

Leia mais

Universidade Federal de Ouro Preto

Universidade Federal de Ouro Preto Outubro de 2012 WSCAD-WIC 2012 - Petrópolis - RJ A parallel simulator for large scale wireless sensor network (1) Universidade Federal de Ouro Preto A parallel simulator for large scale wireless sensor

Leia mais

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads AULA Nº 08 SISTEMAS OPERACIONAIS Threads Contextualizando Na aula passada Sincronização de Processos Aula de hoje Threads O Modelo de Processo 1) Utilizado para agrupar recursos 2) Um espaço de endereço

Leia mais