COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1
|
|
|
- Derek Candal de Oliveira
- 9 Há anos
- Visualizações:
Transcrição
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 6. 1 Trabalho desenvolvido na disciplina de Processamento Paralelo desenvolvido na Unijuí. 2 Bolsista voluntária do grupo GCA, aluna do curso Ciência da Computação da Unijuí. 3 Bolsista PIBITI/CNPq, aluno do curso Ciência da Computação da Unijuí. 4 Aluno do curso Ciência da Computação da Unijuí. 5 Professor do curso Ciência da Computação da Unijuí. 6 Professor do Curso Ciência da Computação da Unijuí. Introdução Atualmente tem se utilizado cada vez mais processamento paralelo nas implementações para problemas que exigem alto processamento e também aqueles que possuem alto tempo de execução. As threads são uma forma de implementação deste tipo de processamento e podem ser utilizadas de diferentes formas, como por exemplo, pthreads e OpenMP. Quando uma implementação sequencial é executada, normalmente seu tempo de execução é maior comparado a implementações com threads. Pois com processamento paralelo, em máquinas que possuem processadores com múltiplos núcleos, é possível executar tarefas em paralelo, com isso, o tempo de execução é reduzido. Neste trabalho serão utilizados os conceitos de threads para executar implementações realizadas com pthreads e OpenMP. Estas implementações serão aplicadas no problema jogo da vida, com o objetivo de comparar o tempo de execução obtido de cada implementação. Estado da Arte Jogo da vida é um autômato celular desenvolvido pelo matemático John Conway em 1970 (CONWAY, 1970). Esse problema foi apresentado em 1940 por John Von Neumann, o qual tentou construir uma máquina hipotética que construísse copias dela mesma, o resultado foi atingido quando ele encontrou um modelo matemático para cada máquina com muitas regras complexas em um tabuleiro retangular. O jogo da vida surgiu como a tentativa bem sucedida de Conway de simplificar drasticamente as ideias de Von Neumann (CALLAHAN, 2010). O ambiente do jogo da vida é um tabuleiro bidimensional divido em células quadradas, cada célula possui dois possíveis estados, vivo ou morto. Todas as células interagem com suas quatro vizinhas, que estão distribuídas horizontalmente e verticalmente. As células vivas são representadas com o número 1, e as mortas com 0. A cada geração, as regras são analisadas. A primeira regra define que qualquer célula viva com menos de dois vizinhos vivos, morre. Na segunda regra qualquer célula viva com dois ou três
2 vizinhos vivos, vive. Na terceira regra qualquer célula viva com mais de três vizinhos, morre. E na quarta regra qualquer célula com exatamente três vizinho vivos se torna uma célula viva. Desta forma, o padrão inicial reflete nas gerações futuras. A primeira geração é criada aplicando as regras simultaneamente em cada quadrante do tabuleiro. Nascimentos e mortes acontecem simultaneamente. As regras continuam a ser aplicadas repetidamente para gerar mais gerações de população (GYMREK, 2010). Processamento paralelo é uma forma eficiente de processamento com ênfase na exploração de eventos simultâneos na execução de um software. A motivação para o processamento paralelo é a possibilidade de aumentar a capacidade de processamento de uma única máquina. É possível realizar a implementação através da utilização de threads. As threads compartilham entre elas os recursos do processo ao qual pertence. Quando o processo que está vinculado a thread é finalizado, a thread também é finalizada. Uma thread pode ser considerada uma função que é executada de forma independente do programa principal. Cada processo possui atributos que são compartilhados por suas threads (NICHOLS, BUTTLAR, FARRELL, 1996). A programação paralela com thread é facilitada pela existência de um único espaço de endereçamento através de todo o sistema de memória. Assim, cada processo pode ler e escrever em todas as posições de memória. A programação com threads pode ser implementada de diferentes formas, seja com uso do padrão pthread ou da API OpenMP. A primeira, pthread é uma interface de manipulação de threads padronizada em 1995 pelo IEEE, sendo denominada POSIX threads (Pthreads). Este tipo de thread é definida como um conjunto de tipos de dados em C e um conjunto de rotinas (NICHOLS, BUTTLAR, FARRELL, 1996). A segunda, OpenMP é uma interface de programação (API), portável, baseada no modelo de programação paralela de memória compartilhada para arquiteturas de múltiplos processadores. Em OpenMP, a região paralela é a estrutura básica de paralelismo no OpenMP. Uma região paralela define uma seção do programa. Os programas começam a execução com uma única thread (denominada thread master). Quando a primeira região paralela é encontrada, a thread master cria as novas threads. Cada thread executa as sentenças que estão dentro da região paralela. No final da região paralela, a thread master espera pelo término das outras threads e continua então a execução de outras sentenças (DAGUM, 1998). Metodologia A realização deste trabalho foi dividida em três partes. Inicialmente foi implementado o jogo da vida nos formatos sequencial e paralelo, utilizando pthread e OpenMP. Com os algoritmos implementados, foram realizadas as execuções 10 vezes e realizada uma média sobre os tempos de execução. Após os testes, foi realizado uma comparação dos resultados. Para realização dos testes utilizamos um notebook com processador AMD Phenom II X3 N830, com 3 núcleos, sistema operacional Linux, kernel versão 3.13, linguagem de programação C, utilizando o compilador GCC de versão
3 Resultados e Discussões Nesta seção, apresenta-se os testes realizados nas implementações do algoritmo jogo da vida com pthreads, OpenMP e também a execução na forma sequencial. Os testes realizados neste artigo utilizaram como base, um tabuleiro de tamanho 5000x5000, o qual foi percorrido 100 vezes. Executando de forma sequencial e sem flags de compilação, o tempo médio de execução foi de 84,16 segundos. Com a utilização da flag -O3, o tempo médio de execução do algoritmo sequencial reduziu para 28,6 segundos, o que representa um Speed-up de 0,34, tendo uma melhora de 66% em relação ao algoritmo sequencial sem flags. Também foi executado o algoritmo sequencial utilizando a flag -march=amdfam10 -O2, a qual é uma flag específica dos processadores da AMD e está disponível no site do fabricante. Nesta execução o tempo foi de 28,8 segundos, sendo inferior ao alcançado com a flag -O3. Na Tabela 1 apresentamos os resultados da execução da implementação utilizando pthreads, com diferentes números de threads. Tabela 1. Resultados dos testes utilizando pthreads e OpenMP A partir dos dados obtidos na Tabela 1, foi possível compreender que conforme aumentamos o número de threads, o tempo de execução do algoritmo pthread é reduzido, chegando ao tempo de segundos com a utilização de 20 threads. Também foi possível compreender que ao utilizarmos 3 threads na implementação com OpenMP, o tempo reduziu de forma significativa, passando de 24,4 segundos para 14,8 segundos, isto ocorre porque o computador utilizado possui um processador com somente três núcleos. Com OpenMP, conforme aumentamos o número de
4 threads, o tempo de execução permaneceu entre 14 e 15 segundos, sem conseguir diminuir o tempo de execução significativamente. Comparando as duas execuções, podemos identificar que para o jogo da vida a implementação pthread trouxe melhores resultados quando utilizamos um maior número de threads. Esta comparação pode ser vista na Figura 1. Onde o tempo de execução foi diminuindo conforme aumentamos o número de threads. Comparando a forma de realizar as duas implementações, OpenMP é de fácil implementação, pois é uma API que já contém muitas funções pré-programadas. Isto torna o código mais simples e compacto. Na implementação com pthreads não se tem disponível muitas funções, então é necessário implementar todas as etapas para o funcionamento das threads. Figura 1. Comparação entre pthread e OpenMP Conclusões Esse artigo apresentou uma análise de desempenho entre as versões paralelas do algoritmo jogo da vida implementado com OpenMP e pthread. A partir dos testes realizados, foi possível concluir que para o algoritmo jogo da vida, o OpenMP possui melhores resultados até a utilização de 3 threads. Isto pode acontecer porque o computador utilizado para a realização dos testes, possui somente 3 núcleos no processador. Conforme aumentamos o número de thread, a implementação com pthread possui resultados mais satisfatórios.
5 Também foi possível entender e aplicar os conhecimentos adquiridos em aula sobre threads, e verificar a importância da utilização desta forma de programação. Pois a implementação de forma sequencial tem um tempo de execução muito maior do que na utilização de threads, independentemente da forma que implementamos as threads. Como atualmente está cada vez mais sendo buscado a melhora na performance dos algoritmos, e sempre com o objetivo de reduzir o tempo de execução, a realização deste trabalho foi muito importante, pois conseguimos aprender a utilizar estes tipos de implementação. Como trabalhos futuros, é possível utilizar outra forma de implementação do jogo da vida. Existem diferentes estilos de implementação, que podem ser testados com a utilização de threads. Também pode ser adicionadas novas regras, para que além da verificação vertical e horizontal, sejam verificados os vizinhos diagonais. Palavras-Chave Processamento Paralelo; Threads; Autômato celular. Agradecimentos Agradecemos pelo auxílio dos professores no desenvolvimento deste trabalho. Referências Bibliográficas CALLAHAN, Paul. What is the Game of Life. World of Math, CONWAY, John. The game of life. Scientific American, v, n. 4, p. 4, DAGUM, Leonardo; ENON, Rameshm. OpenMP: an industry standard API for shared-memory programming. Computational Science & Engineering, IEEE, n. 1, p , GYMREK, Melissa. Conway s Game of Life NICHOLS, Bradford; BUTTLAR, Dick; FARRELL, Jacqueline. Pthreads programming: A POSIX standard for better multiprocessing. " O Reilly Media, Inc.", 1996.
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
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 [email protected] Colegiado de Engenharia de Computação PROGRAMAÇÃO PARALELA
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
Programação de Alto Desempenho - 2. Prof: Carla Osthoff
Programação de Alto Desempenho - 2 Prof: Carla Osthoff E-mail: [email protected] 3- Modelos de programação paralela Shared Memory/Threads Posix Win32 treads OpenMP Message Passing MPI Data Parallel OpenCL/Cuda
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
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
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
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
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
BALANCEAMENTO DE CARGA EM SISTEMAS MULTIPROCESSADORES UTILIZANDO O MODELO DE PROGRAMAÇÃO CHARM++ 1
BALANCEAMENTO DE CARGA EM SISTEMAS MULTIPROCESSADORES UTILIZANDO O MODELO DE PROGRAMAÇÃO CHARM++ 1 Guilherme Henrique Schiefelbein Arruda 2, Edson Luiz Padoin 3. 1 Trabalho desenvolvido no contexto do
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
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
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
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: [email protected]
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
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
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, [email protected] 2 29520-000, [email protected]
AULA 03: FUNCIONAMENTO DE UM COMPUTADOR
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 03: FUNCIONAMENTO DE UM COMPUTADOR Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação O QUE É UM COMPUTADOR?
Universidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação. Arquitetura de Computadores I. RISC versus CISC
Universidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação Arquitetura de Computadores I RISC versus CISC Gabriel P. Silva 04.11.2014 Introdução Um dos objetivos de uma arquitetura de
Sistemas Operacionais. Tipos de SO
Sistemas Operacionais Tipos de SO Tipos de Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas Monoprogramáveis/ Monotarefas Sistemas Multiprogramáveis/ Multitarefas Sistemas com Múltiplos Processadores
Introdução à Computação: Sistemas de Computação
Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza ([email protected]) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,
Computação Paralela (CUDA)
Universidade Federal do Amazonas Faculdade de Tecnologia Departamento de Eletrônica e Computação Computação Paralela (CUDA) Hussama Ibrahim [email protected] Notas de Aula Baseado nas Notas de
LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO
LABORATÓRIO DE SISTEMAS OPERACIONAIS PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO Sistema Operacional Conteúdo retirado do livro Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo
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.
MC-102 Aula 01. Instituto de Computação Unicamp
MC-102 Aula 01 Introdução à Programação de Computadores Instituto de Computação Unicamp 2016 Roteiro 1 Por que aprender a programar? 2 Hardware e Software 3 Organização de um ambiente computacional 4 Algoritmos
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
Programação em Paralelo OpenMP
Programação em Paralelo OpenMP N. Cardoso & P. Bicudo Física Computacional - MEFT 2012/2013 N. Cardoso & P. Bicudo Programação em Paralelo: OpenMP 1 / 15 Introdução Potencial do GPU vs CPU Cálculo: 367
Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)
Tecnólogo em Análise e Desenvolvimento de Sistemas Sistemas Operacionais (SOP A2) Conceitos de Hardware e Software Referências: Arquitetura de Sistemas Operacionais. F. B. Machado, L. P. Maia. Editora
Processos Concorrentes
Processos Concorrentes Walter Fetter Lages [email protected] Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04008 Sistemas de Tempo Real Copyright
Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização
Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 1 Introdução Arquitetura e Organização 1. Arquitetura
Fundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 4: Programação Concorrente Diego Passos Últimas Aulas Processos Compostos por: Código (programa). Estado (memória, registradores). Em um sistema com multiprogramação:
Aula 06 - Máquina Multinível e Von Neumann
Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Campus Currais Novos Instalação e Organização de Computadores Aula 06 - Máquina Multinível e Von Neumann Prof. Diego Pereira
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
Gerência de Dispositivos. Adão de Melo Neto
Gerência de Dispositivos Adão de Melo Neto 1 Gerência de Dispositivos Introdução Acesso ao Subsistema de E/S Subsistema de E/S Device Drivers Controladores Dispositivos de E/S Discos Magnéticos Desempenho,
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: [email protected] Resumo:
Aula 16: UCP: Conceitos Básicos e Componentes
Aula 16: UCP: Conceitos Básicos e Componentes Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) UCP: Conceitos Básicos e Componentes FAC 1 / 34
TAREFAS IMPLEMENTAÇÃO DE TAREFAS AULA 06 Sistemas Operacionais Gil Eduardo de Andrade
TAREFAS IMPLEMENTAÇÃO DE TAREFAS AULA 06 Sistemas Operacionais Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro do Prof. Dr. Carlos Alberto Maziero, disponível no link: http://dainf.ct.utfpr.edu.br/~maziero
Infraestrutura de Hardware. Funcionamento de um Computador
Infraestrutura de Hardware Funcionamento de um Computador Computador: Hardware + Software Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é
Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 06
Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 06 Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação COMO UM PROGRAMA ESCRITO
Programação Paralela e Distribuída
INE 5645 Programação Paralela e Distribuída Professor: Lau Cheuk Lung (turma A) INE UFSC [email protected] Conteúdo Programático 1. Introdução 2. Programação Paralela 3. Controle de Concorrência 4.
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
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
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
AULA 01: APRESENTAÇÃO
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 01: APRESENTAÇÃO Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação QUAIS OS OBJETIVOS DESSA DISCIPLINA?
Estrutura dos Sistemas Operacionais. Adão de Melo Neto
Estrutura dos Sistemas Operacionais Adão de Melo Neto 1 Sistema Operacional -São partes do SO -São ferramentas de apoio ao usuário -São formas de acessar as rotinas do kernel O Sistema Operacional é formado
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
Programação Concorrente
INE 5410 Programação Concorrente Professor: Lau Cheuk Lung (turma A) INE UFSC [email protected] Conteúdo Programático 1. 2. Programação Concorrente 3. Sincronização 1. Condição de corrida, região critica
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
18/10/2010. Unidade de Controle Controle. UC Microprogramada
Arquitetura de Computadores Unidade de Controle Controle Microprogramado Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO UC Microprogramada
Arquitetura de Computadores Aula 11 - Multiprocessamento
Arquitetura de Computadores Aula 11 - Multiprocessamento Prof. Dr. Eng. Fred Sauer http://www.fredsauer.com.br [email protected] 1/28 PROCESSAMENTO PARALELO OBJETIVO: aumentar a capacidade de processamento.
Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos
Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos Pensando em Paralelo Pensar em paralelo é uma tarefa que exige disciplina
Estrutura dos Sistemas Operacionais. Adão de Melo Neto
Estrutura dos Sistemas Operacionais Adão de Melo Neto 1 Sistema Operacional - Formas de acessar o KERNEL do SISTEMA OPERACIONAL (SO) - A linguagem de comandos faz parte do SO O Sistema Operacional é formado
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
Modelo de Programação Paralela
Modelo de Programação Paralela As arquiteturas paralelas e distribuídas possuem muitos detalhes Como especificar uma solução paralela pensando em todos esses detalhes? O que queremos? Eecutar a solução
Implementação de autômatos celulares com o uso de software livre
Implementação de autômatos celulares com o uso de software livre Daniel Vieira Franzolin Sônia Ternes 2 Concebida no campo da Ecologia, a modelagem baseada no indivíduo (MBI) é proposta como uma alternativa
O JOGO DA VIDA 1. INTRODUÇÃO
484 O JOGO DA VIDA Paulo Sérgio Matias Júnior (Uni-FACEF) Amaury Carlos Silveira Moura (Uni-FACEF) Thales Freitas da Costa (Uni-FACEF) Orientador: Prof. Dr. Antônio Carlos da Silva Filho (Uni-FACEF) 1.
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
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
ANÁLISE DE DESEMPENHO DA PARALELIZAÇÃO DO CÁLCULO DE NÚMEROS PRIMOS UTILIZANDO PTHREAD E OPENMP 1
ANÁLISE DE DESEMPENHO DA PARALELIZAÇÃO DO CÁLCULO DE NÚMEROS PRIMOS UTILIZANDO PTHREAD E OPENMP 1 Francisco Berti Da Cruz 2, Cleber Cristiano Sartorio 3, Edson Luiz Padoin 4, Emilio Hoffmann 5. 1 Trabalho
Sistemas Operacionais. Entrada/Saída
Sistemas Operacionais Entrada/Saída Atualizado em 28/02/2014 Como ocorre a comunicação de E/S Aplicação Operações de E/S Chamadas de Sistema S.O. Subsistema de E/S Núcleo (Kernel) Drivers HARDWARE Controladoras
Linguagens de Programação
Universidade Federal do Rio Grande do Norte Centro de Tecnologia Departamento de Computação e Automação Linguagens de Programação Professor Responsável: Luiz Affonso Henderson Guedes de Oliveira Prof.
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:
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
Estrutura do Sistema Operacional
Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Aula 04 Estrutura do Sistema Operacional 2 1 Estrutura do Sistema Operacional
Introdução à OpenMP (Dia 1) Prof. Guido Araujo
Introdução à OpenMP (Dia ) Prof. Guido Araujo www.ic.unicamp.br/~guido Roteiro Escrevendo programas usando OpenMP Usando OpenMP para paralelizar laços seriais com pequenas mudanças no código fonte Explorar
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:
SISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS Introdução a Sistemas Operacionais Andreza Leite [email protected] Plano de Aula Introdução aos Sistemas Operacionais Fundamentação Teórica Evolução Histórica Características
Parte I Multiprocessamento
Sistemas Operacionais I Estrutura dos SO Prof. Gregorio Perez [email protected] 2004 Parte I Multiprocessamento Roteiro 1 Multiprocessadores em Sistemas Fortemente Acoplados 1.1 1.2 1.3 Processamento
Organização de Sistemas Computacionais Processadores: Organização da CPU
Universidade Paulista UNIP Curso: Ciências da Computação Turma: CCP30 Turno: Noturno Disciplina: Arquitetura de Computadores Professor: Ricardo Loiola Alunos: Thiago Gomes dos Santos Matrícula: C63873-0
Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais
DCA-108 Sistemas Operacionais Capítulo 2 Luiz Affonso Guedes www.dca.ufrn.br/~affonso [email protected] Multiprogramação Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização de um SO Moderno
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
14/3/2016. Prof. Evandro L. L. Rodrigues
SEL 433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Prof. Evandro L. L. Rodrigues Tópicos do curso Conceitos básicos - Aplicações e utilizações dos microcontroladores
Sistemas de Informação. Sistemas Operacionais
Sistemas de Informação Sistemas Operacionais PROCESSOS E THREADS PARTE II SUMÁRIO 3. THREAD: 3.1 Introdução; 3.2 Ambiente Monothread; 3.3 Ambiente Multithread; 3.4 Arquitetura e Implementação; 3.5 Modelos
Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação
Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP Aula 1 Introdução à Computação Eventos históricos: 1) Primeiro computador a válvulas, o Eletronic Numeric Integrator And
