Programação Paralela com Processadores Multicores Desenvolvidos em Linguagem Fortran

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

Download "Programação Paralela com Processadores Multicores Desenvolvidos em Linguagem Fortran"

Transcrição

1 Programação Paralela com Processadores Multicores Desenvolvidos em Linguagem Fortran Carlos A. Reyna 1, Pedro C. Pereira 1, Loram Siqueira 2 (1) Depto de Matemática, Instituto de Ciências Exatas. (2) Depto de Engenharia de Agrimensura e Cartográfica, Instituto de Tecnologia, Universidade Federal Rural do Rio de Janeiro, Caixa Postal, 74517, Seropédica, , RJ (Brasil) (candres@ufrrj.br) RESUMO Diversos trabalhos foram desenvolvidos ao longo dos últimos anos relacionados ao estudo da programação paralela, sejam sistemas com memória distribuída ou memória compartilhada. Mais recentes foram os estudos dos processadores multicore que trouxeram importantes benefícios tanto desde o ponto de vista do desempenho como do espaço físico necessário para montar um sistema destes. O rápido desenvolvimento dos processadores multicore atualmente sendo o i7 o modelo comercial mais novo no mercado pode realizar até 8 procedimentos em paralelo. Neste trabalho o objeto de estudo é o software desenvolvido pela Intel chamado de Parallel Studio XE Este software proporciona um ótimo rendimento em aplicações de alto nível permitindo que desenvolvedores C/C++ e Fortran possam escrever seus códigos de programação paralela de forma correta, identificando e consertando problemas de memória, erros de threading difíceis de identificar antes de serem lançados para uso, dentre outros. Assim, serão apresentados os diferentes componentes deste software e com ajuda de um exemplo mostrar os benefícios desta ferramenta. No final, as conclusão mostraram como esta ferramenta pode ser útil no desenvolvimento de softwares otimizados para uso em aplicações que utilizam grande quantidade de processamento computacional com mínimo esforço. INTRODUÇÃO A linguagem de programação Fortran vem sendo utilizada amplamente pelos pesquisadores em diversas áreas das ciências e engenharia. Em particular, a comunidade que desenvolve pesquisa com o Método dos Elementos de Contorno (Brebbia, Telles e Wrobel, 1984) o uso do Fortran (Chapman, 2008) é muito forte. Existe uma tendência a considerar que o Fortran não se desenvolveu ou não acompanhou as tendências da programação atual como são a programação orientada a objeto e a programação paralela, mas como será apresentado adiante o Fortran oferece todos os recursos das linguagens de alto nível. Por outro lado o uso dos clusters de computadores por muitos anos foi a grande ferramenta para o processamento paralelo, considerando que seu uso se justifica para grandes volumes de dados. O custo de um cluster de computadores e o espaço requerido para sua instalação afasta a possibilidade de uso para pesquisadores interessados em volumes menores de dados ou com recursos limitados. O surgimento dos processadores multicore tornou acessível para muitos profissionais a pesquisa acadêmica em computação paralela. Processadores multicores refletem os mais recentes avanços na arquitetura de processadores, trazendo o poder do processamento paralelo aos computadores domésticos e estendendo a

2 barreira da supercomputação. Basicamente, um processador é dito multicore quando possui dois ou mais núcleos completos de processamento (processadores) no mesmo chip. A arquitetura básica segue o modelo da arquitetura SMP (Symmetric Multi-Processors). Como nesta arquitetura, os diferentes processadores (ou cores) são capazes de executar fluxos de instruções de forma independente, e compartilham um espaço de endereçamento provido por uma área de memória comum. No caso das arquiteturas multicores, a eficiência e melhor desempenho podem ser percebidos ou não dependendo do sistema operacional e, principalmente, da aplicação. É provável que um usuário comum perceba a diferença ao mudar para um processador de dois cores. No entanto, na medida em que o número de cores aumenta, fica mais difícil perceber melhorias no desempenho, se as aplicações não forem devidamente adaptadas para explorar e expor mais o paralelismo de threads. Considerando a evolução na tecnologia de fabricação de circuitos integrados, não demorará muito tempo para que um número bem maior de cores por chip esteja disponível. Na presente proposta de trabalho pretende-se utilizar o processador Intel Core i7 e estudar os procedimentos para analisar, detectar e corrigir códigos seriais em processo de paralelização. Mas para isso será utilizado o software Intel Parallel Studio XE (Blair-Chappel and Stokes, 2012) for Windows, otimizado para aplicações de computação em paralelo e processadores de vários núcleos. Os programas a serem rodados são aplicações desenvolvidas utilizando o Método dos Elementos de Contorno. O SOFTWARE INTEL PARALLEL ESTUDIO XE O desenvolvimento de um software é conhecido na Engenharia de Software como ciclo de vida do software. De uma forma geral definem a ordem global das atividades a executar na elaboração de um projeto de software, é desenvolvida uma estratégia de construção, implementação e testes deste projeto. É preciso definir as necessidades do produto final, detalhes do processo, informações que sirvam para verificação intermediaria, grau de acurácia, etc. Na literatura pode-se encontrar diversos modelos de ciclo de vida. Neste trabalho considera-se o modelo incremental pois é o que mais se adequa ao trabalho desenvolvido pelos autores. Neste modelo incremental o desenvolvimento ocorre de forma gradual, onde cada estágio envolve a definição de metas bem estabelecidas com a implementação de procedimentos intermediários. Desta forma cada processo pode ser testado, verificado e corrigido até atender às expectativas do projeto. Desta forma evitase o número de riscos, pois eles serão sanados logo no início do estágio, existe maior visibilidade sobre o processo de desenvolvimento, auxilia na análise da estimativa de tempo gasto com o projeto, etc. Na Fig. 1 pode-se observar um esquema deste tipo de desenvolvimento de software. A microarquitetura Intel Core, distribuída comercialmente a partir de 2006 pela Intel Corporation veio trazer grandes desafios para os desenvolvedores, mas principalmente permitindo popularizar de uma forma mais democrática a programação em memória compartida. Antes disto os clusters de computadores dominaram por muitos anos a pesquisa científica e as aplicações de alto desempenho. Um cluster é formado por um conjunto de computadores, que utiliza um tipo

3 especial de sistema operacional classificado como sistema distribuído. É comum que seja construído a partir de computadores convencionais, os quais são ligados em rede e comunicamse através do sistema, trabalhando como se fossem uma única máquina de grande porte. O grande espaço físico necessário para montar um cluster é um item importante que deve ser levado em consideração. Concepção do Software Análise de Requisitos Projeto Arquitetural Estágio 1: Projeto Detalhado, implementação, depuração, teste e entrega. Estágio 2: Projeto Detalhado, implementação, depuração, teste e entrega. Estágio 3: Projeto Detalhado, implementação, depuração, teste e entrega. Fig. 1: Modelo de Desenvolvimento de Software do tipo Incremental. Uma das grandes vantagens na popularização dos clusters foi o custo benefício resultante da utilização de computadores pessoais, mais econômicos e fáceis de adquirir por parte da comunidade científica. Cluster é o nome dado a um sistema que relaciona dois ou mais computadores (em geral dezenas ou centenas) para que estes trabalhem de maneira conjunta no intuito de processar uma tarefa. Estas máquinas dividem entre si as atividades de processamento e executam este trabalho de maneira simultânea. (Alecrim, 2013) Nessa corrida pela melhora do desempenho e da capacidade de processamento de dados os fabricantes foram melhorando a CPU reduzindo a área do circuito integrado que diminui o custo por dispositivo. Desta forma mais transistores poderiam ser utilizados no projeto. Mas estas técnicas atingiram o seu limite e não puderam continuar a melhorar o desempenho da CPU, pelo contrário, espaço e altas temperaturas foram pontos críticos e limitantes para maiores avanços. Como alternativa foram desenvolvidos os processadores com vários núcleos, que foram chamados de processadores multicore, que apresentavam uma maior capacidade de resfriamento e que possibilitou o aumento do poder de processamento dos processadores.

4 Processadores multicore também permitem maior desempenho com menor energia. As outras vantagens quase que por completo relacionam-se com a capacidade de processamento, principalmente quando se trata da execução de mais de um aplicativo ao mesmo tempo ou mesmo em aplicativos capazes de realizar o seu processamento paralelamente, conseguindo assim trabalhar com dois ou mais núcleos concomitantemente. Nos processadores mais recentemente desenvolvidos existe também uma melhora no acesso a memória e na troca de dados entre os próprios núcleos. Porém, é importante destacar também que para que a qualidade de processamento paralelo dos multicores seja utilizada na sua totalidade os softwares instalados na máquina devem ser escritos para aproveitar esse recurso; para isso as aplicações devem ser escritas utilizando e armazenando os conceitos de threads, assim uma única aplicação utilizará o poder de processamentos dos dois ou mais processadores. (Aschermann e Roberto, 2007) E é baseado nessa necessidade de utilizar softwares eficientes e prontos para utilizar estes processadores muitcore que surge a importância de escrever os novos códigos de forma tal que possam trabalhar tanto com processadores singlecore como com ou até 64 ou mais cores. Os códigos paralelizados não são novidade no meio acadêmico mas a popularização dos computadores multicore popularizou também o surgimento de novos programadores sem os conhecimentos profundos de um especialista na área. Juntando as várias necessidades, do mercado de grandes desenvolvedores em que produtividade, eficiência e custo são fundamentais, como de novos programadores, aliado ao rápido crescimento das novas tecnologias é que a Intel apresenta a suíte Intel Parallel Studio XE 2013 com o objetivo de proporcionar um desempenho superior para o aplicativo e ao mesmo tempo diminui o esforço e tempo gastos com programação, ajuste e testes. (Intel, 2013) Este software foi desenvolvido para ser utilizado por programadores de C/C++ e Fortran de grande aceitação na comunidade científica onde o alto custo de montagem de um cluster de computadores é um fator limitante na pesquisa. Os aplicativos de análise do Intel Parallel Studio XE aceleram drasticamente a habilidade de identificar problemas, encontrar e consertar problemas de memória e rastrear erros de encadeamento difíceis de isolar antes do uso no usuário final. E principalmente é uma ferramenta importante que ajuda programadores na hora de adicionar rotinas de paralelismo a os códigos em desenvolvimento oferecendo as melhores analises de apoio à decisão de onde é mais crítico o tempo de processamento computacional, por exemplo. O Intel Parallel Studio XE inclui as seguintes ferramentas de programação: Intel Parallel Advisor: O Parallel Advisor aconselha sobre como e onde adicionar paralelismo a um programa. Ele acha regiões com grande potencial para aumento da performance e identifica problemas críticos de

5 sincronização. Por outro lado permite avaliar melhor as alternativas antes de investir esforços na implementação; estima o valor do speed-up obtido se fosse implementado o paralelismo; identifica os pontos críticos e seleciona as melhores opções para melhor retorno no trabalho realizado. Intel Parallel Composer: Este aplicativo contém os compiladores C++ e Fortran, e as librarias usadas para criar códigos paralelos e otimizados. Intel Parallel Inspector: É um aplicativo que procura erros de paralelismo como os deadlocks, concorrência e erros de memória, tanto em programas seriais e paralelos, monitorando o comportamento do código em execução para depois mapear os erros à linha do código fonte. Intel VTune Amplifier: É uma ferramenta que proporciona informação sobre o rendimento de um código em aplicações seriais e multiprocesso. Analisa as opções do algoritmo e identifica onde e como a aplicação pode se beneficiar dos recursos de hardware disponíveis. O exemplo a seguir vai mostrar uma aplicação num código sequencial mostrando os resultados que o Intel Parallel Studio XE 2013, indicando os pontos críticos do programa e as sugestões para paralelização do código. EXEMPLO DE APLICAÇÃO Para apresentar algumas das potencialidades do Intel Parallel Studio XE 2013 será utilizado um programa teste que resolve o problema N-Queens. Este problema conceitualmente simples está baseado na existência de um tabuleiro quadrado com N linhas e N colunas, e o objetivo é colocar as N Rainhas (Queens) na borda do tabuleiro de tal forma que nenhuma das rainhas possa pegar as outras num movimento simples de um espaço. Por exemplo, para, tem-se um tabuleiro de posições, com 4 rainhas. Este problema tem duas soluções possíveis e uma é apresentada na Fig. 2. Fig. 2:Uma solução para o problema N-Queens

6 Uma característica deste problema é determinar o número de soluções que existem para um valor particular de N e o esforço computacional aumenta rapidamente segundo aumenta o valor de N. Na Fig. 3 pode-se observar que o resultado da análise realizada indicando todas as funções e loops que são potencialmente aptos a serem paralelizados. Fig. 3: Resultado apresentado pelo Intel Parallel Advisor Na Fig. 4 tem-se um resumo dos loops que o aplicativo identifica como potencialmente aptos para adicionar rotinas de paralelismo, mostrando o tempo de CPU consumido e a linha onde este loop se encontra. No topo deste resumo aparece a subrotina SOLVE com o maior tempo de CPU. Fig. 4: Resumo dos loops com maior tempo de processamento.

7 Na Fig. 5 é apresentado o resultado da análise realizado com o Intel Parallel Inspector, onde pode-se observar os erros de memória apresentados quando o programa N-Queens é rodado num computador com processador Intel Core i7 utilizando 8 núcleos. Fig. 5: Resultado da análise feita com o Intel Parallel Inspector. Finalmente o Intel VTune Amplifier mostra as funções que utilizam o maior tempo de processamento e a otimização destes códigos vai melhorar a performance do programa. Na Figura 6 pode-se observar um resumo do aplicativo. Fig. 6: Analise realizado com o Intel VTune Amplifier.

8 Fig. 7: Detalhe das funções com maior tempo de processamento. Na Fig. 7 pode-se observar novamente as funções com maior tempo de processamento além de informações referentes ao número de instruções que realiza a função, o tempo de CPU. Cada teste realizado envolve um conjunto de informações que por motivo de espaço e tempo não pode ser apresentado neste trabalho mas os resultados oferecem todos os parâmetros necessários para a realização de uma análise criteriosa e completa sobre os códigos que devem ser otimizados, paralelizados ou melhorado de forma a obter um programa que ofereça um rendimento próximo do ótimo. CONCLUSÕES Após o teste apresentado neste trabalho assim como outros realizados nos estudos sobre o software Intel Parallel Studio XE 2013 pode-se verificar que é uma ferramenta muito importante no desenvolvimento de programas que utilizem de forma eficiente os processadores multicore, hoje tão difundidos e em franca expansão no mercado. A versão comercial mais recente da família de processadores intel, o Intel Core i7 tem 6 MB de memória cache e pode utilizar até um máximo de 8 núcleos. Existem estudos no Instituto de Tecnologia de Massachusetts com processadores de 64 núcleos. Devido a este desenvolvimento de processadores cada vez mais poderosos, eficientes e com maior desempenho os aplicativos que façam uso desta tecnologia devem satisfazer a requisitos também de ser eficientes, de alto desempenho e econômicos. Tecnicamente o software Intel Parallel Studio XE 2013 foi uma fonte muito rica em informações

9 sobre os códigos que precisam de atenção, as funções, ou rotinas que são potencialmente paralelizáveis, assim como problemas no uso eficiente da memória. O pouco espaço disponível não permitiu apresentar todas as potencialidades do software mas de alguma forma permitiu mostrar os tópicos mais importantes que foram o objetivo desta pesquisa inicial. Os próximos passos são aplicar o software a um programa desenvolvido em linguagem de programação Fortran para resolver problemas da mecânica dos sólidos utilizando o Método dos Elementos de Contorno (Reyna, et al., 2009) aplicado a problemas da mecânica da fratura (Vera-Tudela e Telles, 2005). AGRADECIMENTOS Este trabalho é desenvolvido com o suporte da Fundação Carlos Chagas Filho de Amparo à Pesquisa do Estado do Rio de Janeiro (FAPERJ) através do Programa "Apoio às Instituições de Ensino e Pesquisa Sediadas no Estado do Rio de Janeiro 2012" REFERENCIAS Alecrim, E.; Cluster: conceito e características. Disponível em: < Acesso em (2013) Aschermann, N e Roberto, P.; Arquitetura Multicore, Curso de Projeto de Sistemas Computacionais, Unicamp. (2007) Blair-Chappel, S and Stokes, A.; Parallel Programming with Intel Parallel Studio XE, John Wiley & Sons, USA. (2012) Brebbia, C.A., Telles, J.C.F. e Wrobel, L.C.; Boundary Elements Techniques: Theory and Application, Springer-Verlag, Berlin. (1984) Chapman, S.J.; Fortran 95/2003 for Scientists ans Engineers, 3 rd ed., Mc Graw Hill, USA. (2008) Intel; Intel Parallel Studio XE 2013: Resumo do Produto. Disponível em: < Acesso em Reyna C.A., Telles, J.C.F, Barbosa, M. e Fonte Jr., E.F; Desenvolvimento de Software para a Resolução de Problemas da Mecânica dos Sólidos, 9º Congreso Interamericano de Computación Aplicada a la Industria de Procesos, Montevideo (Uruguay) (2009) Vera-Tudela, C.A.R e Telles, J.C.F.; A numerical Green s function and dual reciprocity BEM method to solve elastodynamic crack problems, Engineering Analysis with Boundary Elements: 29, (2005).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Leia mais

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

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

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

Leia mais

SSC0611 Arquitetura de Computadores

SSC0611 Arquitetura de Computadores SSC0611 Arquitetura de Computadores 20ª Aula Arquiteturas Paralelas Arquitetura MIMD com Memória Compartilhada Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Arquiteturas MIMD As arquiteturas MIMD dividem-se

Leia mais

Sistemas de Informação. Sistemas Operacionais

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

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

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

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

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

Atol Fortin, Bruno da Hora, Lucas Piva, Marcela Ortega, Natan Lima, Pedro Raphael, Ricardo Sider, Rogério Papetti. 28 de novembro de 2008

Atol Fortin, Bruno da Hora, Lucas Piva, Marcela Ortega, Natan Lima, Pedro Raphael, Ricardo Sider, Rogério Papetti. 28 de novembro de 2008 Reinventando a Computação Atol Fortin, Bruno da Hora, Lucas Piva, Marcela Ortega, Natan Lima, Pedro Raphael, Ricardo Sider, Rogério Papetti Universidade de São Paulo 28 de novembro de 2008 Introdução Dr.

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

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

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

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

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

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

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 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

Leia mais

Microarquiteturas Avançadas

Microarquiteturas Avançadas Universidade Federal do Rio de Janeiro Arquitetura de Computadores I Microarquiteturas Avançadas Gabriel P. Silva Introdução As arquiteturas dos processadores têm evoluído ao longo dos anos, e junto com

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Sistemas Operacionais Gerência do processador (Escalonamento na prática) Aula 06 Sistemas atuais tem uma série de particularidades Multiprocessadores e multicore Existência de memória cache

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

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

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

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

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 03/07/2017 ALUNO

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

Leia mais

Definindo melhor alguns conceitos

Definindo melhor alguns conceitos Definindo melhor alguns conceitos Concorrência termo mais geral, um programa pode ser constituído por mais de um thread/processo concorrendo por recursos Paralelismo uma aplicação é eecutada por um conjunto

Leia mais

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 03: FUNCIONAMENTO DE UM COMPUTADOR Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação O QUE É UM COMPUTADOR?

Leia mais

Arquitetura de Microprocessadores

Arquitetura de Microprocessadores Arquitetura de Computadores UNIDADE 4 Arquitetura de 26-02-2019 Sumário Técnicas de processamento paralelo; Pipeline; Hyper-Threading; Processadores de vários núcleos; O aumento de velocidade de processamento

Leia mais

Algoritmos e Lógica de Programação Sistemas Operacionais

Algoritmos e Lógica de Programação Sistemas Operacionais Algoritmos e Lógica de Programação Sistemas Operacionais Agostinho Brito Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte 25 de agosto de 2005 Introdução

Leia mais

Montagem e manutenção de computadores

Montagem e manutenção de computadores Montagem e manutenção de computadores Processadores Prof. Patrícia Lucas Processadores 1 O processador é o responsável por executar instruções de máquina. A CPU (Unidade central de processamento): é o

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

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

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) 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

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

ORGANIZAÇÃO CURRICULAR TÉCNICO NA ÁREA DE INFORMÁTICA: HABILITAÇÃO TÉCNICO EM INFORMÁTICA NA MODALIDADE A DISTÂNCIA /1

ORGANIZAÇÃO CURRICULAR TÉCNICO NA ÁREA DE INFORMÁTICA: HABILITAÇÃO TÉCNICO EM INFORMÁTICA NA MODALIDADE A DISTÂNCIA /1 ORGANIZAÇÃO CURRICULAR TÉCNICO NA ÁREA DE INFORMÁTICA: HABILITAÇÃO TÉCNICO EM INFORMÁTICA NA MODALIDADE A DISTÂNCIA - 2008/1 DC 9481 03/10/07 Rev. 00 1. Dados Legais Autorizado pelo Parecer 278 do Conselho

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

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

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02 Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação POR QUE APRENDER CONCEITOS

Leia mais

Arquiteturas de Computadores. Fundamentos de Projetos de Computadores

Arquiteturas de Computadores. Fundamentos de Projetos de Computadores Arquiteturas de Computadores Fundamentos de Projetos de Computadores Tecnologia Melhorias no desempenho: Melhorias na tecnologia dos semicondutores Menor tamanho, velocidade do relógio Melhorias nas arquiteturas

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

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

O estado de arte: a evolução de computação de alto desempenho

O estado de arte: a evolução de computação de alto desempenho O estado de arte: a evolução de computação de alto desempenho 2009 Evolução da Computação O Mark I tinha ciclo de 0,3 segundos; o ENIAC 200 micro-segundos Processador hoje: vários GHz - menos de um nanosegundo

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

SEL-0415 Introdução à Organização de Computadores Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira

SEL-0415 Introdução à Organização de Computadores Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira SEL-0415 Introdução à Organização de Computadores Conceitos Básicos Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira INTRODUÇÃO n Organização Æ implementação do hardware, componentes, construção dos dispositivos

Leia mais

Resolução de Problemas com Computador. Resolução de Problemas com Computador. Resolução de Problemas com Computador

Resolução de Problemas com Computador. Resolução de Problemas com Computador. Resolução de Problemas com Computador Prof. Araken Medeiros araken@ufersa.edu.br O processo de resolução de um problema com um computador leva à escrita de um algoritmo ou programa e à sua execução. Mas o que é um algoritmo? Angicos, RN 15/9/2009

Leia mais

Desempenho. Na otimização do projeto, as métricas mais importantes são custo e desempenho. Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 1

Desempenho. Na otimização do projeto, as métricas mais importantes são custo e desempenho. Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 1 A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção de computadores e inovação no projeto de computadores. O projeto

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

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

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

OpenMP. Slides baseados em tutorial de Tim Mattson da Intel

OpenMP. Slides baseados em tutorial de Tim Mattson da Intel OpenMP Slides baseados em tutorial de Tim Mattson da Intel O que é OpenMP? Uma especificação para um conjunto de diretivas de compilação, rotinas de biblioteca e variáveis de sistema que podem ser utilizadas

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

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Introdução a Sistemas Operacionais Andreza Leite andreza.leite@univasf.edu.br Plano de Aula Introdução aos Sistemas Operacionais Fundamentação Teórica Evolução Histórica Características

Leia mais

Aula 12. Aquisição de Hardware

Aula 12. Aquisição de Hardware Aula 12 Tecnologias de informação para construção de sistemas de informação. Sistemas de Informação TADS 4. Semestre Prof. André Luís 1 2 Implantação de Sistemas Assim que o sistema de informação tiver

Leia mais

Benchmarks. 1. Introdução

Benchmarks. 1. Introdução Benchmarks 1. Introdução Um Benchmark é um programa de teste de desempenho que analisa as características de processamento e de movimentação de dados de um sistema de computação com o objetivo de medir

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

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

Introdução Computador Hardware Histórico e Evolução Linguagem de Programação Princípios Básicos

Introdução Computador Hardware Histórico e Evolução Linguagem de Programação Princípios Básicos Introdução Computador Hardware Histórico e Evolução Linguagem de Programação Princípios Básicos Introdução Computador Máquina destinada a realizar cálculos complexos. Matéria Prima Série de atividades

Leia mais

Introdução à OpenMP (Dia 1) Prof. Guido Araujo

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

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 4 http://www.ic.uff.br/~bianca/engsoft2/ Aula 4-03/05/2006 1 Modelos Prescritivos de Processo Modelo em cascata Modelos incrementais Modelo incremental Modelo RAD Modelos

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

AULA. Processamento de Dados

AULA. Processamento de Dados UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Curso de Bacharelado em Ciência da Computação Disciplina: INF64 (Introdução à Ciência da Computação) Prof: Anilton Joaquim da Silva / Ezequiel

Leia mais

Unidade 12: Introdução ao Paralelismo:

Unidade 12: Introdução ao Paralelismo: Arquitetura e Organização de Computadores 1 Unidade 12: Introdução ao Paralelismo: Processadores Superescalares Prof. Daniel Caetano Objetivo: Apresentar os conceitos fundamentais da arquitetura superescalar

Leia mais

Arquitetura de Computadores Paralelos. Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela

Arquitetura de Computadores Paralelos. Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela Arquitetura de Computadores Paralelos Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela Por que estudar Computação Paralela e Distribuída? Os computadores sequenciais

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

Modelo de Programação Paralela

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

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

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

EA869 Pipeline. Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof.

EA869 Pipeline. Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. EA869 Pipeline Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato 1 Objetivos Conhecer técnicas de como melhorar o desempenho de um processador.

Leia mais

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar - Aula 1 - O NÍVEL DA LÓGICA DIGITAL 1. INTRODUÇÃO Na parte inferior da hierarquia da figura abaixo encontramos o nível da lógica digital, o verdadeiro hardware do computador. Este nível situa-se na fronteira

Leia mais

Unidade I. Organização de Computadores. Prof. Renato Lellis

Unidade I. Organização de Computadores. Prof. Renato Lellis Unidade I Organização de Computadores Prof. Renato Lellis O que é um computador? Computador Datação 1789 cf. MS1 Acepções substantivo masculino 1 o que computa; calculador, calculista 2 Rubrica: informática.

Leia mais

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

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

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

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

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 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

Leia mais

CONCURSO PÚBLICO PARA PROVIMENTO DE CARGO EFETIVO PROFESSOR DE ENSINO BÁSICO, TÉCNICO E TECNOLÓGICO Edital 20/2015 Campus Rio Pomba FOLHA DE PROVA

CONCURSO PÚBLICO PARA PROVIMENTO DE CARGO EFETIVO PROFESSOR DE ENSINO BÁSICO, TÉCNICO E TECNOLÓGICO Edital 20/2015 Campus Rio Pomba FOLHA DE PROVA Tema 01: CONCORRÊNCIA ENTRE PROCESSOS Descreva os problemas que podem existir entre os processos concorrentes e os mecanismos para solução desses problemas utilizados por Sistemas Operacionais atuais.

Leia mais

Introdução ao Controladores Lógicos Programáveis - CLP

Introdução ao Controladores Lógicos Programáveis - CLP Introdução ao Controladores Lógicos Programáveis - CLP 1.1 Histórico dos CLPs O controlador lógico programável, conhecido comumente pela sigla CLP, é um dispositivo eletrônico dotado de um microprocessador

Leia mais

14/3/2016. Prof. Evandro L. L. Rodrigues

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

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

4a. Geração VLSI 1980 à????

4a. Geração VLSI 1980 à???? 4a. Geração VLSI 1980 à???? A Microsoft tenta criar um novo padrão de micros: o MSX (Microsoft Extended), - já que havia diversos micros com diversos "padrões" Com o apoio total de diversas grande empresas

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores Arquitetura de Computadores 2018.1 Computador O computador é uma máquina que realiza processamento de dados automaticamente. Ela é formada por um hardware e um software. O Engenho Analítico é o primeiro

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

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

Linguagens de Programação

Linguagens de Programação Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Linguagens de Programação DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros 1 Tópicos da aula

Leia mais

Linguagens de Programação

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.

Leia mais

Nome: N.º Ano: Turma: Turno: Responde às seguintes questões 1. Quais as vantagens da utilização de transístores face às válvulas de vácuo?

Nome: N.º Ano: Turma: Turno: Responde às seguintes questões 1. Quais as vantagens da utilização de transístores face às válvulas de vácuo? ANO LETIVO 2018/2019 FICHA DE AVALIAÇÃO DE ARQUITETURA DE COMPUTADORES Módulo Nº: 4 Data: 14/03/20189 Tipo de Prova: Teórica Classificação: O Docente: (Rafael Henriques) Nome: N.º Ano: Turma: Turno: Leia

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