Introdução O que é o problema de sequenciamento em processadores paralelos (P| | Cmax)? Temos n tarefas independentes, cada uma com um tempo de execução.

Slides:



Advertisements
Apresentações semelhantes
Exemplos de Indução Matemática
Advertisements

UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Avaliação de um Artigo : 19/09 – Aula 26/09 – Aula 03/10 - s/ Aula 10/10 – aula 17/ apresentações (20 min. Cada grupo) + aula 24/ apresentações.
DIMENSÕES ESSENCIAIS DO CARGO
Intranet.
MPI – Comunicações Com. Colectiva esquecida Barrier não há troca de dados, apenas sincroniza os processos int MPI_Barrier( MPI_Comm, comm) T com = T lat.
Inicialização: Escolher > 0 para ser usado como terminação. Sejam d 1, d 2, …, d n as direcções das coordenadas. Escolher um ponto inicial x 1 e seja y.
Funções Especiais Aula 3 – Prof Marli.
Introdução a Algoritmos Seqüenciais
Sistemas Digitais Fluxogramas ASM
UENP - FALM Análise e Projeto de Sistemas III
PROCESSOS E FUNÇÕES ADMINISTRATIVAS
Sistemas Distribuídos
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Enumeração Implícita de Balas
INTELIGÊNCIA COMPUTACIONAL PARA OTIMIZAÇÃO
Introdução à Otimização
Métodos Numéricos e Estatísticos
Scheduling Prof. Gustavo Peixoto Silva Departamento de Computação
Prof. Daniel Keglis Matemática
Gerenciamento de projetos
Problema de designação
Transformação de Imagens
Computer Vision Transformação de Imagens Paulo Sérgio Rodrigues PEL205.
Thiago P. Berto Crineu Tres
Benedito C. Silva Universidade Federal de Itajubá – UNIFEI Instituto de Recursos Naturais - IRN.
Introdução a Banco de Dados Prof.: Bruno Rafael de Oliveira Rodrigues.
Fundamentos da Engenharia de Software
O VECTOR CAMPO ELÉCTRICO,
PROGRAMAÇÃO ESTRUTURADA II
Linguagem de Programação II Parte IV
UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE MATEMÁTICA
Linguagem de Programação IV
Sistemas Distribuídos
Introdução ao uso de vatores na linguagem PASCAL.
Professor: Paulo Murillo
Elaboração e Análise de Projetos
GEOMETRIA ANALÍTICA E ÁLGEBRA LINEAR
INTRODUÇÃO.
Otimização Linear Definições e Solução Gráfica
Oficinas de Desenvolvimento de Software
Sistemas Operacionais
Introdução Prof. Antonio Carlos Coelho
Comandos de Condição Aula 1 1. Introdução Até agora, todos os algoritmos que fizemos têm um fluxo de execução único. As instruções executadas são sempre.
Algoritmos e Estruturas de Dados I – Estrutura de Repetição
Prof.: Sergio wagner.
Exercícios de Pilha e Fila
- 1 - Jogos de Empresas I - Prof. Luís Carlos Padrão Solução do exercício da fábrica de papagaios A - Definição da sequência de montagem para minimizar.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo IX Subprogramação e Recursividade.
Problemas de Forma Não-Padrão
Dualidade UFOP - ICEA Prof.: Guido Pantuza.
Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Multiplicação de Cadeia de Matrizes
NÚMEROS REAIS.
Projeto de um Algoritmo Genético Híbrido para Planejamento Operacional de Curto Prazo de Minerações a Céu Aberto Robert Fabricio Subtil.
ORGANIZAÇÃO, SISTEMAS E MÉTODOS
Gerenciamento de Memória Sistemas Recentes
UNIVERSIDADE PAULISTA - UNIP
INTRODUÇÃO A COMPUTAÇÃO ENG. CIVIL Professora: Fabíola Gonçalves. UFU Universidade Federal de Uberlândia.
Gerência de Projetos de Software
Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.
SOLUÇÕES & SERVIÇOS.
Digite aqui o título da webquest Digite aqui outras informações sobre a webquest Responsável, escola, a quem se destina, etc. Introdução Tarefa Processo.
Introdução aos Sistemas de Tempo Real Sergio Cavalcante Centro de Informática – UFPE Assunto: [str]
Alert(“teste!”) ;. O PROBLEMA DE ALOCAÇÃO DE TAREFAS BTM G CFP C GM L LHD S.
BALANCEAMENTO DE LINHA Fernando Ressetti Pinheiro Marques Vianna.
Aulão de Matemática Análise Combinatória Professor: Mundico
Algoritmos com matrizes e vetores
Transcrição da apresentação:

Introdução O que é o problema de sequenciamento em processadores paralelos (P| | Cmax)? Temos n tarefas independentes, cada uma com um tempo de execução inteiro e positivo Pj para serem alocadas em m processadores paralelos idênticos. Objetivo do P || Cmax: Minimizar o tempo de finalização das n tarefas alocadas nos m processadores supondo n>m>2.

Formulação matemática 1, se a tarefa j é alocada ao Xij = processador i; 0, caso contrário. Min  ∑j p j *Xij <= Para todo i ∑i Xij =1 P/ todo j

Heurísticas Construtivas Heurísticas usadas como base para o problema p | | Cmax List Scheduling (Grahan-1966) Tarefas organizadas em uma lista sem qualquer ordenação prévia, sendo alocadas uma a uma no processador menos carregado.

Longest processing time first-LPT Ordena as tarefas em ordem decrescente de tempos de processamento. Multifit (Coffman,Garey e Johnson-1978) Resolve problemas de empacotamento que tem estreita relação com o P || Cmax. O problema de empacotamento consiste em alocar itens em caixas ultizando o menor número de caixas possíveis,onde as caixas possuem a mesma capacidade e os ítens tamanhos diferentes.

Heurísticas de Melhoramento 0/1-Interchange (Finn e Horowitz – 1979) Aloca-se n tarefas aos m processadores em uma ordem aleatória. Ordena-se os processadores de modo que d seja a diferença entre os tempos de finalização do processador mais carregado e do menos carregado. Se existe uma tarefa cujo tempo de processamento é menor que essa diferença a tarefa é transferida para o processador menos carregado. O processo se repete até que não existam mais possibilidades.

Improved 0/1-Interchage Evita alocações pobres, ou seja, a distribuição inadequada de tarefas com tempos de processamentos grandes uma vez que a heurística de trocas não consegue movê-las para outros processadores. As maiores tarefas são alocadas uma para cada processador, seleciona-se as outras maiores tarefas ainda não alocadas em ordem decrescente de processamento. O List Scheduling é aplicado a essas tarefas é elas são alocadas sucessivamemte , ao processador menos carregado.

Algoritmo Heurístico 3-Fases

Temos 3 Fases a se resumir: Na Fase 1; as tarefas são classificadas de acordo com os tempos de processamento e alocadas aos processadores de maneira a obter um carregamento balanceado entre eles. Na Fase 2; a divisão de carga é melhorada, movendo–se, sucessivamente,uma tarefa do processador mais carregado para o menos carregado. Na Fase 3; tem-se um balanço de cargas ainda melhor,através da troca simultânea de duas tarefas pertencentes a processadores diferentes.

Fase 1 – Alocação inicial Esta Fase pode ser vista como procedimento construtivo, com a característica de não necessitar de uma pré ordenação das tarefas. A única exigência é que se conheça um limitante inferior (pi) e superior (ps) dos tempos de processamentos das tarefas a serem alocadas. Dividindo o intervalo [pi,ps] em r intervalos aproximadamente iguais, chamando-os de i1,...,ir. Chama-se uma tarefa JJ de L-tarefa se pJ pertencente a il .

Fase 2 – Fase de Balanceamento Esta fase pode ser vista como um procedimento de melhoramento, a partir da solução encontrada pela FASE 1 procura-se diminuir o tempo de finalização trocando tarefas do processador mais carregado para o menos carregado. A escolha das tarefas a serem trocadas é orientada pelo tempo médio de finalização, definido como: C_ = i=1∑m (Ci/m)

Fase 3 – Duplas Trocas Esta Fase também pode ser vista como algorítmo de melhoramento, ela é mais elaborada, pois além de envolver duas tarefas, procura a melhor troca dentre todas as possíveis, aproveitando a estrutura de armazenamento das tarefas em intervalos, para reduzir as combinações à pesquisar. Novamente M1 e Mm representam os processadores mais e menos carregados. Os processadores restantes são arbitráriamente nomeados. Nesta fase tenta-se a troca de uma tarefa de M1 (digamos, JJ) com uma tarefa de outro processador Mh (JJ`), partindo de H=M, M-1, ...,2, até que uma troca vantajosa seja identificada.

Programa Métodos Maquinas Intervalos Principal

Classe Maquina void insereNoIntervalo( int num, int tarefa) int carga () void retiraTarefa(int tarefa, int intervalo) void addTarefa(int tarefa, int intervalo) boolean existeDelta(int delta)

Classe Intervalo void addTarefa(int tarefa) int cargaInt() boolean existeDelta (int delta) void retiraTarefa(int tarefa)

Classe Métodos int calcMedia (int tam, Maquina[] m) int calculaL(double inter, int tam, int tarefas) Maquina maiorCarga( int tam ,Maquina[] m) Maquina menorMaquina(int tam, Maquina[] m)

Rotina de Construção for (int i=0; i <tarefaSize; i++) { int l = calculaL(intervet,r,tarefas[i]); int maq=(s[l-1]%procSize)+1; //System.out.println(maq); s[l-1]= maq; proc[maq-1].insereNoIntervalo(l-1,tarefas[i]); }

Variáveis

Função Objetivo É dada pela diferença entre a maior carga e a carga média. Logo o objetivo é de minimizar a função objetivo.