PPD: Balanceamento de Carga e Scheduling2
Fernando Silva
DCC-FCUP
2
(Alguns dos slides são baseados nos de Kathy Yelick, www.cs.berkeley.edu/ yelick)
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling3
1 / 21
Objectivo do Scheduling
Os conceitos de balanceamento de carga e de scheduling são muito
próximos e, normalmente, usam-se com o mesmo significado.
O objectivo de uma estratégia de scheduling
é maximizar o desempenho de sistema paralelo, transferindo tarefas de
processadores mais sobrecarregados para outros que estejam mais leves.
Uma estratégia de scheduling envolve duas decisões importantes:
determinar quais as tarefas que podem ser executadas em paralelo, e
determinar onde executar as tarefas paralelas
A tomada de decisão é normalmente feita com base ou em conhecimento
prévio ou em informação em tempo de execução.
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling4
2 / 21
Dificuldades para o Scheduling
O desenho de uma estratégia de scheduling depende das propriedades das
tarefas:
Custos das tarefas
I
I
têm todas as tarefas o mesmo custo?
se não têm, quando são esses custos conhecidos?
F
antes da execução, quando a tarefa é criada, ou apenas quando
termina?
Dependências entre tarefas
I
I
as tarefas podem ser executadas em qualquer ordem?
se não podem, quando são conhecidas as dependências?
F
antes da execução, quando a tarefa é criada, ou apenas quando
termina?
Localidade
I
I
é importante que algumas tarefas executem no mesmo processador (ou
próximo deste) para reduzir custos de comunicação?
quando é que se conhece a informação sobre comunicação?
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling5
3 / 21
Custo de Tarefas
Scheduling de um conjunto de tarefas nos casos seguintes:
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling6
4 / 21
Dependências entre tarefas
Scheduling de um grafo tarefas nos casos seguintes:
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling7
5 / 21
Localidade de tarefas
Scheduling de um conjunto de tarefas nos casos seguintes:
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling8
6 / 21
Soluções de Scheduling
Scheduling Estático - as decisões são tomadas em tempo de
compilação.
I
I
I
análise estática de programas para estimar tamanho das tarefas; esta
informação é difícil de obter e geralmente incompleta.
mapeamento estático da árvore de pesquisa na arquitectura paralela
(mapeamento óptimo é NP-completo).
construção de um grafo dirigido com os nós a representarem tarefas e
as ligações representarem dependências nos dados ou comunicação;
determinar ordem de execução que minimize o tempo de execução.
Scheduling Dinâmico (ou partilha adaptativa de trabalho) - faz uso
de informação do estado da computação em tempo de execução, para
tomar decisões.
I
Exemplo: verifica a carga dos processadores para assegurar um
balanceamento de carga dinâmico nos processadores.
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling9
7 / 21
Porquê Scheduling Dinâmico?
Para uma grande classe de problemas, o seu espaço de soluções
corresponde a uma árvore de procura.
Estes problemas são frequentemente:
computacionalmente exigentes
admitem muitas estratégias diferentes de paralelização
requerem balanceamento dinâmico de carga
Exemplos:
enumeração de sub-grafos de tamanho k de um dado grafo
procura de padrões em redes sociais ou biológicas
problema da colocação das rainhas num tabuleiro
problemas divide-and-conquer e branch-and-bound
árvore de execução do Prolog
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling10
8 / 21
Árvore de procura
a árvore é construída dinamicamente durante ou com a execução
podem ter sub-problemas comuns em caminhos diferentes
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling11
9 / 21
Procura em paralelo
Considere-se:
uma pesquisa DFS da árvore
scheduling estático: enquanto houver processadores não ocupados,
atribuir a próxima nova tarefa.
Podemos e devemos fazer melhor!
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling12
10 / 21
Estratégias de Scheduling Dinâmico
As estratégias de scheduling dinâmico podem ser:
centralizadas
I
I
I
assumem um scheduler central que reúne informação sobre todo o
sistema, nomeadamente carga, e toma as decisões de transferência de
tarefas.
funciona bem num sistema de memória partilhada, mas com um
número de processadores reduzido.
é ineficiente num sistema de memória distribuída, pois requer muita
comunicação para manter o scheduler com informação actualizada.
distribuídas
I
I
existe um scheduler por processador que tomam decisões autónomas
sobre partilha de trabalho.
o objectivo é manterem o seu processador ocupado e balancear a carga
no sistema.
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling13
11 / 21
Scheduling Centralizado
O scheduler tem uma fila única de tarefas
1. responde a pedidos dos processadores (ou workers), ou
2. os workers acedem autonomamente à fila, sincronizando através de
locks
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling14
12 / 21
Master-Worker
Estratégia centralizada em sistemas de memória distribuída
Decisão de distribuíção de tarefas concentrada no master-worker
Workers executam ciclo:
I
I
I
I
pedir trabalho
receber trabalho
executar trabalho
enviar resultado
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling15
13 / 21
Questões com a estratégia centralizada
Evitar contenção no acesso à fila de tarefas partilhada
Suponha que as tarefas correspondem a um intervalo de índices de
um ciclo (iterações independentes). Seja K o tamanho da tarefa:
I
I
Se K for grande, reduz-se contenção no acesso à fila.
Se K for pequeno, simplifica-se o balanceamento de carga.
Ideias:
I
I
I
Usar tarefas maiores no início (maior número de índices) para evitar
overhead excessivo e menores mais próximo do fim.
No acesso de ordem i à fila, seleccionar uma tarefa com tamanho
dRi /pe, onde Ri é número total de tarefas em sobra e p é o número de
processadores.
O tamanho Ki é função do trabalho sobrante, mas também da
variância do custo da tarefa.
F
F
F
I
a variância é estimada usando informação histórica
variância elevada ⇒ tamanhos menores
variança baixa ⇒ tamanhos maiores
Enquadrar diferenças de processamento.
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling16
14 / 21
Filas distribuídas de tarefas (ou Work-Pools)
Extensão natural para sistemas distribuídos, mas também para
memória partilhada.
Permite que workers sem trabalho tomem a iniciativa de procurar
trabalho, ou que workers ocupados possam partilhar tarefas.
São úteis quando
I
I
se está com um sistema de memória distribuída
existe muita sincronização ou muitas tarefas pequenas
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling17
15 / 21
Scheduling Distribuído
As decisões de partilha podem ser:
sender initiated (ou work distribution)- os workers mais ocupados,
procuram outros menos ocupados para lhe atribuir tarefas.
I
melhor para pequenas cargas.
receiver-initiated (ou work-stealing) - os workers que ficam sem
trabalho, procuram um worker com muito trabalho e pede para
partilhar.
I
melhor para grandes cargas do sistema.
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling18
16 / 21
Como seleccionar um worker a quem pedir trabalho
Round-robin:
I
targetk = (targetk + 1) mod procs.
polling/stealing aleatório
I
Quando um processador precisa de trabalho, selecciona aleatoriamente
um processador e envia-lhe um pedido.
repete último:
I
I
por questões de localidade pode haver vantagem voltar a pedir ao
último worker,
se este não tiver trabalho, passa a um dos esquemas anteriores.
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling19
17 / 21
Como dividir trabalho?
Número de tarefas a distribuir? Dividir a meio?
Quais as tarefas:
I
I
topmost: tarefas do início da fila (mais antigas)
bottomost: tarefas do fim da fila (mais recentes)
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling20
18 / 21
Estratégias de partilha 1/2
Sender-initiated
Quando um worker gera uma nova tarefa, o seu scheduler procura o
processador mais livre e atribui-lhe a tarefa para execução. Se não for
bem sucedido, guarda na fila local.
Receiver-initiated
As tarefas geradas por workers são colocadas sempre na sua fila local.
Quando um worker procura uma tarefa para execução, o scheduler
procura primeiro na sua fila local. Se estiver vazia, então procura uma
tarefa fora (também referido por work-stealing).
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling21
19 / 21
Estratégias de partilha 2/2
Adaptative I
Combina as estratégias sender-initiated e receiver initiated. Os
workers são classificados como Senderds ou Receivers mediante o
valor de um parâmetro Threshold. Um worker é sender se o númerod
e tarefas na sua fila estiver acima do threshold, será receiver no caso
contrário.
Adaptative II
Melhora a heurística Adaptative I, introduzindo dois parâmetros Low
e High para classificar os workers como Senders, Receivers ou
Neutrals. Um worker muda dinamicamente o seu comportamento,
função da quantidade de trabalho na sua fila:
I
I
I
#tasks < high ⇒ comportamento sender
#tasks < low ⇒ comportamento receiver
neutral se low ≤ #tasks ≤ high
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling22
20 / 21
Exemplo da evolução das filas de tarefas
Fernando Silva (DCC-FCUP)
PPD: Balanceamento de Carga e Scheduling23
21 / 21
Download

PPD: Balanceamento de Carga e Scheduling=1(Alguns dos slides