A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução O que é o problema de sequenciamento em processadores paralelos (P| | Cmax)? O que é o problema de sequenciamento em processadores paralelos.

Apresentações semelhantes


Apresentação em tema: "Introdução O que é o problema de sequenciamento em processadores paralelos (P| | Cmax)? O que é o problema de sequenciamento em processadores paralelos."— Transcrição da apresentação:

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

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

3 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. Tarefas organizadas em uma lista sem qualquer ordenação prévia, sendo alocadas uma a uma no processador menos carregado.

4 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. 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.

5 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. 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.

6 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. 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.

7 Algoritmo Heurístico 3-Fases

8 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 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 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. 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.

9 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. 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 i 1,...,i r. Chama-se uma tarefa J J de L-tarefa se p J pertencente a i l. Dividindo o intervalo [pi,ps] em r intervalos aproximadamente iguais, chamando-os de i 1,...,i r. Chama-se uma tarefa J J de L-tarefa se p J pertencente a i l.

10 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: 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) C_ = i=1 m (Ci/m)

11 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 M 1 e M m 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 M 1 (digamos, J J ) com uma tarefa de outro processador M h (J J `), partindo de H=M, M-1,...,2, até que uma troca vantajosa seja identificada.

12 Programa Maquinas Intervalos Métodos Principal

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

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

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

16 Rotina de Construção for (int i=0; i

17 Variáveis

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


Carregar ppt "Introdução O que é o problema de sequenciamento em processadores paralelos (P| | Cmax)? O que é o problema de sequenciamento em processadores paralelos."

Apresentações semelhantes


Anúncios Google