Desempenho de computação paralela

Documentos relacionados
Desempenho de computação paralela

Escalonamento de Processos Uniprocessador

Sistemas Operacionais. Gerência de Processador

Sistemas Operacionais

Sistemas Operacionais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III. Escalonamento de Processos. 24/04/2014 Prof. Valeria M. Bastos

Sistemas Operacionais. Escalonamento de processos

Arquitetura de Computadores. Processamento Paralelo

Sistemas Operacionais: Escalonamento de processos

Sistemas Operacionais Aula 07: Scheduling da CPU. Ezequiel R. Zorzal

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Sistemas de Computação. Processos e escalonamento

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 3. Escalonamento

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

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

Davidson Rodrigo Boccardo

Sistemas Operacionais

Lista de Exercícios Escalonamento de CPU. 1. Considere o seguinte conjunto de processos, com o tamanho do tempo de burst de CPU dado em milissegundos:

Infra-Estrutura de Software. Escalonamento

Algoritmos de escalonamento

SO: Escalonamento. Sistemas Operacionais Flavio Figueiredo (

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

Gerência de recursos - escalonamento global. GERÊNCIA DE RECURSOS Escalonamento Global. Gerência de recursos - escalonamento global

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

Sistemas Operacionais. Prof. André Y. Kusumoto

Gerência de Recursos. Gerência do Processador

Questões de Múltipla escolha

Processos. Escalonamento de Processos

Toward an Architecture-Independent Analysis of Parallel Algorithms

Estudo Comparativo de Algoritmos de Escalonamento para Grades Computacionais

Sistemas Distribuídos Aula 3

Sistemas Operacionais. Prof. André Y. Kusumoto

SISTEMAS OPERACIONAIS. TÁSSIO JOSÉ GONÇALVES GOMES

SOP - TADS Escalonamento de Processos


Programação Concorrente

Parte I Multiprocessamento

Gerência de recursos - escalonamento global. GERÊNCIA DE RECURSOS Escalonamento Global. Gerência de recursos - escalonamento global

Sistemas Operacionais de Tempo Real. Prof. Andre Luis Meneses Silva

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

6 ESCALONAMENTO DE CPU

Na Aula Anterior... Escalonamento de Processos. Nesta Aula. Escalonamento. Comportamento de um Processo. Historicamente...

Notas da Aula 11 - Fundamentos de Sistemas Operacionais

Processos. Escalonamento de Processos

Resumo: Sistemas Operacionais Abertos

Questões de Provas de Períodos Anteriores

Processos. Aula Passada. Aula Passada (2) Ciclos de CPU e de I/O (1)

Escalonamento. Pedro Cruz. EEL770 Sistemas Operacionais

Conceitos Básicos dos Sistemas de Tempo Real

Notas da Aula 10 - Fundamentos de Sistemas Operacionais

Escalonamento. Decidindo qual processo vai executar. Infra-estrutura de Software

Sistemas Operacionais

Arquiteturas Paralelas

Programação de Sistemas em Tempo Real

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

Organização de Computadores II. Arquiteturas MIMD

Sistemas de Informação. Sistemas Operacionais

SSC0611 Arquitetura de Computadores

Escalonamento em Sistemas Distribuídos

Escalonamento de processos

Processos. Escalonamento de Processos

Processos. Objetivos do Escalonamento. Políticas de Escalonamento. Algoritmos de Escalonamento. Maximizar a taxa de utilização da UCP.

Infra-estrutura de Software. Escalonamento. Decidindo qual processo vai executar

Escalonamento de Processos

Avaliação de Desempenho de Sistemas Discretos

Avaliação de Desempenho de Sistemas Discretos

Sistemas Operacionais

Sistemas Operacionais de Tempo Real. Sérgio Campos

Gerência do Processador. Adão de Melo Neto

Fundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads

Gerência do Processador. Adão de Melo Neto

Estratégias de Escalonamento de Processos

Sistemas Operativos. Sumário. Escalonador da CPU. Por Prioridades Round Robin. ! Algoritmos de escalonamento

Escalonamento de Processos Estratégias de Escalonamento de Processos

LICENCIATURA EM COMPUTAÇÃO. Resenha Livro Sistemas Operacionais 4ª edição Capítulo quatro: Gerencia do processador

Escalonamento de Processos

Algoritmos e Estruturas de Dados II. Trabalho Prático 2

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

Capítulo 5: Escalonamento da CPU. Operating System Concepts 8th Edition

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

Sistemas Operacionais Escalonamento. Carlos Ferraz Jorge Cavalcanti Fonsêca

Escalonamento da CPU

Escalonamento da CPU

Inversão de prioridades

Montagem e Manutenção

Sistemas Operacionais. Escalonamento de Processos

Executivo Cíclico. Executivo Cíclico Introdução. Sistemas de Tempo Real: Executivo Cíclico Exemplo. Executivo Cíclico Introdução

Sistemas Operacionais. Processos e Threads

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

Escalonamento de Tarefas

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO PROCESSOS PROFESSOR CARLOS MUNIZ

Sistemas Operacionais

( ) Sistemas de Computação - Unifacs Professor : Marco Antônio C. Câmara - Lista de Exercícios II - Dia 18/10/2009

Fundamentos de Sistemas Operacionais

Tipos de Sistemas Operacionais

Escalonamento no Unix. Sistemas Operacionais

Sistemas Operacionais. Tipos de SO

Curso: Redes de Computadores

Organização de Computadores 2005/2006 Processamento Paralelo

Transcrição:

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 de uma memória global ou distribuída! comunicação por trocas de mensagens a estrutura de interconexão entre os processadores a velocidade dos processadores, memórias e rede de interconexão. Em ambientes distribuídos, a meta é de explorar e tirar proveito ao máximo do potencial computacional, sendo assim questões relacionadas ao gerenciamento de recursos do sistema muito importante

Escalonamento de Aplicações Um algoritmo que estabelece como executar um algoritmo paralelo em um determinado sistema de computadores Para implementar um escalonador, o problema tem que ser especificado: As características da aplicação devem ser especificadas As características cruciais do sistema de processadores em questão devem ser estabelecidas

Modelagem Representação do problema Algoritmo paralelo composto por processos/threads que sincronizam parcialmente (comunicação/dependência) Conjunto de threads/processos independentes Representação do ambiente de solução Simplificação, sem omitir as características que afetam o desempenho em geral

Qual o objetivo? Escalonar aplicações em um sistema paralelo e distribuído tal que o tempo de execução seja minimizado Escalonar aplicações em um número limitado de processadores tal que o tempo de execução seja minimizado, considerando custo de comunicação Escalonar aplicações em um número limitado de processadores tal que o tempo de execução seja minimizado considerando tempos limites (deadline), considerando custo de comunicação o objetivo deve estar especificado

Questões de projeto Alocação de processos a processadores Processos podem ser alocados a certos processadores e não mudar até o seu término Exemplo: processo P x é associado ao núcleo N y até o seu término Escalonador de curto prazo é aplicado (pode ser preemptivo ou não) Vantagem: menos overhead/sobrecarga Escalonamento meio que estático

Questões de projeto Alocação de processos a processadores (alocação estática de processos a processadores) Desvantagem: Associar em um determinado momento vários processos a um processador (núcleo) e outro processador se tornar ocioso não explora a ociosidade de processador Solução para minimiza a ociosidade de processadores um processo pode ser alocado a diferentes processadores durante sua vida Pode ser vantajoso em um ambiente de memória compartilhada devido a uma menor sobrecarga na troca de contexto No entanto pode aumentar chache miss Por que?

Questões de projeto Paradigmas de alocação De qualquer forma, quem associa? Como pode ser o modelo? Duas abordagens: mestre/trabalhador e peer

Paradigmas de alocação Mestre/trabalhador As funções de escalonamento executam em um processador: o mestre Os outros processadores executam os processos de usuário (os trabalhadores) Abordagem é simples e as políticas de uniprocessador podem ser mais facilmente adaptadas Conflitos ficam mais fáceis de serem resolvidos pois o mestre tem visão de toda a memória e todos os dispositivos de I/O Desvantagem: Falha do mestre Mestre pode ser tornar um gargalo

Paradigmas de alocação Mestre/trabalhador As funções de escalonamento executam em um processador: o mestre Os outros processadores executam os processos de usuário (os trabalhadores) Abordagem é simples e as políticas de uniprocessador podem ser mais facilmente adaptadas Conflitos ficam mais fáceis de serem resolvidos pois o mestre tem visão de toda a memória e todos os dispositivos de I/O Desvantagem: Falha do mestre Mestre pode ser tornar um gargalo

Paradigmas de alocação Peer ou escalonador distribuído O núcleo pode ser executado em qualquer processador Cada processador faz self-scheduling de um pool de processos disponíveis Vantagem: melhor otimização do problema e visão global Desvantagem: complicação de implementação Necessidade de sincronização de diferentes processadores

Escalonamento de processos Tradicionalmente em sistemas de multiprocessadores, processos não estão alocados exclusivamente a um processador Em geral: P1 Fila única P2 P3 P4

Escalonamento de Processos Exemplo de estudo comparativo Supondo S1 - sistema com um processador S2 - sistema duo-processador taxa de processamento de cada processador em S2 = ½ taxa processamento do processador de S1 Então, a pergunta é: é melhor ter dois processadores mais lentos do que um mais rápido? IC - UFF 12

Escalonamento de Processos comparação entre FCFS e round-robin RR: quantum bem maior que tempo de troca de contexto RR: quantum com valor pequeno quando comparado ao tempo médio de serviço dos processos resultado da análise: depende do coeficiente de variação em relação ao tempo de serviço C s = ou seja, o quanto varia o tempo de serviço entre os diferentes processos IC - UFF 13

Escalonamento de Processos σ s - desvio padrão do tempo de serviço - tempo médio de serviço C s se Zero: os tempos de serviços são similares pode ser alto: muita variação entre os tempos de serviço IC - UFF 14

Escalonamento de Processos FCFS pode ser problemático quando comparado com RR em um processador. Mas... FCFS em S2 (duo processado) é amenizado: enquanto um processo longo que chegou primeiro está sendo executado por um processador, outros processos são executados no outro pode ser tão bom quanto round-robin, principalmente se o número de processadores aumentar IC - UFF 15

Escalonamento de Threads processo = conjunto de threads em um processador threads são vantajosas devido a E/S em vários processadores dividir a funcionalidade do processamento entre processadores leva a um maior ganho threads + multiprocessamento = exploração do grau de paralelismo da aplicação granularidade fina! paralelismo não tão vantajoso alto grau de interação entre threads IC - UFF 16

Escalonamento de Threads Escalonamento é mais complexo quando várias CPUs se tornam disponíveis Processadores Homogêneos dentro de um mesmo multiprocessador no entanto, já se inicia uma tendência de heterogeneidade: big and small CPUs

Escalonamento de Threads Algumas classes: Compartilhamento/balanceamento de carga Gang scheduling Alocação a processadores específicos Escalonamento dinâmico

Escalonamento de Threads Balanceamento de carga O escalonador supervisiona a carga dos processadores, e divide a carga Não deixa processador ocioso toda vez que um processador está ocioso, a rotina do SO o seleciona para executar a próxima thread Uma fila global pode ser definida e as threads a serem executadas são incluídas Conforme a chegada do processo, as suas threads são inseridas na ordem FCFS Ordenadas de acordo com prioridade, ou pelo número de threads que cada processo tem

Escalonamento de Threads Balanceamento de carga Alguns problemas com uma fila única Gargalo Se as threads sofrerem preempção podem ser depois associadas a processadores diferentes com caches diferentes Threads que compartilham informações podem ser associadas a processadores distintos com espaço de memória distinto (cache ou memória principal)

Escalonamento de Threads Gang Scheduling Tem sido aplicado ao conceito de escalonar simultaneamente um conjunto de threads que compõem um processo O conceito é bastante vantajoso quando threads dependem uma das outras e não podem esperar sem perder desempenho de execução

Escalonamento de Threads Gang Scheduling Melhora a performance de uma aplicação se as threads correlatas estiverem em execução T1 e T2 são duas threads de um mesmo processo T1 está sendo executada: precisa sincronizar com T2 T1 fica em espera até que T2 seja executado em algum processador seria melhor T2 já estar executando em outro processador

Escalonamento de Threads Gang Scheduling N processadores, M aplicações com N ou menos threads cada aplicação cada aplicação poderia receber 1/M do tempo disponível, utilizando os N processadores nem sempre isso é eficiente A1 A2 4 threads 1 thread alocação de tempo uniforme: N = 4 ocioso IC - UFF 23 P1 P2 P3 P4 ½ ½ 100%/8 = 12,5% 12,5% X 3 = 37,5% ocioso

Escalonamento de Threads Gang Scheduling uma solução: dar pesos aos processos de acordo com o número de threads considerando todos os processos A1 tem 4/5 das threads 80% A2 tem 1/5 das threads - 20% Cada thread tem 20% do tempo ocioso P1 P2 P3 P4 100%/20 = 5% 5% X 3 = 15% ocioso 4/5 1/5 IC - UFF 24

Uma Classe de Problemas Escalonamento de Aplicações em um Sistema de Computadores Distribuídos classe de aplicações especificada pelo modelo da aplicação a arquitetura enfocada constitui em um sistema de processadores de memória distribuída que se comunicam por trocas de mensagens modelo arquitetural apresenta as características importantes a serem consideradas

Escalonamento de Aplicações Alguns conceitos Tarefa uma unidade de computação job = conj. de tarefas com objetivo comum aplicação paralela! tarefas que seguem uma ordem parcial

Escalonamento de Aplicações Escalonamento local X global global! tarefas são associadas a processadores! mapeamento, task placement, matching local! várias tarefas em um processador No escalonamento global: - migração custoso e nem sempre usado (sala contexto, trasfere contexto para o novo processador, reinicializa tarefa) - geralmente se refere a balanceamento de carga

Balanceamento de Carga sender-initiated receiver-initiated P 1 P 2 P 1 P 2

Mais conceitos preempção! tarefas/jobs em execução podem ser transferidas (migradas) mais custos não preempção! geralmente em relação às tarefas tarefas não são interrompidas migração somente para tarefas ainda por executar

Escalonamento de Aplicações Estático conhecimento de características associadas às aplicações antes da execução desta (estimativas) relação de precedência entre os componentes da aplicação Dinâmico estimativas são conhecidas antes da execução e não as características reais. a especificação do escalonamento é feita ao longo da execução da aplicação balanceamento de carga, por exemplo

Escalonamento Estático de Aplicações O Problema de Escalonamento de Tarefas em um conjunto de processadores é, em sua forma geral, NP-completo. Uma variedade de heurísticas de escalonamento foram propostas, principalmente para um conjunto de processadores homogêneos, considerando ou não custo de comunicação associado à troca de mensagens Alguns heurísticas que consideram um conjunto de processadores homogêneos foram analiticamente avaliadas, e foi concluído que escalonamento produzidos estão dentro de um fator do ótimo. Algumas instâncias do problema possuem solução ótima

Modelo da Aplicação uma aplicação da classe de aplicações abordadas é constituída por um conjunto de tarefas, ordenadas parcialmente por uma relação de precedência a classe de aplicações aqui discutida pode ser representada por um grafo acíclico direcionado (GAD) G = (V,E, ε, ω), onde as tarefas da aplicação são representadas pelo conjunto de n vértices V = { v 1, v 2,..., v n } as relações de precedência que correspondem a dependência de dados são representadas pelo conjunto de dados E = { (v i, v j ) }

Modelo da Aplicação o peso de computação ε(v i ) pode estar associado a cada tarefa de G (estimativa) correspondendo ao número de unidades de tempo necessários para executar a tarefa v i o peso de comunicação ω(v i, v j ) pode estar associado a cada arco (v i,v j ) de G (estimativa) correspondendo à quantidade de dados a serem enviados da tarefa v i para a v j seja pred (v i ) o conjunto de predecessores imediatos da tarefa v i, ou seja, pred (v i ) = {v j / (v j,v i ) E } seja succ (v i ) o conjunto de sucessores imediatos da tarefa v i, ou seja, succ (v i ) = {v j / (v i, v j ) E }

Modelo da Arquitetura definição de características que afetam o desempenho processadores homogêneos e heterogêneos número limitado ou não de processadores memória distribuída ou compartilhada topologia da rede de interconexão modelo de comunicação latência de comunicação sobrecargas de envio e recebimento etc

Heurísticas de Escalonamento Heurísticas de Escalonamento Estático heurísticas de construção: um algoritmo polinomial no tamanho da entrada que a cada iteração, especifica para uma tarefa o seu escalonamento tupla (tarefa, processador, tempo de início) ao final, uma só solução foi formada escalonamento deve ser válido (respeitar as relações de precedência e as características do modelo arquitetural) difícil classificação técnica empregada modelo considerado

Heurísticas de Escalonamento Heurísticas de Escalonamento Estático List Scheduling Algomeração de Tarefas Minimização de Caminho Crítico Replicação de Tarefas

Restrições de Escalonamento Seja um DAG: G(V,E) e uma modelo arquitetural Tempo de início (start time): st(v i, p k ) Tempo de fim (finish time): ft(v i, p k ) Alocação do processador: proc (v i ) Restrições: De processador: p k = proc(v i )=proc(v j ) st (v i, p k ) >= ft (v j, p k ) OR st (v j, p k ) >= ft (v i, p k ) de precedências: v j pred( v j ), st (v j, p k ) >= ft (v i, proc(v i )) + comm (v i, v j )

List Scheduling Estratégia (extremamente) gulosa tradicional e bastante conhecida (utilizada) devido a sua simplicidade (baixa complexidade) escalonamento de instruções em unidades funcionais escalonamento em processadores heterogêneos (em número limitado) Alguns conceitos importantes tarefa livre - todos os seus predecessores imediatos já foram escalonados; processador ocioso - em um determinado instante t k, não existe nenhuma tarefa sendo executada neste instante;

List Scheduling Framework Definição da prioridade das tarefas v i V; Enquanto ( existir v i não escalonado ) faça { v i = a tarefa livre de maior prioridade; p j = o processador ocioso onde v i começa mais cedo; escalone v i no processador p j ; determine as novas tarefas livres; }

Prioridades associada às tarefas Caminho crítico Caminho no grafo com o maior comprimento bottom-level, top-level, etc... Medidas para definir a importância dum nó! a ordem em que as tarefas são escalonadas é muito importante

Um Exemplo de GAD pesos de execução em pesos dos arcos em 0 4 2 4 1 5 2 2 3 7 1 3 4 6 8 5 4 2 5 6 6 3

Replicação de Tarefas Papadimitriou e Yannakakis (PY) princípio da replicação grafo acíclico direcionado G = (V, E) (UET-UCT) pesos de execução das tarefas: unitários pesos dos arcos: unitários latência de comunicação L é o custo mais relevante número ilimitado de processadores

Replicação de Tarefas Papadimitriou e Yannakakis (PY) princípio da replicação para cada tarefa v i, o cluster de tarefas v i é construído o tempo mais cedo de início possível é calculado earliest start time e(v i ) não necessariamente a tarefa v i pode ser escalonada no tempo mais cedo e(v i ) explora a sobreposição de computação das tarefas com a comunicação de mensagens

Replicação de Tarefas melhor caso 0 3 0 1 2 3 1 2 L 4 4