Você está na página 1de 20

Metodologia de Foster

Modelo Tarefa/Canal

Ian Foster

Professor do departamento de cincia da computao na Universidade de Chicago. Suas pesquisas resultaram no desenvolvimento de tcnicas, ferramentas e algoritmos de alto desempenho para computao distribuda e computao paralela.

Modelo Tarefa/Canal
Este modelo facilita o desenvolvimento de programas paralelos eficientes.

Particionamento dos dados e da computao em tarefas primitivas. Comunicao entre as tarefas. Aglomerao das tarefas primitivas. Mapeamento das tarefas nos processadores.

Particionamento
Divide a computao e os dados em partes menores possveis, para obter o mximo de paralelismo.

Abordagem:
Centrado nos dados.

Centrado nos processamentos.

Decomposio de Domnio
Dividimos os dados em partes e depois determinamos a forma de associar processamentos com os dados.
O foco na maior e mais acessada estrutura de dados. Melhor maximizar o numero de tarefas primitivas.

Decomposio de Domnio

Decomposio Funcional
Dividimos o processamento em partes e depois determinamos como associar os dados com os processamentos. Exemplo um somatrio.

Comunicao
Processo de identificao do padro de comunicao entre as tarefas.
Podendo esse padro ser do tipo :

Local = Cada tarefa se comunica com um pequeno conjunto de outras tarefas seus vizinhos.
Global Exige cada tarefa de se comunicar com muitas tarefas. a parte da sobrecarga paralela dos algoritmos paralelos.

Comunicao Global

Algoritmo baseado em viso puramente local de comunicao. O gerente receber os valores e adiciona-los em um acumulador, no entanto o gerente s pode receber e somar apenas um de cada vez, logo esta abordagem leva (N) tempo para soma (N) nmeros, no um algoritmo com eficiente nvel de paralelismo.

Comunicao Global
Problemas no exemplo:
O algoritmo centralizado: no distribuir computao e comunicao. O algoritmo sequencial: no permite que varias operaes de computao e comunicao para proceder simultaneamente.

Distribuindo Comunicao e Computao

Distribuio da computao e comunicao, dividindo o somatrio dos N nmeros, fazendo cada tarefa i, O<i <N-1, calcula a soma. Tarefa 0 recebe uma soma parcial e adiciona este ao seu valor local para obter a soma total. Este algoritmo distribui os N-1 comunicaes.

Aglomerao
Promove a combinao das tarefas primitivas para mapea-las em processadores fsicos, assim reduzindo a sobrecarga paralela. Pelo fato do custo fixo De inicializao.

Aglomerao
Objetivos:
Reduzir a sobrecarga com incremento de localidade. Manter a escalabilidade. Reduzir custo de engenharia de software

Mapeamento
Especificar onde cada tarefa executada(processadores).
Em computadores paralelos o mapeamento continua a ser um difcil problema que deve ser explicitamente dirigido ao projetar algoritmo paralelos. Objetivos:
Maximizar a taxa utilizao dos processadores Minimizar a comunicao interprocessador.

Mapeamento
A B C E D E F B F G H D G A C H

Mapeamento
Aumentar a utilizao dos processadores e diminuir a comunicao interprocessador so objetivos conflitantes. Devemos escolher um mapeamento que represente um meio termo razovel entre maximizar utilizao de processadores e minimizar comunicao

Algoritmo de Escalonamento de tarefas: quando as tarefas no se comunicam umas com as outras . Recebe um subproblema para resolver e retorna a sua soluo.

Escalonamento Centralizado: eficaz para numero moderados de processadores. Um conjunto de processadores dividido em gerente e muitos trabalhadores. O gerente mantm um conjunto de descries de problema e responde ao pedidos dos trabalhadores.

Escalonamento Descentralizado
No existe gerente central, cada processador mantm sua prpria lista de tarefas, para permitir o balanceamento de cargas entre os trabalhadores utilizam duas tcnicas: empurrar e puxar tarefas:
Empurrar: Processadores com muitas tarefas disponveis tentam envia-las para os vizinhos.

Puxar: Processadores ociosos consultam vizinhos pro tarefas disponveis.

Projeto de algoritmo paralelo no facilmente reduzido a receitas simples, ele exige o tipo de pensamento criativo. Ian Foster