Análise e desenho de algoritmos Paralelos Implementação em Java
|
|
|
- Lorenzo Cortês Miranda
- 7 Há anos
- Visualizações:
Transcrição
1 ISUTIC 207 Análise e desenho de algoritmos Paralelos Implementação em Java Docente: MSc. Angel Alberto Vazquez Sánchez
2 Sumario Desenho metodológico Particionamento Comunicação Aglomeração Mapeamento
3 Bibliografía I. Foster, Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering, st ed. Addison Wesley, 995.
4 Desenho metodológico A maioria dos problemas de programação tem várias soluções paralelas. A melhor solução pode ser diferente da sugerida pelos algoritmos seqüenciais existentes. A metodologia de projeto destina-se a promover uma abordagem exploratória do design em que problemas independentes da máquina, como a concorrência, são considerados antecipadamente e os aspectos específicos da máquina do projeto são atrasados até o final do processo de design.
5 Desenho metodológico Particionamento. A computação que deve ser realizada e os dados operados por este cálculo são decompostos em pequenas tarefas. Problemas práticos como o número de processadores no computador alvo são ignorados e a atenção é focada no reconhecimento de oportunidades de execução paralela. Comunicação. A comunicação necessária para coordenar a execução da tarefa é determinada e as estruturas e algoritmos de comunicação apropriados são definidos.
6 Desenho metodológico Aglomeração. A tarefa e as estruturas de comunicação definidas nas duas primeiras etapas de um projeto são avaliadas em relação aos requisitos de desempenho e custos de implementação. Se necessário, as tarefas são combinadas em tarefas maiores para melhorar o desempenho ou para reduzir os custos de desenvolvimento. Mapeamento. Cada tarefa é atribuída a um processador de forma a tentar satisfazer os objetivos concorrentes de maximizar a utilização do processador e minimizar os custos de comunicação. O mapeamento pode ser especificado de forma estática ou determinado em tempo de execução por algoritmos de balanceamento de carga.
7 Desenho metodológico
8 Desenho metodológico Particionamento Decomposição de tarefa / dados Comunicação Coordenação da execução da tarefa Aglomeração Avaliação da estrutura Mapeamento Atribuição de recursos
9 Particionamento O estágio de particionamento destina-se a expor oportunidades para a execução paralela Concentre-se na definição de um grande número de pequenas tarefas para produzir uma decomposição fina do problema Uma boa partição divide em pequenas peças as tarefas computacionais associadas a um problema e os dados nos quais as tarefas funcionam.
10 Particionamento A decomposição de domínio se concentra em dados de computação A decomposição funcional concentra-se em tarefas de computação A mistura de domínio / decomposição funcional é possível
11 Domínio e Descomposição Funcional Decomposição de domínio da rede 2D / 3D Descomposição funcional de um modelo climático
12 Lista de verificação de particionamento A sua partição definir pelo menos uma ordem de magnitude mais tarefas do que há processadores no computador de destino? Caso contrário, pode perder flexibilidade de design Sua partição evita a computação redundante e os requisitos de armazenamento? Caso contrário, pode não ser escalável. São tarefas de tamanho comparável? Caso contrário, pode ser difícil alocar cada processador quantidades iguais de trabalho.
13 Lista de verificação de particionamento O número de tarefas escala com o tamanho do problema? Caso contrário, talvez não consiga resolver problemas maiores com mais processadores Você identificou várias partições alternativas?
14 Comunicação (Interação) As tarefas geradas por uma partição devem interagir para permitir que a computação prossiga Fluxo de informações: dados e controle Tipos de comunicação Local vs. Global: localidade de comunicação Estruturado vs. Não estruturado: padrões de comunicação Estático vs. Dinâmico: determinado por condições de tempo de execução Síncrono versus assíncrono: grau de coordenação
15 Comunicação (Interação) Granularidade e frequência de comunicação Tamanho da troca de dados Pense na comunicação como interação e controle Aplicável ao paralelismo de memória compartilhado e distribuído
16 Tipos de Comunicação Ponto a ponto Baseado em grupo Hierárquico Coletivo
17 Lista de verificação de desenho de comunicação A distribuição das comunicações é igual? Comunicação não balanceada pode limitar a escalabilidade Qual é a localidade de comunicação? Os locais de comunicação mais amplos são mais caros Qual é o grau de concorrência de comunicação? As operações de comunicação podem ser paralelizadas
18 Lista de verificação de desenho de comunicação A computação está associada a diferentes tarefas capazes de prosseguir simultaneamente? A comunicação pode ser sobreposta com a computação? Tente reordenar computação e comunicação para expor oportunidades de paralelismo
19 Aglomeração Mude de abstrações paralelas para implementação real Revisar partição e comunicação Ver a execução eficiente do algoritmo É útil aglomerar? O que acontece quando as tarefas são combinadas? É útil replicar dados e / ou computação?
20 Aglomeração Muda o algoritmo e os índices de desempenho importantes Surface-to-volume: redução na comunicação à custa de paralelismo decrescente Comunicação / computação: qual custo domina A replicação pode permitir uma redução na comunicação Manter a flexibilidade para permitir a sobreposição
21 Tipos de aglomeração Elemento para coluna Elemento para bloco Melhor superfície ao volume Fusão de tarefas Redução de tarefas Reduz a comunicação
22 Lista de verificação de desenho de aglomeração O aumento da localidade reduziu os custos de comunicação? A computação replicada vale a pena? A replicação de dados compromete a escalabilidade? A computação ainda está equilibrada? A escalabilidade no tamanho do problema ainda é possível? Existe ainda uma concorrência suficiente? Existe espaço para mais aglomeração? Grão fino vs. grosseiro?
23 Mapeamento Especifique onde cada tarefa deve ser executada Menos preocupante em sistemas de memória compartilhada Tentativa de minimizar o tempo de execução Coloque tarefas simultâneas em diferentes processadores para aumentar a concorrência física Coloque as tarefas de comunicação no mesmo processador, ou em processadores próximos uns dos outros, para aumentar a localidade Estratégias podem entrar em conflito! O problema de mapeamento é NP-complete Usar classificações de problemas e heurísticas Balanceamento de carga estático e dinâmico
24 Algoritmos de mapeamento Algoritmos de balanceamento de carga (particionamento) Algoritmos baseados em dados Pense na carga computacional em relação à quantidade de dados em operação Atribuir dados (isto é, trabalhar) de alguma forma conhecida para equilibrar Tome em consideração as interações de dados Algoritmos baseados em tarefas (agendamento de tarefas) Usado quando a decomposição funcional produz muitas tarefas com requisitos de local fracos Usar a atribuição de tarefa para manter a computação ocupada dos processadores Considere esquemas centralizados e descentralizados
25 Lista de verificação do desenho do mapeamento O mapeamento estático é muito restritivo e não responsivo? O mapeamento dinâmico é muito caro em geral? O agendamento centralizado leva a engarrafamento? Os esquemas dinâmicos de balanceamento de carga exigem muita coordenação para reequilibrar a carga? Qual é a compensação da complexidade dinâmica de agendamento versus melhoria de desempenho? Existem tarefas suficientes para alcançar altos níveis de concorrência? Caso contrário, os processadores podem estar ociosos.
26 Tipos de Programas Paralelos Sabores de paralelismo Paralelismo de dados: todos os processadores fazem a mesma coisa em dados diferentes Task parallelism: Os processadores recebem tarefas que fazem coisas diferentes Modelos de execução paralela Dados paralelos Pipelining (Produtor-Consumidor) Gráfico da tarefa Pool de trabalho Mestre - Trabalhador
27 Paralelismo em nível de tarefa Qualquer algoritmo pode especificá-lo como uma seqüência de passos. Por exemplo: Suponhamos que temos uma serie de elementos e queremos computar a soma de seus elementos. sum = soma da primeira metade sum2 = soma da segunda metade sum = sum + sum2
28 Criação de Tarefas e Término (Async, Finish) finish async sum = soma da primeira metade sum2 = soma da segunda metade sum = sum + sum2
29 Tarefas no marco de trabalho ForkJoin de Java public class ASum { private double[] array; int lo; int hi; double sum; public ASum(double[] array, int lo, int hi) {...} public void compute() { if(lo == hi) { sum = array[lo]; }else if(lo > hi) { sum = 0; }else { int mid = (hi+lo)/2; ASum l = new ASum(array, lo, mid); ASum r = new ASum(array, mid+, hi); l.compute(); r.compute(); sum = l.sum + r.sum; } } }
30 Tarefas no marco de trabalho ForkJoin de Java public class ASum { private double[] array; int lo; int hi; double sum; public ASum(double[] array, int lo, int hi) {...} public void compute() { if(lo == hi) { sum = array[lo]; }else if(lo > hi) { sum = 0; }else { int mid = (hi+lo)/2; ASum l = new ASum(array, lo, mid); ASum r = new ASum(array, mid+, hi); async l.compute(); r.compute(); sum = l.sum + r.sum; } } }
31 Tarefas no marco de trabalho ForkJoin de Java public class Asum extends RecursiveAction { private double[] array; int lo; int hi; double sum; public ASum(double[] array, int lo, int hi) {...} public void compute() { if(lo == hi) { sum = array[lo]; }else if(lo > hi) { sum = 0; }else { int mid = (hi+lo)/2; ASum l = new ASum(array, lo, mid); ASum r = new ASum(array, mid+, hi); async l.compute(); l.fork() r.compute(); sum = l.sum + r.sum; } } }
32 Tarefas no marco de trabalho ForkJoin de Java public class Asum extends RecursiveAction{ private double[] array; int lo; int hi; double sum; public ASum(double[] array, int lo, int hi) {...} public void compute() { if(lo == hi) { sum = array[lo]; }else if(lo > hi) { sum = 0; }else { int mid = (hi+lo)/2; ASum l = new ASum(array, lo, mid); ASum r = new ASum(array, mid+, hi); l.fork(); finish r.compute(); sum = l.sum + r.sum; } } }
33 Tarefas no marco de trabalho ForkJoin de Java public class ASum extends RecursiveAction{ private double[] array; int lo; int hi; double sum; public ASum(double[] array, int lo, int hi) {...} public void compute() { if(lo == hi) { sum = array[lo]; }else if(lo > hi) { sum = 0; }else { int mid = (hi+lo)/2; ASum l = new ASum(array, lo, mid); ASum r = new ASum(array, mid+, hi); l.fork(); finish r.compute(); l.join(); sum = l.sum + r.sum; } }
34 Tarefas no marco de trabalho ForkJoin de Java public class ASum extends RecursiveAction{ private double[] array; int lo; int hi; double sum; public ASum(double[] array, int lo, int hi) {...} l.fork(); public void compute() { r.compute(); if(lo == hi) { invokeall(l,r); l.join(); sum = array[lo]; }else if(lo > hi) { sum = 0; }else { int mid = (hi+lo)/2; ASum l = new ASum(array, lo, mid); ASum r = new ASum(array, mid+, hi); l.fork(); r.compute(); l.join(); sum = l.sum + r.sum; } }
35 Tarefas no marco de trabalho ForkJoin de Java public class ASum extends RecursiveAction{ private double[] array; int lo; int hi; double sum; public ASum(double[] array, int lo, int hi) {...} public void compute() { if(lo == hi) { sum = array[lo]; }else if(lo > hi) { sum = 0; }else { int mid = (hi+lo)/2; ASum l = new ASum(array, lo, mid); ASum r = new ASum(array, mid+, hi); invokeall(l,r); sum = l.sum + r.sum; } } }
36 Gráficos de Computação Modelam a execução de um programa paralelo como um conjunto parcialmente ordenado Especificamente, um CG consiste em: Um conjunto de vértices ou nós, em que cada nó representa um passo consistente em uma computação seqüencial arbitrária. Um conjunto de bordas direcionadas que representam restrições de pedidos entre etapas.
37 Gráficos de Computação Para os programas fork-join, é útil dividir as arestas em três casos: Arestas "Continue" que capturam a seqüência de passos em uma tarefa Arestas "Fork" que conectam uma operação "fork" ao primeiro passo das tarefas filha Arestas "Join" que conectam o último passo de uma tarefa a todas as operações join nessa tarefa
38 Gráficos de computação Suponha que possamos as seguintes etapas de um algoritmo para executar S finish{ async S2 S3 } S4 S fork S2 S3 join S2 S4 S fork continue S2 S3 join continue S4
39 Gráficos de computação Os CGs também podem ser usados para argumentar sobre o paralelismo ideal de um programa paralelo da seguinte maneira: Define WORK(G) para ser a soma dos tempos de execução de todos os nós no CG G, Defina SPAN (G) para ser a longitude de um caminho mais longo em G, ao somar os tempos de execução de todos os nós no caminho. Os caminhos mais longos são conhecidos como caminhos críticos, então o SPAN também representa a longitude do caminho crítico (CPL) de G.
40 Gráficos de computação Dadas as definições de WORK e SPAN, definimos o paralelismo ideal do Gráfico de Computação G como a relação, WORK(G) / SPAN(G). O paralelismo ideal é um limite superior do fator de aceleração que pode ser obtido a partir da execução paralela de nós no gráfico de computação G.
41 Gráficos de computação 0 S2 fork join S continue S3 continue S4 0 Work = 22 SPAN = 2
42 Agendamento multiprocessador, aceleração paralela S Tp = tempo de execução em p processadores S2 S4 S6 0 P 0 P S Idle S 2 S 4 T 2 =4 S3 S5 S 3 S 5 S7 S 6 S 7 Idle Idle
43 Agendamento multiprocessador, aceleração paralela S Tp = tempo de execução em p processadores S2 S4 S6 0 P 0 P S Idle S 6 S T 2 =2 S3 S5 S 3 S7 S 4 S 5 S 7
44 Agendamento multiprocessador, aceleração paralela S Tp = tempo de execução em p processadores S2 S3 S4 S5 S6 0 T =Work T =SPAN T T p T S7
45 Agendamento multiprocessador, aceleração paralela S Tp = tempo de execução em p processadores T =Work S2 S3 S4 S5 S6 0 T =SPAN T T p T S7 Speedup= T T p
46 Agendamento multiprocessador, aceleração paralela S Tp = tempo de execução em p processadores T =Work S2 S3 S4 S5 S6 0 T =SPAN T T p T S7 Speedup= T T p Speedup p Speedup Work Span = paralelismo ideal
47 Lei de Amdahl Speedup Work Span Span q Work q = fração do código que é sequencial Speedup q Exemplo: q=0.5 Speedup 2
Programação Concorrente e Paralela
projeto de programas paralelos 2016 PCAM problema particionamento comunicacao aglomeracao mapeamento desenhada para memória distribuída mas muitas idéias em comum Particionamento idéia é expor oportunidades
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
Algoritmos de ordenação em forma paralela.
ISUTIC 2017 Algoritmos de ordenação em forma paralela. Docente: MSc. Angel Alberto Vazquez Sánchez Bibliografía A. Grama, Introduction to parallel computing. Pearson Education, 2003. I. Foster, Designing
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
SSC PROGRAMAÇÃO CONCORRENTE
SSC- 0143 PROGRAMAÇÃO CONCORRENTE Aula 08 Avaliação de Desempenho de Programas Paralelos Prof. Jó Ueyama Créditos Os slides integrantes deste material foram construídos a par4r dos conteúdos relacionados
Análise e desenho de algoritmos paralelos
ISUTIC 2017 Análise e desenho de algoritmos paralelos Docente: MSc. Angel Alberto Vazquez Sánchez Sumario Análise de algoritmos paralelos: Parâmetros absolutos e relativos para avaliar algoritmos paralelos.
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
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
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
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
Paradigmas de Computação Paralela
Paradigmas de Computação Paralela Modelos e Linguagens de Computação Paralela João Luís Ferreira Sobral jls@... 1 Dezembro 2015 Razões para a computação paralela (cf. Skillicorn & Talia 1998) O mundo é
AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação MULTIPROCESSADORES
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
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
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
Desempenho de computação paralela
Desempenho de computação paralela o paralelismo existente na aplicação decomposição do problema em subproblemas menores a alocação destes subproblemas aos processadores o modo de acesso aos dados: a existência
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
ENTENDENDO O FRAMEWORK FORK/JOIN DE JAVA
ENTENDENDO O FRAMEWORK FORK/JOIN DE JAVA Como funciona o Java Framework Fork /Join? Paralelismo é a execução simultânea de duas ou mais tarefas. Para nossos propósitos, basta entender que, em alguns problemas,
Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas
Processamento e Otimização de Consultas Banco de Dados Motivação Consulta pode ter sua resposta computada por uma variedade de métodos (geralmente) Usuário (programador) sugere uma estratégia para achar
Memória Compartilhada e Distribuída. _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP
Introdução Memória Compartilhada e Distribuída _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP Um sistema de memória compartilhada faz a memória física global de um sistema igualmente
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,
Organização de Computadores II. Arquiteturas MIMD
Organização de Computadores II Arquiteturas MIMD Arquiteturas UMA Arquiteturas com memória única global. Tempo de acesso uniforme para todos os nós de processamento. Nós de processamento e memória interconectados
Programação Concorrente e Paralela. Noemi Rodriguez
2013 Objetivos princípios e técnicas de programação concorrente multiprocessadores memória compartilhada troca de mensagens obs: diferentes níveis de abstração! que princípios e técnicas são esses? notações
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
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
Arranjo de Processadores
Um arranjo síncrono de processadores paralelos é chamado arranjo de processadores, consistindo de múltiplos elementos processadores (EPs) sob a supervisão de uma unidade de controle (UC) Arranjo de processadores
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
Programação Paralela e Distribuída
Curso de Informática DCC-IM / UFRJ Programação Paralela e Distribuída Um curso prático Mario J. Júnior Gabriel P. Silva Colaboração: Adriano O. Cruz, Julio S. Aude Ementa Paradigma de Troca de Mensagens
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
Aula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela
Aula 6: Comunicação entre processos Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela (-- motivação --) Processos em execução no sistema operacional podem ser: Independentes:
Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão
Projeto e Análise de Algoritmos NP Completude Prof. Humberto Brandão [email protected] Universidade Federal de Alfenas versão da aula: 0.4 Introdução Problemas intratáveis ou difíceis são comuns
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 13/11/2017 ALUNO
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 13/11/2017 ALUNO 1. Sockets - Indicar (Verdade/Falso): (2.0) (a) (Verdade/Falso) A comunicação entre processos consiste em transmitir uma mensagem entre
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
SSC510 Arquitetura de Computadores. 6ª aula
SSC510 Arquitetura de Computadores 6ª aula PARALELISMO EM NÍVEL DE PROCESSOS PROFA. SARITA MAZZINI BRUSCHI Tipos de Paralelismo Instrução (granulosidade fina) Paralelismo entre as instruções Arquiteturas
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
Sistemas Distribuídos
Sistemas Distribuídos Unitri Prof: Carlos Eduardo de Carvalho Dantas Conceitos Sistema Distribuído é um conjunto de computadores independentes que se apresenta a seus usuários como um sistema único e coerente.
Características de Sistemas Distribuídos
Tópicos O conceito de Características de Carlos Ferraz [email protected] Infra-estrutura básica Exemplos Vantagens e desvantagens Convergência digital Características 2002-2003 Carlos A. G. Ferraz 2 O Conceito
Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013
Lista 1 - PMR2300 Fabio G. Cozman 3 de abril de 2013 1. Qual String é impressa pelo programa: p u b l i c c l a s s What { p u b l i c s t a t i c void f ( i n t x ) { x = 2 ; p u b l i c s t a t i c void
Programação concorrente (processos e threads)
Programação concorrente (processos e threads) Programação concorrente Por que precisamos dela? Para utilizar o processador completamente Paralelismo entre CPU e dispositivos de I/O Para modelar o paralelismo
Modelo do Mundo Real. Abstração. Interpretação
Modelo do Mundo Real Mundo Real Abstração Interpretação Sistema de Software Modelo Algoritmo Abstração: O modelo precisa capturar apenas as características do mundo real que são importantes para o sistema
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
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
Arquitetura e Organização de Computadores
Arquitetura e Organização de Computadores Unidade Central de Processamento (CPU) Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha [email protected] Baseado nos slides do capítulo
Características de Sistemas Distribuídos
Características de Sistemas Distribuídos Carlos Ferraz [email protected] 2002-2003 Carlos A. G. Ferraz 2 Tópicos O conceito de Sistemas Distribuídos Infra-estrutura básica Exemplos Vantagens e desvantagens
Faculdade de Computação 3 a Prova de Arquitetura e Organização de Computadores 2 Parte I Prof. Cláudio C. Rodrigues
Faculdade de Computação 3 a Prova de Parte I Prof. Cláudio C. Rodrigues Nome: Matrícula: Valor: 15 Nome: Matrícula: Valor: 15 Nome: Matrícula: Valor: 15 Nome: Matrícula: Valor: 15 Problemas: P1. Qual o
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:
Complexidade de Tempo e Espaço
Complexidade de Tempo e Espaço Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG) Complexidade de Tempo e Espaço junho - 2018 1 / 43 Este material é preparado usando
Programação Orientada a Objetos
Programação Orientada a Objetos Classes, Atributos e Métodos Msc. Paulo de Tarso F. Júnior 1 Introdução Programas eram lineares e com poucos módulos: PE Programação Estruturada Aumento da complexidade
Engenharia de Software. Projeto de Software. Projeto: definição. Profa. Dra. Lúcia V. L. Filgueiras Profa. Dra. Selma Shin Shimizu Melnikoff
Engenharia de Software Profa. Dra. Lúcia V. L. Filgueiras Profa. Dra. Selma Shin Shimizu Melnikoff Projeto de Software Fundamentos de projeto de software Projeto estruturado Índice do documento de projeto
Análise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Professor Ariel da Silva Dias Algoritmos Divisão e Conquista Construção incremental Resolver o problema para um sub-conjunto dos elementos de entrada; Então, adicionar
Fundamentos de Programação
Fundamentos de Programação CP41F Aula 2 Prof. Daniel Cavalcanti Jeronymo Conceito de algoritmo. Raciocínio lógico na construção de algoritmos. Estrutura de algoritmos. Universidade Tecnológica Federal
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
Algoritmos evolutivos paralelos. Carlos Eduardo Cuzik Marcos Felipe Eipper Ramon Artner Rocha
Algoritmos evolutivos paralelos Carlos Eduardo Cuzik Marcos Felipe Eipper Ramon Artner Rocha Introdução O mesmo de sempre mas com thread. Obrigado Fake news Introdução de verdade Era da informação - Big
Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: ponteiros e alocação dinâmica Prof. Renato Pimentel 1 Ponteiros 2 Prof. Renato Pimentel 1 Ponteiros: introdução Toda a informação
