Discretização do Tempo na Utilização de Programação Linear para o Problema de Escalonamento de Workflows em Múltiplos Provedores de Nuvem Thiago A. L. Genez, Luiz F. Bittencourt, Edmundo R. M. Madeira Instituto de Computação (IC) Universidade Estadual de Campinas (UNICAMP) 03 de Maio de 2012 1 / 25
Roteiro 1 Introdução Visão geral do problema Objetivos deste trabalho 2 Cenário do Escalonamento em Nuvens 3 Visão geral do Algoritmo de Escalonamento Modelagem do Problema Formulação da Programação Linear Inteira 4 Representação da Linha do Tempo 5 Avaliação 6 Conclusão e Trabalhos Futuros 2 / 25
Introdução Visão geral do problema Introdução I Visão geral de Computação em Nuvem: Oferece recursos como serviços de utilidade geral Os recursos podem ser alugados e liberados sob demanda Camada de virtualização Modelo de tarifação pago-pelo-uso (pay-as-you-go) Dividido em três modelos gerais (NIST) IaaS infrastructure as a service PaaS platform as a service SaaS software as a service 3 / 25
Introdução Visão geral do problema Introdução II Provedor de SaaS (ou PaaS): Fornece um serviço de execução de workflows aos seus clientes através de acordos de nível de serviço (SLA) Deve cumprir o deadline da execução estipulado para cada workflow Aluga recursos (VMs) do provedor de IaaS também através de SLAs Múltiplos provedores de IaaS Pode reduzir os custos de manutenção da sua infraestrutura própria Não tem que lidar com as peculiaridades de hardware Traz elasticidade ao seu poder computacional Dois níveis de SLAs: 1 o nível: SLAs entre o provedor de SaaS e cada cliente 2 o nível: SLAs entre o provedor de SaaS e cada provedor de IaaS Escalonamento: Programação Linear Inteira (PLI) 4 / 25
Introdução Visão geral do problema Introdução III Principal problema: Permitir o escalonamento de workflows grandes pela PLI: (> 30 nós) Várias dependências entre estes nós Dependendo do tamanho do workflow ou tamanho do deadline: Aumento da linha temporal discreta da PLI T = {1, 2, 3, 4,..., deadline} Aumenta o tempo de execução do escalonador Soluções aceitáveis podem não ser encontradas em tempo hábil 5 / 25
Introdução Visão geral do problema Introdução IV Objetivo deste trabalho: Relaxar a dimensão tempo na PLI Aumentando a granularidade da linha do tempo Fator multiplicativo λ T = {λ, 2λ, 3λ,..., deadline}, onde λ N + Permitir que o provedor de SaaS escalone workflows com grande número de nós e dependências Em tempo aceitável (hábil) Menor custo monetário possível com VMs Respeitar os deadlines estabelecidos para cada workflow 6 / 25
Cenário Cenário do Escalonamento em Nuvens I Dois níveis de SLA O cenário do ambiente de escalonamento na nuvem: 7 / 25
Cenário Cenário do Escalonamento em Nuvens II Dois níveis de SLA Workflow: representado por um DAG G = {U, E}, onde: cada nó u i U representa um serviço a ser executado cada aresta e i,j E representa uma dependência de dados entre os serviços i e j 8 / 25
Algoritmo de Escalonamento Modelagem do Problema Modelagem do Problema O problema de escalonamento de workflows pode ser citado como: Encontre um mapeamento viável M entre os nós do DAG G e as VMs de vários provedores de IaaS, de tal modo que a soma do custo computacional monetário para todos os nós u U nas máquinas virtuais em V seja mínimo, as dependêcias entre os nós do DAG G não sejam violadas e o tempo total de execução do mapeamento M ( makespan) M G seja no máximo igual ao deadline exigido pelo usuário, ou seja, M G D G. Método utilizado: Programação linear Inteira (PLI) Para workflows pequenos ( 15 nós) e com pouca dependência Execução é rápida Tempo aceitável Considerando λ = 1 9 / 25
Algoritmo de Escalonamento Programação Linear Inteira Formulação da Programação Linear Inteira (PLI) I As variáveis e constante utilizadas no programa linear inteiro: x u,t,v : variável binária que assume o valor 1 se o nó u termina sua execução no instante de tempo t na VM v, caso contrário, assume o valor 0; y t,v : variável binária que assume o valor 1 se a VM v está sendo utilizada no instante de tempo t, caso contrário, assume o valor 0; C v : constante que assume o custo por unidade de tempo da máquina virtual v. Função objetivo linear: Minimize y t,v C v t T v V 10 / 25
Algoritmo de Escalonamento Programação Linear Inteira Formulação da Programação Linear Inteira (PLI) II Restrições: (C1) (C2) x u,t,v = 1; t T v V u U; u U v V w u J v t=1 x u,t,v = 0; Determinam que qualquer nó do DAG deve ser executado apenas uma vez e em uma única VM Estabelecem que o nó u do DAG não pode ser definido como terminado até que tenha sido executado na VM v t w z J r +f u,z L i,j t (C3) x u,s,v x z,s,r s=1 s=1 z U, u H(z), r, v V, t T, i, j I B i,v = 1, B j,r = 1 Determinam que o nó z do DAG não pode iniciar sua execução até que todos os nós anteriores tenham terminado suas execuções e os dados resultados tenham chegado à VM que executará z 11 / 25
Algoritmo de Escalonamento Programação Linear Inteira Formulação da Programação Linear Inteira (PLI) III Restrições: (C4) t+ w u J v 1 u U s=t:t D G w u J v v V, t T x u,s,v P v Estipulam que o número de nós do DAG em execução na VM v, em um determinado tempo t não pode exceder o número de núcleos de processamento de v (C5) t s=t w u J v +1 y s,v x u,t,v ( w u J v ) u U, v V, t { w u J v,..., D G } Determinam que uma VM deve permanecer ativa, enquanto estiver executando os nós que a exigem 12 / 25
Algoritmo de Escalonamento Programação Linear Inteira Formulação da Programação Linear Inteira (PLI) IV Restrições: (C6) (C7) y t,v δ i v V i I, t T B i,v = 1 y t,v α s v V s ζ, t T K s,v = 1 Especificam que o número de VMs reservadas somadas com o número de VMs alugadas sob demanda não pode exceder o número máximo permitido por cada provedor de IaaS Estabelecem que a quantidade de VMs sendo utilizadas não pode exceder o limite estipulado no SLA (C8) x u,t,v {0, 1} u U, t T, v V (C9) y t,v {0, 1} t T, v V Especificam que as variáveis deste PLI só irão assumir valores binários (0 ou 1) 13 / 25
Linha do Tempo Representação da Linha do Tempo I Tempo: Granularidade da linha do tempo Questão-chave para o problema de escalonamento Classificação do tempo: Discreto: existe um intervalo de tempo que não é divisível Eventos ocorrem no início (ou no final) dos intervalos Escalonamento menos preciso Modelo matemático mais simples Contínuo: não há intervalos de tempo não divisíveis Eventos ocorrem em qualquer instante de tempo Escalonamento mais preciso Modelo matemático mais complexo 14 / 25
Linha do Tempo Representação da Linha do Tempo II Tempo discreto: As VMs são contabilizadas por unidades de tempo inteiras usadas As unidades parcialmente consumidas: Cobradas como se fossem unidades de tempo completas Fator multiplicativo λ T = {λ, 2λ, 3λ, 4λ,..., Λ}, tal que Λ D G e λ N + Dependendo do valor de λ: Granularidade fina (intervalos de tempo curtos) Aumenta o número de elementos do conjunto T Aumenta o espaço de busca de soluções (mais preciso) Aumenta o tempo de execução do escalonador Solução ótima ou aceitável pode demorar para ser encontrada 15 / 25
Linha do Tempo Representação da Linha do Tempo III Tempo discreto: (cont) Dependendo do valor de λ: Granularidade grossa (intervalos de tempo longos) Diminui o número de elementos do conjunto T Diminui o espaço de busca de soluções (menos preciso) Diminui o tempo de execução do escalonador Escalonamento pode se tornar inviável Falta de unidades de tempo o suficiente para representar todas as dependências dos nós do DAG Trade-off: Usar Intervalos de tempo curtos para obter um escalonamento mais preciso Intervalos de tempo longos para diminuir o tempo de execução do escalonador 16 / 25
Avaliação Avaliação I 17 / 25
Avaliação Avaliação II Detalhes da Simulação: Java and IBM ILOG CPLEX Optimizer As métricas avaliadas foram: Custo monetário do escalonamento Makespan do workflow Tempo de execução do escalonador Número de soluções inviáveis Worfklows de aplicações do mundo real usados foram: Fork-Join com 30 nós Montage Ligo Abordagem ótima: não relaxamos as restrições (C8) e (C9) Variamos o fator múltiplicativo λ e o deadline Tempo limite de 600 segundos para cada simulação 18 / 25
Avaliação Avaliação III Configuração das Simulações Utilizamos 3 provedores de IaaS em nossas simulações Cada provedor de IaaS tem suas próprias configurações e preços para as VMs no plano de reserva e sob demanda VMs com 1 a 8 núcleos de processamentos Desempenho dos recursos heterogêneos (processadores e enlaces) 19 / 25
Avaliação Avaliação IV Resultados para o DAG Fork-Join com 30 nós: DAG Fork Join com 30 nós DAG Fork Join com 30 nós Custo ($) 30 25 20 15 10 5 0 1 2 3 4 5 6 7 8 9 10 λ Makespan 40 35 30 25 20 15 10 5 0 1 2 3 4 5 6 7 8 9 10 λ DAG Fork Join com 30 nós DAG Fork Join com 30 nós 700 100 Tempo de execução (s) 600 500 400 300 200 100 soluções inviáveis (%) 80 60 40 20 0 1 2 3 4 5 6 7 8 9 10 λ 0 1 2 3 4 5 6 7 8 9 10 λ 2/7 x T max 3/7 x T max 4/7 x T max 5/7 x T max 6/7 x T max 20 / 25
Avaliação Avaliação V Resultados para o DAG Montage: DAG Montage DAG Montage Custo ($) 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 λ Makespan 30 25 20 15 10 5 0 1 2 3 4 5 6 7 8 9 10 λ DAG Montage DAG Montage 700 100 Tempo de execução (s) 600 500 400 300 200 100 soluções inviáveis (%) 80 60 40 20 0 1 2 3 4 5 6 7 8 9 10 λ 0 1 2 3 4 5 6 7 8 9 10 λ 2/7 x T max 3/7 x T max 4/7 x T max 5/7 x T max 6/7 x T max 21 / 25
Avaliação Avaliação VI Resultados para o DAG Ligo: DAG Ligo DAG Ligo Custo ($) 400 350 300 250 200 150 100 50 0 5 10 15 20 25 λ Makespan 200 180 160 140 120 100 80 60 40 20 0 5 10 15 20 25 λ DAG Ligo DAG Ligo 700 100 Tempo de execução (s) 600 500 400 300 200 100 soluções inviáveis (%) 80 60 40 20 0 5 10 15 20 25 λ 0 5 10 15 20 25 λ 2/7 x T max 3/7 x T max 4/7 x T max 5/7 x T max 6/7 x T max 22 / 25
Conclusão e Trabalhos Futuros Conclusão e Trabalhos Futuros I Conclusão: Para workflows com vários nós e várias dependências: Tempo de escalonamento pode ser alto Apresentamos uma maneira de reduzir o espaço de busca de soluções no problema de escalonamento em nuvens com 2 níveis de SLA: Relaxando o tempo na PLI Simulações mostraram que aumento da discretização do tempo pode: Reduzir o tempo de execução do workflow Encontrar soluções viáveis com custos satisfatórios em tempo hábil Alguns casos (λ > 1) custos monetários menores do que quando λ = 1 Para deadlines altos, podemos usar valores altos para λ Para alguns workflows é necessário escalonar com λ > 1 Abordagem da discretização do tempo pode fornecer uma base para o provedor de SaaS negociar os SLAs com seus clientes 23 / 25
Conclusão e Trabalhos Futuros Conclusão e Trabalhos Futuros II Trabalhos Futuros: Relaxamento da programação linear inteira Desenvolvimento de heurísticas não-iterativas Escalonamento de múltiplos workflows no mesmo conjunto de VMs 24 / 25
Questões Obrigado! Questões? thiagogenez@ic.unicamp.br Agradecimentos: 25 / 25
Configuração das Simulações Configuração das Simulações Utilizamos 3 provedores de IaaS em nossas simulações O número máximo de VMs que podem ser alugadas a partir de cada provedor de IaaS: δ A = 4, δ B = 7, δ C = 2. Enlaces externos (enlaces entre provedores de IaaS): É escolhido aleatoriamente do intervalo [2, 3] Enlaces internos (enlaces entre VMs dentro do mesmo provedor de IaaS): É escolhido aleatoriamente do intervalo [0.1, 0.2]l Simulações com DAGs de aplicações do mundo real: Fork-Join com 30 nós, Montage e Ligo D G variando de T max 2/7 à T max 6/7 em etapas de 1/7 Intel R Xeon X 5660 CPU 2.80GHz com 16GB de RAM
Configuração das Simulações Tabela 1 : Provedor de IaaS A Tipo Núcleo Instrução Preço Preço Por Núcleo Demanda Reserva P 1 1.5 $0.13 $0.045 M 2 1.5 $0.20 $0.070 Tabela 2 : Provedor de IaaS B Tipo Núcleo Instrução Preço Preço Por Núcleo Demanda Reserva P 1 2 $0.17 $0.045 M 2 2 $0.30 $0.059 G 3 2 $0.40 $0.140 EG 4 2 $0.52 $0.183 EG2 8 2 $0.90 $0.316
Configuração das Simulações Tabela 3 : Provedor de IaaS C Tipo Núcleo Instrução Preço Preço Por Núcleo Demanda Reserva P 1 2 $0.15 $0.052 M 2 2 $0.25 $0.088 G 4 2.5 $0.50 $0.176 EG 8 2.5 $0.80 $0.281 Tabela 4 : Máquinas virtuais reservadas para provedor de SaaS Tipo IaaS VM Quantidade Reservada A P 1 Reservada A M 1 Reservada B P 1 Reservada B M 1