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

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

Introdução à Computação: Máquinas Multiníveis

Introdução à Computação: Máquinas Multiníveis

SSC-0742 PROGRAMAÇÃO CONCORRENTE. Aula 01 Introdução à Programação Concorrente Prof. Jó Ueyama Créditos: Prof. Júlio C. Estrella

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

Parte I Multiprocessamento

Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos

Introdução à Computação: Arquitetura von Neumann

Carlos Eduardo Batista Centro de Informática - UFPB

Programação Concorrente

Introdução OpenMP. Nielsen Castelo Damasceno

OpenMP: Variáveis de Ambiente

Sistemas Distribuídos e Paralelos

Fundamentos de Sistemas Operacionais

Computadores e Programação (DCC/UFRJ)

Linguagem de Programação II

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

Multiprogramação leve em arquiteturas multi-core

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

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

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

Concorrência em Processos

Introdução à Computação: Máquinas Multiníveis

Modelos para Concorrência

SSC510 Arquitetura de Computadores. 6ª aula

What is? Eduardo Viola Nicola Disciplina de IPPD

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

Processos Concorrentes

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

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

08/08/2016. Metodologia de trabalho Sistema de notas Trabalhos Artigos Celulares Presença Entrega de trabalhos Uso de laboratório

Curso: Redes de Computadores

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

Programação Paralela e Distribuída

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

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

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica

Organização de Computadores II. Arquiteturas MIMD

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

Paralelismo em Computadores com Tecnologia Multicore

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

Linguagem de Programação II

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS

Arquitetura de Computadores. Processamento Paralelo

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS. Aula 1- Introdução aos Sistemas Distribuídos

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

The future is parallel but it may not be easy

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

Computação Paralela (CUDA)

Cérebro humano versus Computador digital

Aula 1: Introdução aos Sistemas Operacionais. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

Arquiteturas Paralelas

Sistemas Distribuídos

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 1. Introdução

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

Arquitetura de Computadores. Prof. João Bosco Jr.

Sistemas Distribuídos

Modelo de Programação Paralela

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

Introdução à Computação Parte 2

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

CRÉDITOS DO CURSO. Carga Horária Créditos IN1030 Seminários 30 2

08/02/2017. Metodologia de trabalho Sistema de notas Trabalhos Artigos Celulares Presença Entrega de trabalhos Uso de laboratório

Sistemas Operacionais. Adão de Melo Neto

Arquiteturas de Computadores. Programa de Pós-Graduação em Ciência da Computação. Plano da aula. Histórico. Quatro gerações

Introdução à Programação Aula 01. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Algoritmos Computacionais

AULA 01: APRESENTAÇÃO

Sistemas Operacionais. Conceitos de Hardware

Notas de Aula Guilherme Sipahi Arquitetura de Computadores

Universidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação. Arquitetura de Computadores I. RISC versus CISC

Matéria: Sistema Computacional - SC. Prof.: Esp.: Patrícia Dias da Silva Peixoto

SISTEMAS OPERACIONAIS

Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado)

Organização de Computadores

Bibliografia em processamento paralelo

Ferramentas para Programação em Processadores Multi-Core

Sistemas Operacionais. Tipos de SO

ORGANIZAÇÃO DE COMPUTADORES

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

LINGUAGENS LÓGICAS E PROGRAMAÇÃO CONCORRENTE

Introdução na Computação Distribuída e Paralela

Sistemas de Computação e de Informação

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

INE 5645 Programação Paralela e Distribuída. Prof. João Bosco M. Sobral INE-UFSC

Arquitetura de Microprocessadores

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

Unidade 12: Introdução ao Paralelismo:

Arquiteturas paralelas Parte 1

Fundamentos de Sistemas Operacionais

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular INFORMÁTICA Ano Lectivo 2017/2018

FUNDAMENTOS DE SISTEMAS OPERACIONAIS MÓDULO 18

Aula 08 Introdução à Algoritmos. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Definindo melhor alguns conceitos

Paralelismo em Programação Lógica

Sistemas Operacionais Gerência de Memória

22/02/2017. Prof. Richard Brosler Revisão sobre a pré-aula Tipos de Concorrências, Sincronização

Transcriçã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, ES Brazil 1

Revisão Aula Passada Sistemas de Computação Parte 4: Linguagens de Programação: 2

Sistemas Distribuídos: Computadores são rápidos, porém limitados; Como então executar uma tarefa que demanda maior esforço computacional do que a capacidade do computador em questão? Se um único computador (processador) consegue resolver um problema em N segundos, podem N computadores (processadores) resolver o mesmo problema em 1 segundo? Computação distribuída. 3

Sistemas Distribuídos: Dois dos principais motivos para utilizar programação paralela são: Reduzir o tempo necessário para solucionar um problema; Resolver problemas mais complexos e de maior dimensão; Outros motivos são: Tirar partido de recursos computacionais não disponíveis localmente ou subaproveitados; Ultrapassar limitações de memória quando a memória disponível num único computador é insuficiente para a resolução do problema; Ultrapassar os limites físicos de velocidade e de plataforma ou miniaturização que atualmente começam a restringir a possibilidade de construção de computadores sequenciais cada vez mais rápidos. 4

Sistemas Distribuídos GCP: Tradicionalmente, a programação paralela foi motivada pela resolução/simulação de problemas fundamentais da ciência/engenharia de grande relevância científica e económica, denominados como Grand Challenge Problems (GCPs); 5

Sistemas Distribuídos GCP: Tipicamente, os GCPs simulam fenômenos que não podem ser medidos por experimentação: Fenômenos climáticos (movimento das placas tectônicas); Fenômenos físicos (órbita dos planetas); Fenômenos químicos (reações nucleares); Fenômenos biológicos (genoma humano); Fenômenos geológicos (atividade sísmica); Componentes mecânicos (aerodinâmica/resistência de materiais em naves espaciais); Circuitos eletrônicos (verificação de placas de computador); Racionalização (deduções lógicas); Entre outros. 6

Sistemas Distribuídos GCP: Atualmente, as aplicações que exigem o desenvolvimento de computadores cada vez mais rápidos estão por todo o lado; Estas aplicações ou requerem um grande poder de computação ou requerem o processamento de grandes quantidades de informação: Bases de dados paralelas Mineração de dados (data mining); Serviços de procura baseados na web; Serviços associados a tecnologias multimédia e telecomunicações; Computação gráfica e realidade virtual Diagnóstico médico assistido por computador; Gestão de grandes industrias/corporações. 7

Sistemas Distribuídos Sequencial versus Paralelo: Um programa é considerado programação sequencial quando este é visto como uma série de instruções sequenciais que devem ser executadas num único processador; Um programa é considerado programação paralela quando este é visto como um conjunto de partes que podem ser resolvidas concorrentemente. Cada parte é igualmente constituída por uma série de instruções sequenciais, mas que no seu conjunto podem ser executadas simultaneamente em vários processadores. 8

Sistemas Distribuídos Concorrência ou Paralelismo Potencial: Concorrência ou paralelismo potencial diz-se quando um programa possui tarefas (partes contíguas do programa), que podem ser executadas em qualquer ordem sem alterar o resultado final. 9

Sistemas Distribuídos Paralelismo: Paralelismo diz-se quando as tarefas de um programa são executadas em simultâneo em mais do que um processador. 10

Sistemas Distribuídos Paralelismo Implícito: O paralelismo diz-se implícito quando cabe ao compilador e ao sistema de execução: Detectar o paralelismo potencial do programa; Atribuir as tarefas para execução em paralelo; Controlar e sincronizar toda a execução; Vantagens e inconvenientes: (+) Liberta o programador dos detalhes da execução paralela; (+) Solução mais geral e mais flexível; ( ) Difícil conseguir-se uma solução eficiente para todos os casos. 11

Sistemas Distribuídos Paralelismo Explícito: O paralelismo diz-se explícito quando cabe ao programador: Anotar as tarefas para execução em paralelo; Atribuir (possivelmente) as tarefas aos processadores; Controlar a execução indicando os pontos de sincronização; Conhecer a arquitetura dos computadores de forma a conseguir o máximo desempenho (aumentar localidade, diminuir comunicação, etc.); Vantagens e inconvenientes: (+) Programadores experientes produzem soluções muito eficientes para problemas específicos; ( ) O programador é o responsável por todos os detalhes da execução (debugging pode ser penoso); ( ) Pouco portável entre diferentes arquiteturas. 12

Sistemas Distribuídos Computação Paralela: De uma forma simples, a computação paralela pode ser definida como o uso simultâneo de vários recursos computacionais de forma a reduzir o tempo necessário para resolver um determinado problema; Esses recursos computacionais podem incluir: Um único computador com múltiplos processadores; Um número arbitrário de computadores ligados por rede; A combinação de ambos. 13

Sistemas Distribuídos Taxonomia de Flynn: Uma das metodologias mais conhecidas e utilizadas para classificar a arquitetura de um computador ou conjunto de computadores é a taxonomia de Flynn (1966); Esta metodologia classifica a arquitetura dos computadores segundo duas dimensões independentes: Instruções e dados, em que cada dimensão pode tomar apenas um de dois valores distintos: única ou múltipla. 14

Sistemas Distribuídos Taxonomia de Flynn: 15

Sistemas Distribuídos Taxonomia de Flynn: 16

Próxima Aula Verifiquem o gabarito da prova. Sistemas de Computação: Sistemas Distribuídos. Continua na próxima aula! Até breve. 17

http://nemo.inf.ufes.br/ 18