Programação e Scheduling



Documentos relacionados
Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

PPD: Balanceamento de Carga e Scheduling 2

Organização de Computadores 2005/2006 Processamento Paralelo

Sistemas Paralelos e Distribuídos. Prof. Jorge Dantas de Melo Depto. Eng. Comp. e Automação CT - UFRN

Arquitetura NUMA 1. Daniel de Angelis Cordeiro. INRIA MOAIS project Laboratoire d Informatique de Grenoble Université de Grenoble, França

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano

Programação Paralela

Multi-processamento. Arquitecturas MIMD de memória partilhada Multi-cores heterogéneos Multi-processadores

Programação Paralela e Distribuída 2009/10. Fundamentos

Complexidade de Algoritmos. Edson Prestes

A Evolução dos Clusters frente as demais arquiteturas de Alto Desempenho

Pipelining. Professor: Carlos Bazilio. Pólo Universitário rio de Rio das Ostras

Análise de complexidade

Multiprocessamento. Sérgio Campos

5COP096 TeoriadaComputação

Técnicas de Computação Paralela Capítulo III Design de Algoritmos Paralelos

Organização e Arquitetura de Computadores. Capítulo 13 Paralelismo no nível de instruções

7 Processamento Paralelo

Processamento de Dados

Aula 5 Escalonamento usando prioridades fixas

Introdução a Informática. Prof.: Roberto Franciscatto

MAC 412 Organização de Computadores

Introdução às arquiteturas paralelas e taxonomia de Flynn

Comparação SDs X Scs

Primeiros "computadores" digitais. Execução de um programa. Consolas. Primórdios dos computadores. Memória interna. Computadores com memória interna

Figura 1 - O computador

Escalonamento no Linux e no Windows NT/2000/XP

Symmetric Multiprocessing Simultaneous Multithreading Paralelismo ao nível dos dados

Introdução à Programação. João Manuel R. S. Tavares

PLANO DE ENSINO. Período/ Fase: 1º Semestre: 1º Ano: 2011 Disciplina: Programação de Computadores I (PGC21) Carga Horária: 72 horas/aula

Organização e Arquitetura de Computadores I. de Computadores

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Ricardo Gonçalves 2013/2014. Arquitecturas Multicore

Máquinas Multiníveis

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

7-1. Parte 6 Otimizações da Arquitetura

Sistemas Computacionais II Professor Frederico Sauer

Visão Geral da Arquitetura de Computadores. Prof. Elthon Scariel Dias

Sobre o Professor Dr. Sylvio Barbon Junior

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Seção 5.1 Problemas indecidíveis. Slides originais gentilmente cedidos pela Profa. Ariane Machado Lima

Algoritmo e Programação

Gerência de processos Requisitos fundamentais

Máquina de estados UNIX O

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

Introdução aos Sistemas Operativos

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

Alocação Dinâmica e Transparente de Computadores Ociosos em Java

Análise e Complexidade de Algoritmos

Capítulo 1 Introdução

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

1.3. Componentes dum sistema informático HARDWARE SOFTWARE

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64

SISTEMAS DE INFORMAÇÃO PARA GESTÃO

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 1

Processos e Threads (partes I e II)

Informática I. Aula 5. Aula 5-13/05/2006 1

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

PROGRAMAÇÃO JAVA. Parte 1

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

PERT Charts, para gestão de projectos

ALGORÍTMOS PARALELOS (Aula 2) LCAD. Neyval C. Reis Jr. OUTUBRO/2004. Laboratório de Computação de Alto Desempenho DI/UFES

Multiprocessamento. Patterson & Hennessy Capítulo 9. Arquitetura e Organização de Computadores Juliano M. Vieira (c) 2011

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Aspectos técnicos do desenvolvimento baseado em componentes

UFRJ IM - DCC. Sistemas Operacionais I. Unidade I Introdução. 11/02/2014 Prof. Valeria M. Bastos


O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador.

Agenda do Mini-Curso. Sérgio Yoshio Fujii. Ethan Boardman.

Professores: Aula 10. Lúcia M. A. Drummond Simone de Lima Martins. Conteúdo: Arquiteturas Avançadas. - Arquiteturas RISC - Processamento Paralelo

Sistemas Operacionais

Tipos de Computadores

UFRJ IM - DCC. Sistemas Operacionais I

Sistemas Operacionais

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br

A gestão da implementação

Algoritmos e Linguagem de Programação de Computadores I

Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters

Edeyson Andrade Gomes

Capítulo 8. Software de Sistema

Sistemas Operacionais: Sistema de Arquivos

Curso Técnico em Redes

Bits internos e bits externos. Barramentos. Processadores Atuais. Conceitos Básicos Microprocessadores. Sumário. Introdução.

Limitações dos Computadores

Muitas aplicações modernas podem ser modeladas como tarefas divisíveis.

Sistemas Operativos I

3 Método de Monte Carlo

Introdução à Computação

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Estrutura e funcionamento de um sistema informático

Categorias de Padrões

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos

Transcrição:

Sistemas de Processamento Paralelo: Programação e Scheduling Oliver Sinnen oliver.sinnen@inesc.pt

Conteúdo Introdução Programação paralela Identificação de sub-tarefas Dependências Scheduling List Scheduling

Sistemas paralelos Sistemas com mais do que uma unidade de processamento (processador) Unidades trabalham em paralelo para resolver um problema SIMD (Single Instruction Multiple Data), MIMD (Multiple Instructuion Multiple Data)

Arquitectura de sistemas paralelos Memória partilhada Comunicação rápida entre processadores Ex. uma maquina com vários processadores => IBM, SUN < 64 P Memória distribuída Comunicação lenta entre processadores Ex. clusters de PCs => Existem Linux clusters <512 PCs!

Programação sequêncial 1. Especificação da tarefa Textual, na cabeça, equações... 2. Codificação da tarefa Numa linguagem de programação (por ex. C, Java,...) 3. Execução num processador Programa é executado num computador com um processador

Programação paralela Além das tarefas da programação sequêncial: Decomposição da tarefa em subtarefas Análise de dependências entre as subtarefas Mapeamento espacial e temporal (scheduling) das sub-tarefas para os recursos do sistema paralelo

Programação paralela

Sub-tarefas Exemplo: d = a 2 +a+1 a = 1 b = a + 1 c = a*a d = b + c Identificação de sub-tarefas/ decomposição em sub-tarefas Análise de dependências entre as sub-tarefas

Dependências 1: a = 1 2: b = a + 1 3: c = a*a 4: d = b + c grafo de dependência 1 2 3 4

Scheduling, exemplos Schedule 1: Schedule 2: Processor 1 Processor 2 Processor 1 Processor 2 1 3 1 3 4 2 2 4

Scheduling dinâmico vs. estático Dinâmico Atribuição sub-tarefa <-> processador durante a execução da tarefa (-> multitasking) Estático Para problemas não determinísticos Adapta-se à situação Atribuição sub-tarefa <-> processador antes da execução Gestão de localidade de dados Sem overhead na execução

Scheduling estático Problema NP-completo: Complexidade duma solução óptima é O(x N ), em que N é o número de sub-tarefas Algoritmos de scheduling: Do tipo heuristico Entradas: Grafo que representa a tarefa; número de processadores Saída: Schedule que define em qual processador e quando é que as sub-tarefas são executadas

Grafos para scheduling Grafo é modelo duma tarefa a paralelisar: Nó representa computação (sub-tarefa) Arco representa comunicação/dependência entre nós Peso dum arco ou dum nó representa o custo (tempo) Tipos de grafos, por ex.: DAG, grafos de fluxo, grafos não direccionais

Exemplo dum grafo b=a+1 Sub-tarefas: 1 a a=1 a 2 3 b c 4 d=b+c c=a*a Pesos: 1 1 1 1 2 4 2 3 1 1 4 2

DAG (Directed Acyclic Graph) Modelo de grafo mais usado para scheduling estático Direccionado Representação precisa das dependências e do fluxo de comunicação Acíclico Simples para análises (teoria de grafos Não tem representação directa de ciclos => granularidade grosseira é típico

Algoritmo de scheduling: List scheduling 1. Ordena os nós numa lista segundo a sua importância, respeitando as dependências 2. Schedule do 1º nó da lista no processador que permite a sua execução mais cedo; apaga nó da lista 3. Repete 2. até todos nós da lista serem processados

Prioridades de nós Caminho crítico Caminho no grafo com o maior comprimento bottom-level, top-level Comprimentos de caminhos parciais (por ex. bottom-level de f é 6) Medidas para definir a importância dum nó => ordem na 1ª parte de list scheduling

Procurar o melhor processador Na 2ª fase de list scheduling: Para cada nó em cada processador: Quando o processador está livre Quando chegam os dados de entrada É assumido que comunicação entre nós executados no mesmo processador é zero

Exemplo list scheduling

Resultados de List Scheduling Grafos aleatórios Custo por nó: 1 em média Comunicação elevada 16 processadores

Scheduling e comunicação Comunicação é a parte mais crítica na paralelização de tarefas No scheduling tradicional assume-se sistemas paralelos ideais: completamente ligados e sem competição nos recursos de comunicação => Não é realístico!

Scheduling em sistemas arbitrários com competição Sistemas alvos também modelados como grafo Canais de comunicação tratados como processadores => scheduling de messagens nos canais

Investigação List scheduling com competição Obter resultados em sistemas reais Bom Apetite!!!