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)? Temos n tarefas independentes, cada uma com um tempo de execução.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

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

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

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.

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.

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.

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.

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

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

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

12 Programa Métodos Maquinas Intervalos Principal

13 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)

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

15 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)

16 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]); }

17 Variáveis

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


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google