37
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Programa de Pós-Graduação em Ciência da Computação Proposta de um Escalonador de Tarefas para Grades Computacionais voltado à Economia de Energia Silvana Teodoro Orientador: Prof. Dr. Luiz Gustavo Leão Fernandes Plano de Estudo e Pesquisa Porto Alegre, janeiro de 2012.

Pontifícia Universidade Católica do Rio Grande do Sul ... · PDF fileSRT Shortest Remaining Time Next TI ... escalonamento de tarefas, quais são os tipos de tarefas e os algoritmos

Embed Size (px)

Citation preview

Pontifícia Universidade Católica do Rio Grande do Sul

Faculdade de Informática

Programa de Pós-Graduação em Ciência da Computação

Proposta de um Escalonador de Tarefas para Grades

Computacionais voltado à Economia de Energia

Silvana Teodoro

Orientador: Prof. Dr. Luiz Gustavo Leão Fernandes

Plano de Estudo e Pesquisa

Porto Alegre, janeiro de 2012.

LISTA DE FIGURAS

Figura 1 – Exemplo de escalonamento com a tarefa mais curta primeiro. (a) Executando 4 jobs

na ordem original. (b) Executando 4 jobs na ordem do job mais curto primeiro. Fonte:

[TAN08] ........................................................................................................................... 12

Figura 2 – Taxonomia hierárquica para algoritmos de escalonamento em sistemas

computacionais paralelos e distribuídos. Fonte: Adaptado de [CAS88]. ......................... 13

Figura 3 – Modelo do EES. ....................................................................................................... 31

LISTA DE TABELAS

Tabela 1 – Cronograma de Atividades. ........................................................................... 33

LISTA DE SIGLAS

BBF Backfill Best Fit

BFF Backfill First Fit

CPU Central Processing Unit

DVFS Dynamic Voltage and Frequency Scaling

DVS Dynamic Voltage Scaling

EDF Earliest Deadline First

EES Energy Efficient Scheduler

FIFO First In First Out

GMAP Grupo de Modelagem de Aplicações Paralelas

HAMA Heterogeneity Aware Meta-scheduling Algorithm

HDeadline Comitted LA Heterogeneous Deadline Comitted Look Ahead

HDeadline Comitted Heterogeneous Deadline Comitted

HEDF Heterogeneous EDF

HFIFO Heterogeneous FIFO

HForced Deadline Heterogeneous Forced Deadline

HGreedy Heterogeneous Greedy

HPC High Performance Computing

MPI Message Passing Interface

NIC Network Interface Card

PSU Power Supply Unit

RPM Revolutions Per Minute

RR Round-Robin

SJF Shortest Job First

SRT Shortest Remaining Time Next

TI Tecnologia da Informação

SUMÁRIO

LISTA DE FIGURAS ........................................................................................................ 2

LISTA DE TABELAS ........................................................................................................ 4

LISTA DE SIGLAS ........................................................................................................... 6

INTRODUÇÃO ...................................................................................................... 10 1

ESCALONAMENTO DE TAREFAS ...................................................................... 11 2

2.1 Algoritmos de Escalonamento ................................................................ 11

2.2 Tipos de Tarefas ..................................................................................... 15

2.3 Notação α|β|γ ......................................................................................... 17

OBTENÇÃO DE EFICIÊNCIA ENERGÉTICA EM GRADES ................................. 19 3

3.1 Contextualização .................................................................................... 19

3.2 Fatores que Afetam o Consumo de Energia ........................................... 20

TRABALHOS RELACIONADOS ........................................................................... 24 4

4.1 Nemetz et al ........................................................................................... 24

4.2 Mämmelä et al ........................................................................................ 26

4.3 Lammie et al ........................................................................................... 26

4.4 Ge et al ................................................................................................... 27

4.5 Considerações Finais ............................................................................. 28

PROPOSTA PARA DISSERTAÇÃO DE MESTRADO .......................................... 29 5

5.1 Justificativa ............................................................................................. 29

5.2 Objetivos ................................................................................................. 30

5.3 Metodologia ............................................................................................ 32

5.4 Cronograma de Atividades ..................................................................... 32

REFERÊNCIAS ............................................................................................................. 34

10

INTRODUÇÃO 1

O aquecimento global, as alterações climáticas, o excesso de lixo, o

esgotamento das reservas de energia e o custo com energia são algumas das

principais preocupações que afligem a humanidade atualmente. Deste modo, empresas

de Tecnologia da Informação (TI) enfrentam o desafio de oferecer maior poder

computacional, atendendo às necessidades de expansão das empresas sem que

ocorram perdas significativas com gastos em energia e refrigeração [SCA07]. As

situações citadas conduzem pesquisadores, fabricantes e fornecedores de TI a

investirem em iniciativas de Green Computing com o intuito de projetar soluções

eficientes em termos de desempenho e consumo de energia.

Em ambientes de Computação de Alto Desempenho (do inglês High

Performance Computing - HPC), maior desempenho, em certas situações, está

associado a maior consumo de energia [MAM11], o que cria incentivos para a

exploração de alternativas que visam reduzir o consumo nesses sistemas. Pois,

melhorar a eficiência energética sem prejudicar o desempenho é um desafio.

O objetivo deste trabalho é contribuir para as iniciativas de Green Computing, no

que diz respeito à redução do consumo de energia em ambientes HPC através do

aprimoramento do escalonador global de tarefas desenvolvido por [NEM11] para

ambientes de grades computacionais. Bem como, a alteração e desenvolvimento de

novos algoritmos, que são utilizados pelo escalonador, voltados não apenas para o

ganho de desempenho, mas também para a redução do consumo de energia.

Este trabalho está dividido em cinco capítulos. O Capítulo 2 descreve o que é

escalonamento de tarefas, quais são os tipos de tarefas e os algoritmos mais

conhecidos a respeito do assunto. O tema Obtenção de Eficiência Energética em

Grades é abordado no Capítulo 3, que fala a respeito de alguns trabalhos que estão

sendo realizados nesta área e a respeito dos fatores que afetam o consumo de

energia. Em seguida, são apresentados no Capítulo 4 os trabalhos relacionados, que

tratam de escalonamento de tarefas e técnicas para a redução do consumo de energia

em grades computacionais. Por fim, o Capítulo 5 conclui o presente trabalho,

apresentando a proposta para a dissertação de mestrado, justificativa, objetivos,

metodologia e o cronograma de atividades da mesma.

11

ESCALONAMENTO DE TAREFAS 2

Segundo [TAN08], o escalonador é responsável por decidir qual job irá executar

primeiro, caso hajam vários jobs prontos para executar competindo pelo uso da CPU.

Sendo também responsável por: decidir qual é o processador mais adequado para

executar cada tarefa, decidir qual é o intervalo de tempo que cada tarefa executará em

cada processador e alocar os recursos necessários para cada tarefa e disparar a sua

execução. De forma ideal, um escalonador deveria garantir que as tarefas

executassem utilizando ao máximo os recursos disponíveis e terminassem no menor

tempo possível, sempre respeitando as restrições de tempo ou outras políticas

aplicadas às tarefas. A seguir, na seção 2.1, são abordados alguns dos principais

algoritmos de escalonamento conhecidos. Já a seção 2.2 fala a respeito dos tipos de

tarefas e sobre as características destas que devem ser consideradas antes da escolha

do algoritmo de escalonamento mais adequado. Por fim, a seção 2.3 explica de forma

detalhada a notação α|β|γ.

2.1 Algoritmos de Escalonamento

Na literatura encontram-se diversos algoritmos de escalonamento que se

adequam a diferentes tipos de problemas e sistemas. Dentre eles há alguns que se

destacam pela facilidade de implementação, adaptabilidade, desempenho, como

[TAN08]:

First In First Out (FIFO): o FIFO é um algoritmo de escalonamento não

preemptivo, no qual os processos recebem tempo de CPU, na mesma ordem

em que solicitam. Ou seja, há uma fila de jobs aguardando a execução. O

primeiro job a chegar será colocado no início desta fila, e os que chegarem

posteriormente são colocados no final dela. Caso o job que estiver em

execução for bloqueado, o atual primeiro processo da fila será executado. As

maiores vantagens deste algoritmo são: facilidade de entendimento,

implementação e sua imparcialidade. Mas ele também possui uma série de

desvantagens, tais como: sensibilidade à ordem de chegada das tarefas, o

tempo médio de espera aumenta no caso de processos grandes chegarem

primeiro na fila e não é considerado eficiente em sistemas de tempo

compartilhado.

12

Shortest Job First (SJF): o SJF também é um algoritmo não preemptivo que

trabalha com sistemas em lote e assume que os tempos de execução dos

jobs são conhecidos antecipadamente. Caso hajam várias tarefas em uma

fila de entrada, de igual importância para serem executadas, o escalonador

irá selecionar a tarefa mais curta primeiro.

A B C D

(a) (b)

Figura 1 – Exemplo de escalonamento com a tarefa mais curta primeiro. (a) Executando 4 jobs na ordem original. (b) Executando 4 jobs na ordem do job mais curto primeiro. Fonte: [TAN08]

Se os jobs forem executados como mostra a Figura 1(a), o tempo de resposta

para a tarefa A será de 8 unidades de tempo, da B 12 unidades de tempo, da C 16

unidades de tempo e da D 20 unidades de tempo, 14 unidades de tempo em média.

Entretanto, se os jobs forem executados como mostra a Figura 1(b), o tempo de

resposta para a tarefa B será de 4 unidades de tempo, da C 8 unidades de tempo, da D

12 unidades de tempo e da A 20 unidades de tempo, 11 unidades de tempo em média,

o que demonstra o ganho de desempenho ao utilizar o algoritmo SJF em relação ao

FIFO.

Shortest Remaining Time Next (SRT): o algoritmo SRT é uma versão

melhorada do SJF, no qual o escalonador escolhe o job cujo tempo de

execução restante é o mais curto. Ou seja, ao chegar um novo job o seu

tempo será comparado com o tempo que resta do job atual. Caso o novo job

precise de menos tempo para terminar do que o job atual, este será suspenso

e o novo job será executado.

Round-Robin (RR): o algoritmo RR opera em sistemas iterativos, realizando

um rodízio entre os processos da seguinte maneira: cada job possui um

intervalo de tempo (quantum) durante o qual ele pode ser executado. Caso

ele esteja em execução e seu quantum terminar, será feita a preempção da

CPU, e esta será alocada para outro job. O RR é considerado de fácil

implementação, pois o escalonador precisa apenas manter uma fila de jobs

executáveis. Quando um job consumir seu quantum, ele será colocado no

final da fila. É preciso dar atenção especial ao quantum, pois ele afeta

diretamente a eficiência da CPU: quanto mais curto ele for, mais troca de jobs

ocorrerá, reduzindo a eficiência da CPU. Entretanto, se ele for longo demais

B C D A

13

causará um tempo de resposta muito ruim.

Earliest Deadline First (EDF): o algoritmo EDF dá prioridade de execução à

tarefa que possui o deadline mais próximo de expirar, ordenando as tarefas

com base em seu deadline.

Backfill First Fit (BFF): o algoritmo BBF funciona de maneira parecida com o

FIFO, mas quando não há recursos suficientes para a execução da primeira

tarefa da fila, o restante da fila é examinado para encontrar a primeira tarefa

que possa ser executada com os recursos e tempo disponíveis.

Backfill Best Fit (BBF): o algoritmo BBF funciona de maneira parecida com o

FIFO e o BFF, mas quando não há recursos suficientes para a execução da

primeira tarefa da fila, o restante da fila é examinado para encontrar a tarefa

que melhor se encaixa para ser executada com os recursos e tempo

disponíveis.

Em [CAS88], é proposta uma taxonomia hierárquica para algoritmos de

escalonamento em sistemas computacionais paralelos e distribuídos, ilustrada na

Figura 2:

Figura 2 – Taxonomia hierárquica para algoritmos de escalonamento em sistemas

computacionais paralelos e distribuídos. Fonte: Adaptado de [CAS88].

14

Local versus Global: O escalonamento local determina como os processos

residentes em um único processador são alocados e executados. Já o

escalonamento global utiliza-se de informações sobre o sistema para alocar

processos para múltiplos processadores.

Estático versus Dinâmico: No escalonamento estático, as informações são

obtidas antes do início do escalonamento da aplicação, não se possuindo

informações sobre as mudanças dinâmicas de estado do sistema no decorrer do

processo.

Ótimo versus Sub-ótimo: se toda a informação do estado dos recursos e da

aplicação é conhecida, o escalonamento poderá ser ótimo. Nos casos em que é

computacionalmente inviável obter tais informações, o escalonamento alcançado

é considerado sub-ótimo.

Aproximação versus Heurística: o algoritmo de aproximação procura

implementar uma solução que seja suficientemente boa em relação a que foi

definida como ótima. Já o algoritmo de heurística, leva em consideração alguns

parâmetros que afetam o sistema de uma maneira indireta, como por exemplo, a

comunicação entre processos.

Distribuído versus Não distribuído: muitas aplicações podem ser enviadas

para serem escalonadas simultaneamente, o que necessita do uso de um

escalonador distribuído. Já a estratégia centralizada pode ser mais simples em

termos de implementação, se comparada a distribuída, entretanto poderá ser um

gargalo em termos de desempenho.

Cooperativo versus Não Cooperativo: no modo cooperativo, cada

escalonador responsabiliza-se por carregar sua própria porção do

escalonamento de tarefas, mas todos os escalonadores trabalham em conjunto

para o sistema global. Esta situação não ocorre no modo não cooperativo, onde

os escalonadores individuais agem de forma independente, não se preocupando

em melhorar o desempenho do resto do sistema.

Os algoritmos de escalonamento também podem ser classificados em [CAS88]

[NEM11]:

Preemptivos e Não Preemptivos: escalonadores preemptivos permitem que

uma tarefa em execução seja interrompida temporariamente e posteriormente

retomada, o que pode vir a ocorrer se uma tarefa com maior prioridade chegar

15

para ser executada. Já nos escalonadores não preemptivos, uma vez que uma

tarefa for iniciada ela será executada até sua conclusão.

Homogêneos e Heterogêneos: escalonadores que operam em sistemas

homogêneos são aqueles nos quais as tarefas são distribuídas pelas unidades

de processamento que possuem a mesma capacidade de processamento,

memória e disponibilidade de recursos. Já os escalonadores que operam em

sistemas heterogêneos, são capazes de lidar com sistemas nos quais as

unidades têm diferentes capacidades computacionais.

O uso de algoritmos de escalonamento é de suma importância em ambientes

em que a quantidade de tarefas é maior do que a de recursos computacionais

disponíveis. Em ambientes como estes, um escalonador que opere visando atender às

necessidades de desempenho do sistema, melhorar a eficiência do sistema, respeitar a

prioridade de execução das tarefas e cumprir os deadlines das tarefas torna-se

imprescindível. Além disso, o escalonador também é responsável por realizar a

atribuição de tarefas a unidades de processamento, visando minimizar o tempo de

execução, maximizar a utilização dos recursos computacionais disponíveis e minimizar

os custos referentes à comunicação.

2.2 Tipos de Tarefas

O algoritmo usado por um escalonador depende da natureza das tarefas que o

sistema irá executar. Um dos critérios que definem o comportamento de uma tarefa diz

respeito ao seu comportamento temporal [TAN08]:

tarefas em lote: são tarefas nas quais não há usuários esperando uma resposta

rápida em seus terminais. Normalmente, executam sem a intervenção do

usuário, como cálculos numéricos longos, renderização de animações, etc.

Objetivos que os algoritmos de escalonamento devem atingir, ao trabalharem

com tarefas em lote:

a) taxa de saída - deve maximizar o número de jobs por hora;

b) tempo de retorno - deve minimizar o tempo entre envio e término de

jobs;

c) utilização da CPU - deve manter a CPU ocupada o máximo de tempo

possível.

16

tarefas interativas: são tarefas que recebem eventos externos e devem

respondê-los rapidamente. Objetivos que os algoritmos de escalonamento

devem atingir, ao trabalharem com tarefas interativas:

a) tempo de resposta - deve atender rapidamente as requisições,

minimizando o tempo entre a execução de um comando e o recebimento

de seu resultado;

b) proporcionalidade - deve satisfazer às expectativas dos usuários, ou

seja, quando um pedido é “visto” pelos usuários como sendo complexo,

eles aceitam que sua execução seja demorada, caso contrário, esperam

que sua execução seja rápida. Em alguns casos, o escalonador não pode

fazer nada para melhorar o tempo de resposta, mas em outros sim, no

caso de, por exemplo, o atraso ser ocasionado por uma escolha errada

na ordem de execução dos processos.

tarefas de tempo real: são tarefas que não podem ser executadas por períodos

longos de tempo, ou seja, após realizarem o seu trabalho são bloqueadas

rapidamente. Objetivos que os algoritmos de escalonamento devem atingir, ao

trabalharem com tarefas de tempo real:

a) cumprir os prazos finais - deve evitar a perda de dados. Por exemplo,

caso um computador estiver controlando um dispositivo que apresenta

informações a uma velocidade regular, caso os dados não forem

coletados pontualmente eles podem ser perdidos;

b) previsibilidade - deve evitar a degradação da qualidade em sistemas

multimídia. Este objetivo está relacionado com, por exemplo, impedir a

deterioração da qualidade de um áudio, o que pode ocorrer caso o

processo que o controla seja executado com irregularidade.

As tarefas também podem ser classificadas de acordo com uso do processador,

em:

tarefas orientadas a processamento (CPU-bound tasks): são tarefas que

usam intensivamente o processador. Como por exemplo, processamentos

numéricos longos.

tarefas orientadas a entrada/saída (IO-bound tasks): são tarefas que

dependem muito mais dos dispositivos de entrada/saída do que do processador.

17

Devido ao que foi citado anteriormente, a respeito das características das tarefas, é

de extrema importância conhecer os tipos de tarefas com as quais o escalonador terá

que trabalhar antes de desenvolvê-lo.

2.3 Notação α|β|γ

A notação α|β|γ, criada por [GRA66], é uma alternativa para agrupar problemas

de escalonamento com características em comum. Cada campo da notação α|β|γ

representa uma característica diferente do problema de escalonamento:

1. campo α: representa o ambiente de execução da estratégia de escalonamento.

Está relacionado diretamente ao hardware disponível, podendo conter os

seguintes valores [NUN09a]:

somente uma máquina (1): há apenas uma máquina no sistema;

máquinas paralelas e idênticas (Pm): há m máquinas idênticas em

paralelo no sistema;

máquinas não relacionadas (Rm): há m máquinas em paralelo no sistema,

mas cada uma delas pode processar as tarefas em tempos distintos, o

que significa que as máquinas podem possuir hardware e velocidades

diferentes.

2. campo β: representa as peculiaridades de cada tarefa e as restrições da

estratégia de escalonamento que devem ser respeitadas. Possíveis valores que

o campo pode conter [NUN09a]:

preempção (pmtn): especifica que tarefas podem ser preemptadas e

posteriormente retomadas, até mesmo em uma outra máquina diferente;

restrições de precedência (prec): especifica que existem tarefas da fila

que devem ser completadas antes que outras tarefas iniciem sua

execução;

prazos (dj): especifica que uma tarefa j deve ser completada até o seu

prazo final dj. Se dj não for especificado, as tarefas não precisarão ser

completadas em um prazo específico.

18

3. campo γ: representa a medida de desempenho que se pretende otimizar,

aplicando a estratégia de escalonamento. Tal medida está relacionada ao tempo

para completar as tarefas:

Cj : denota o tempo para completar a tarefa j, sendo que este tempo

refere-se ao momento em que a tarefa j foi inserida na fila, até o seu total

processamento;

Lj : refere-se ao atraso da tarefa j, onde Lj = Cj − dj ;

Tj : representa o atraso encontrado para a tarefa j, no qual Tj = max(Lj , 0).

Em um ambiente em grade, por exemplo, a notação possuiria os seguintes

valores para os campos α, β e γ:

campo α: valor Rm, uma vez que os clusters que compõem a grade podem

possuir hardware e velocidades diferentes.

campo β: valor dj, pois apenas trabalharemos com tarefas que possuam prazos

finais para serem executadas.

campo γ: valor Lj, devido ao fato de que pretendem-se minimizar o atraso na

execução das tarefas, para que os prazos finais de execução sejam respeitados.

19

OBTENÇÃO DE EFICIÊNCIA ENERGÉTICA EM GRADES 3

A área de HPC possui importantes trabalhos que falam sobre métodos para

obter economia de energia sem que ocorram perdas significativas em termos de

desempenho. Nas Seções seguintes são apresentados alguns desses trabalhos.

3.1 Contextualização

Um ambiente em grade é uma alternativa viável para que as empresas que

desejam aderir a Green Computing, não precisem substituir os sistemas de TI

existentes por novos, ambientalmente corretos, e sim apenas interligar computadores,

aumentando a capacidade de armazenamento e processamento, economizando

energia e reduzindo custos. Em [VYK09] são citadas algumas formas de

implementação de um ambiente em grade, do inglês grid:

Enterprise grid: todos os computadores de maior porte e os recursos de

armazenamento de uma empresa são consolidados e compartilhados

entre os departamentos desta, levando a uma melhor utilização de

recursos e, portanto, significativa redução de custos [STR05];

Desktop grid: visa aproveitar o poder coletivo dos recursos

computacionais existentes, inúmeras vezes subutilizados em

computadores de mesa, encontrados em escritórios dentro de uma

empresa [MAR07]. Diferentemente de um cluster de computadores

dedicados, os recursos dos computadores de mesa não podem ser

acessados exclusivamente, mas apenas quando eles não são plenamente

utilizados pelos seus usuários. Atualmente, grande parte dos desktops ou

laptops contêm várias CPUs, a técnica de Desktop grid “rouba o ciclo” que

não está sendo utilizado, sem que isso afete negativamente os

proprietários da máquina.

O trabalho desenvolvido por [GAR09] trata da exploração da heterogeneidade

em grades computacionais para a alocação de recursos com uso eficiente de energia.

Para reduzir o consumo de energia do sistema, os autores utilizaram a técnica de

distribuir as aplicações para serem executadas em paralelo em uma rede em grade por

meio da utilização de um algoritmo de escalonamento denominado Heterogeneity

20

Aware Meta-scheduling Algorithm (HAMA). Este algoritmo explora a heterogeneidade

da infraestrutura da rede global. Segundo os autores, a eficiência energética de um

centro de HPC depende de vários fatores, tais como: a eficiência energética do

processador, refrigeração e sistema de ar condicionado, projeto da infraestrutura e

iluminação.

HAMA consegue selecionar de maneira eficiente energeticamente os recursos

da grade. Selecionando primeiro o recurso mais eficiente em termos de energia

daqueles disponíveis na grade. Em seguida, usa Dynamic Voltage Scaling (DVS) para

alterar a velocidade de processamento da CPU com o intuito de alcançar uma maior

redução no consumo de energia, sempre buscando respeitar o prazo de conclusão de

determinada tarefa.

Os testes foram realizados com base nos seguintes cenários: um contendo

variações na urgência para a execução dos jobs e o outro com variações na taxa de

chegada dos jobs. Os resultados dos testes mostraram que o HAMA com uso de DVS

pode reduzir o consumo de energia do sistema em até 23%, no pior caso, e em até

50% no melhor dos casos, ao ser comparado com o algoritmo EDF (seção 2.1). Já ao

operar sem DVS, o HAMA obteve uma economia de energia de até 21% [GAR09].

3.2 Fatores que Afetam o Consumo de Energia

De acordo com [MAM11], para garantir a eficiência energética em um ambiente

de grade computacional é preciso dar atenção aos seguintes tópicos:

ajuste dinâmico da frequência e da voltagem da CPU, do inglês Dynamic

Voltage and Frequency Scaling (DVFS);

desligamento de componentes de hardware em baixa utilização;

nivelamento de potência;

gestão térmica.

A técnica de DVFS é usada para controlar a potência da CPU, pois segundo

[MAM11], o consumo de energia do processador é uma parcela significativa da energia

total consumida pelo sistema. Os autores também citam que alguns servidores ou seus

componentes poderiam ser desligados, ou então, poderiam operar em um estado de

baixo consumo de energia, sempre atendendo as necessidades das aplicações de

entrada. Mas devido ao fato desta solução ser dependente da carga de trabalho, o

desafio, de acordo com [MAM11], seria quando desligar componentes e como fornecer

21

um valor adequado de desaceleração de trabalho. Técnicas de gestão térmica são

utilizadas para gerenciar a elevação das temperaturas, o que pode impactar

negativamente na confiabilidade do sistema e pode causar o aumento dos custos com

resfriamento. No trabalho desenvolvido por [LIU10], a carga de trabalho do sistema é

ajustada de acordo com um limiar de temperatura pré-definida. Caso a temperatura de

um servidor fique acima do limite, então a sua carga de trabalho é reduzida.

Segundo [FAN07], os principais componentes que contribuem para o consumo

de energia de um servidor são: processador (37%), memória (17%), placa-mãe (12%),

unidade de disco rígido (6%), coolers (5%) e slots PCI (23%). Em [MAM11], são

apresentados modelos de consumo de energia para cada um dos componentes citados

anteriormente:

1. Processador: segundo os autores, no núcleo individual de processadores

multicore, o consumo de energia aumenta linearmente com a sua utilização, como

também ocorre nos single core. Assim, os autores utilizam a seguinte equação para

medir o consumo de energia dos núcleos individuais:

𝑃𝑐 = 𝑃𝑚𝑎𝑥 × 𝐿𝑐

100

Onde Lc denota a utilização (load) do núcleo correspondente e Pmax indica a

potência máxima do processador calculado pela seguinte equação:

𝑃𝑚𝑎𝑥 = 𝑣2𝑓𝐶𝑒𝑓𝑓

Onde v denota a tensão, f a frequência da utilização correspondente (Lc) e Ceff

representa a capacitância. Dessa maneira, o consumo de energia de processadores

multicore é representado pela equação:

𝑃𝐶𝑃𝑈 = 𝑃𝑖𝑑𝑙𝑒 + ∑ 𝑃𝑐𝑖

𝑛

𝑖=1

Onde Pidle representa o consumo de energia do processador no estado ocioso e

Pci o consumo de energia de cada núcleo, conforme mostra a primeira equação.

2. Memória: sendo uma memória do tipo Synchronous Dynamic RAM DDR2, o seu

consumo de energia no estado ocioso é representada por:

𝑃𝑅𝐴𝑀_𝑖𝑑𝑙𝑒 = ∑ 𝑠𝑖

𝑛

𝑖=1

× 𝑝

22

Onde n denota o número de módulos de memória instalados, s indica o tamanho

(em GB) de cada memória individual e o valor de p é fornecido pelo fornecedor. Sendo

que o valor genérico de p no modo ocioso é de 1.45 ×𝑓

1000. No qual f representa a

frequência (em MHz) do módulo de memória.

3. Disco rígido: a unidade de disco rígido pode estar nos estados: acessar, ocioso, ou

de inicialização. Sendo que cada um desses estados tem um consumo diferente de

energia. Assim, o consumo de energia do disco rígido é dado por:

𝑃𝐻𝐷𝐷 = 𝑎 × 1.4 × 𝑃𝑖𝑑𝑙𝑒 + 𝑏 × 𝑃𝑖𝑑𝑙𝑒 + 𝑐 × 3.7 × 𝑃𝑖𝑑𝑙𝑒

Onde Pidle é o consumo de energia do disco rígido no estado ocioso, valor que é

fornecido pelo fabricante, a, b e c representam, respectivamente, a probabilidade de o

disco estar no estado acessar, ocioso e de inicialização. Sendo que os valores para a,

b e c são escolhidos baseados na frequência das operações de ler e escrever

realizadas no disco, as quais dependem das características do trabalho.

4. Placa de interface de rede: o consumo de energia da placa de interface de rede,

do inglês Network Interface Card (NIC), depende linearmente da carga de tráfego:

𝑃𝑁𝐼𝐶 = 𝑃𝑖𝑑𝑙𝑒 + (𝑃𝑚𝑎𝑥 − 𝑃𝑖𝑑𝑙𝑒) × 𝑝𝑝𝑠

Onde Pidle é o consumo de energia da NIC no estado ocioso, Pmax o consumo

máximo de energia do dispositivo e pps o valor de pacotes por segundo do dispositivo.

5. Placa-mãe: o consumo de energia da placa-mãe é dado pela equação:

𝑃𝑀𝑎𝑖𝑛𝑏𝑜𝑎𝑟𝑑 = ∑ 𝑃𝐶𝑃𝑈

𝑙

𝑖=1

+ 𝑃𝑅𝐴𝑀 + ∑ 𝑃𝑁𝐼𝐶

𝑚

𝑗=1

+ ∑ 𝑃𝐻𝐷𝐷

𝑛

𝑘=1

+ 𝑐

Onde l denota o número de processadores, cujo poder de consumo é dado pela

equação do Processador (PCPU), PRAM representa o consumo de energia da memória,

cujo valor é dado pela equação da Memória, m indica o número de placas de interface

de rede cujo consumo de energia é dado pela equação da Placa de interface de rede

(PNIC), n denota o número de drives de disco rígido, cujo consumo é dado pela equação

de Disco rígido (PHDD) e c é uma constante com valor de 40W.

23

6. Cooler: o consumo de energia do cooler é dado pela equação:

𝑃𝐹𝑎𝑛 = 8.33068 × 10−15 × 𝑎4 + 8.51757 × 𝑤4 − 2.9569 × 𝑑4 − 1.10138 × 10−10

× 𝑎3 + 54.6855 × 𝑤3 − 76.4897 × 𝑑3 + 4.85429 × 𝑎2 + 258.847

× 𝑤2 − 1059.02 × 𝑑 2 − 6.06127 × 105 × 𝑎 + 32.6862 × 𝑤 + 67.3012

× 𝑑 − 5.478

Onde w denota a largura (em mm), d indica a profundidade (em mm), e a

apresenta as rotações por minuto, do inglês Revolutions Per Minute (RPM).

7. Fonte de alimentação: é responsável por fornecer energia aos componentes do

servidor. O consumo de energia da fonte de alimentação, do inglês Power Supply

Unit (PSU) é dado pela seguinte equação:

𝑃𝑃𝑆𝑈 =𝑃𝑠𝑒𝑟𝑣𝑒𝑟

𝑃𝑆𝑈𝑐𝑜𝑢𝑛𝑡 × 𝑒× 100 −

𝑃𝑠𝑒𝑟𝑣𝑒𝑟

𝑃𝑆𝑈𝑐𝑜𝑢𝑛𝑡

Onde Pserver indica o consumo de energia de todos os componentes da placa-

mãe, e dos coolers do servidor, tais valores foram calculados usando as fórmulas vistas

anteriormente, e representa a eficiência da PSU, valor que é fornecido pelo fabricante e

PSUcount representa o número de PSUs fornecendo energia para o servidor.

Assim, o consumo total de energia do servidor é uma soma do consumo de

energia de todos os seus componentes. Dessa forma, ele é dado pela multiplicação do

consumo das equações mencionadas anteriormente pelo tempo:

𝐸 = 𝑃 × 𝑡

Para calcular o consumo de energia de um ambiente de grade computacional,

pretende-se calcular o consumo de cada nó que compõem a grade, pois normalmente

ela é composta por nós heterogêneos, utilizando as equações anteriormente

mencionadas. Posteriormente, essa informação será utilizada pelos algoritmos de

escalonamento, para decidir qual nó da grade é o mais eficiente em termos energéticos

para executar determinada tarefa, procurando respeitar, ao máximo, as suas restrições.

Sendo que o consumo de energia de cada componente da grade varia de acordo com

o tipo de tarefa que é executada no mesmo. Por essa razão, é importante utilizar

diferentes tipos de tarefas que estressem: o processador, a memória, a comunicação,

entre outros, para que se obtenham resultados pertinentes ao utilizarem-se

determinadas estratégias de escalonamento de tarefas com um escalonador que

operará voltado à economia de energia.

24

TRABALHOS RELACIONADOS 4

Neste Capítulo são apresentados alguns trabalhos relacionados a

escalonamento de tarefas e a métodos para a redução do consumo de energia em

ambientes de grades computacionais, que são utilizados como referências para o

presente trabalho.

4.1 Nemetz et al

No trabalho de [NEM11] são propostas algumas estratégias para automatizar o

escalonamento de tarefas em um ambiente de processamento distribuído de impressão

[GIA06] [FER07] [FER11] [NUN09b] [NUN09c]. Tais estratégias são baseadas em um

mecanismo de busca de recursos e um sistema de previsão, que alimentam o

escalonador, responsável por realizar a distribuição de tarefas entre os clusters que

compõem o grid e que realizam o processamento das tarefas. O mecanismo de busca

de recursos coleta informações sobre os recursos disponíveis em um computador ou

em um conjunto deles, permitindo que o sistema de previsão, que estima o tempo que

cada tarefa necessitará para executar nos clusters, calcule o tempo necessário para

fazer a rasterização de determinada tarefa em cada um dos clusters. Em [NEM11],

também são propostos e testados novos algoritmos de escalonamento dinâmico não

preemptivos para sistemas heterogêneos, como:

Heterogeneous FIFO (HFIFO): possui uma fila de tarefas, ordenadas de acordo

com a ordem de chegada das mesmas, realizando o escalonamento da tarefa do

início da fila para a primeira máquina disponível, sem qualquer preocupação

com deadlines ou estimativas de tempo.

Heterogeneous EDF (HEDF): possui uma fila ordenada de tarefas de forma

decrescente de acordo com o deadline das mesmas, o que permite que as

tarefas da fila com maior urgência sejam atendidas primeiro.

Heterogeneous Greedy (HGreedy): também possui uma fila ordenada de tarefas

de forma decrescente de acordo com o deadline, mas também utiliza as

previsões de tempo para tomar decisões mais otimizadas na escolha da unidade

de processamento. Desta forma, o escalonador escolhe a máquina mais veloz

disponível para executar uma tarefa.

Heterogeneous Deadline Comitted (HDeadline Comitted): utiliza as informações

25

de previsão de tempo das tarefas com o objetivo de aumentar a taxa de

cumprimento de deadlines e atender de forma precisa as restrições de tempo

das tarefas.

Heterogeneous Deadline Comitted Look Ahead (HDeadline Comitted LA): seu

objetivo é suprir as desvantagens do algoritmo anterior. Sendo que, quando há

tarefas na fila e alguma unidade de processamento fica livre, o algoritmo olha

para os processos em execução no momento e verifica se algum deles tem

previsão de acabar a tempo de cumprir o deadline da primeira tarefa da fila.

Esse processo é repetido para as demais tarefas da fila, até que não seja

encontrada uma unidade de processamento que possa atender o deadline,

dentre o grupo das unidades ocupadas. Quando isso ocorrer, a última tarefa

analisada será colocada na frente de todas as outras e alocada para o recurso

livre.

Heterogeneous Forced Deadline (HForced Deadline): não leva em consideração

as prioridades das tarefas. Dessa forma, sempre que um recurso for liberado, o

algoritmo busca na lista a primeira tarefa que cumpre o deadline naquele recurso

e a aloca para ele. Devido a isso, este algoritmo tente a atrasar a execução das

tarefas de maior prioridade.

Todos os algoritmos são implementados em um simulador de escalonamento,

que ao final da simulação, apresenta de forma gráfica o resultado da simulação, além

de gerar um arquivo contendo o tempo de simulação, tempo real de execução do

aplicativo, quantidade de deadlines atingidos, quantidade de processos executados por

cada processador, dentre outros.

Os testes realizados demostraram que o Heterogeneous Forced Deadline

atende a maior quantidade de deadlines, entretanto, obteve um desempenho inferior

em relação ao Heterogeneous Deadline Comitted Look Ahead. O algoritmo

Heterogeneous Greedy foi considerado o mais rápido em termos de tempo de

simulação, por escolher sempre a máquina mais rápida. Já o algoritmo Heterogeneous

FIFO, por ser de menor complexidade, segundo o autor, apresentou o pior resultado, o

que, segundo ele, comprovaria que a utilização de algoritmos mais complexos poderia

melhorar o sistema de escalonamento. O autor cita como principais ganhos: o aumento

do fluxo global de tarefas e do desempenho, e confiabilidade no atendimento das

tarefas de todo o processo de impressão.

Apesar da abrangência e ganhos obtidos em [NEM11], o trabalho apresentado

26

trata apenas de estratégias que tem como alicerce o ganho de desempenho, nada é

citado em relação a técnicas para redução de consumo de energia ou medição deste.

4.2 Mämmelä et al

O trabalho de [MAM11] apresenta um escalonador ciente do consumo de

energia que, segundo os autores, pode ser aplicado a um ambiente de grade

computacional. O escalonador proposto implementa três algoritmos de escalonamento,

E-FIFO, E-BFF e E-BBF, que são versões com reconhecimento de consumo de

energia, dos tradicionais algoritmos FIFO, BFF e BBF, já explicados na Seção 2.1.

Nesses algoritmos com consciência energética, é utilizado o método de desligar nós

ociosos caso haja mais de T segundos antes do início da primeira tarefa da fila. O

trabalho também apresenta modelos para calcular o consumo de energia de diversos

componentes de um computador, como: processador, memória, disco rígido, dentre

outros. Para os testes, foram utilizadas tarefas com diferentes características para que

se pudessem obter vários níveis de estresse no sistema para cada tipo de tarefa (CPU,

memória), recursos a serem utilizados (número de nós, quantidade de memória

necessária), tempo para conclusão de tarefas e quantidade de tarefas criadas.

Baseados nos resultados dos testes, os autores citam que o escalonador é

capaz de reduzir o consumo de energia em 6-16%, dependendo da carga de trabalho e

sem que haja uma perda significativa no tempo de resposta ou aumento do tempo de

espera das tarefas. Sendo que o E-BFF e o E-BBF, são mais eficientes do que o E-

FIFO, pois diminuem o tempo de espera das tarefas, por explorar o preenchimento dos

nós ociosos com a execução de tarefas menores, o que não ocorre no E-FIFO.

4.3 Lammie et al

No trabalho desenvolvido por [LAM09], são propostas três estratégias que visam

minimizar o consumo de energia e maximizar o desempenho, são elas:

Escala de frequência de CPU: técnica para reduzir a velocidade da CPU,

a fim de diminuir a energia consumida e o calor que é dissipado. É

empregada para aumentar o rendimento do sistema em vez de ativar nós

que serão subutilizados;

Dimensionamento automático de nós: mecanismo utilizado pra ligar e

27

desligar máquinas, a fim de corresponder a requisitos como: tamanho da

fila, características das tarefas. Dessa forma, apenas os recursos ativos

consumem energia. Sendo que, máquinas só são ativadas quando se

considera que o cluster não pode suportar a carga atual e são desligadas

ao permanecerem inativas por um período de tempo específico;

Atribuição inteligente de jobs: camada de otimização implementada nos

algoritmos de gerenciamento do cluster, que opera para que não hajam

máquinas ligadas sem necessidade.

Os autores relatam que as simulações foram realizadas em um cluster onde

cada nó que o compõem é de uma especificação idêntica, a energia consumida por

cada nó sob a mesma carga, também é idêntica e todos os trabalhos submetidos ao

cluster são estritamente intensivos de CPU. Com isso, as latências relacionadas ao

acesso à memória, disco e rede não são consideradas.

Os testes mostraram que um nó é mais eficiente energeticamente quando opera

em baixa frequência, mas o tempo de resposta é ruim. Sendo que a quantidade de

energia consumida aumenta de acordo com o número de nós ativos do cluster. Essa

situação pode ser resolvida ao utilizar-se o Dimensionamento automático de nós, que

gerencia o tempo que as máquinas permanecem executando, baseado na carga de

trabalho a que o sistema está sendo submetido.

4.4 Ge et al

O trabalho de [GE09] fala a respeito de um framework chamado PowerPack, que

isola o consumo de energia de dispositivos como: discos, memória, placas de rede e

processadores em um cluster de alto desempenho e correlaciona tais medidas para

funções da aplicação. Segundo os autores, fatores como: a especificação elétrica de

cada componente, as características das aplicações e o software do sistema,

influenciam a alimentação e o consumo de energia em sistemas de alto desempenho.

O framework PowerPack é uma combinação de hardware (sensores e

medidores digitais) e software (drivers, benchmarks e ferramentas de análise). Em

conjunto esses componentes de hardware e software permitem a medição de grão fino

da potência em nível de componente e a sincronização automática entre os perfis de

energia e segmentos de código da aplicação.

As análises realizadas por [GE09] mostraram que:

28

tanto a energia consumida pelo sistema como a consumida pelos

componentes individuais variam de acordo com a carga de trabalho;

ao reduzir o consumo de energia da fonte de alimentação e do cooler

pode-se economizar energia;

quando o sistema está sob carga, o consumo de energia da CPU domina.

Mas dependendo das características da carga de trabalho, o disco e a

memória também podem ser consumidores significativos do orçamento

total de energia.

Os resultados dos testes indicaram que sistemas multicore contribuem para uma

maior eficiência energética para determinadas aplicações, estando diretamente

relacionado com as características da aplicação e da carga de trabalho.

4.5 Considerações Finais

O trabalho proposto, dará continuidade ao desenvolvido por Nemetz et al.

Porém, diferenciasse do mesmo pois propõem o desenvolvimento de um escalonador

voltado à economia de energia. Esse escalonador tomará decisões de escalonamento

não apenas buscando o ganho de desempenho, mas também a redução do consumo

de energia. O escalonador utilizará o consumo de energia de cada cluster, que

compõem a grade, para decidir qual é o cluster mais apropriado para executar

determinada tarefa. Também propõem-se utilizar diferentes tipos de tarefas para validar

o escalonador, não apenas tarefas de impressão, como em [NEM11].

Já o trabalho de Mämmelä et al utiliza apenas dois algoritmos de escalonamento

para realizar os testes de validação. O escalonador que propomos usará outros

algoritmos, visando obter uma validação mais consistente. Lammie et al utiliza escala

de frequência de CPU para alterar a velocidade da mesma e também o desligamento

de nós do cluster, caso eles permaneçam inativos por determinado intervalo de tempo.

A princípio o nosso escalonador não utilizará essas técnicas, por não serem o foco de

nossa pesquisa. Outro fator de diferenciação é que cada nó que compõem o cluster

não possuirá a mesma especificação de hardware. O trabalho de Ge et al utiliza um

framework para medir o consumo de cada componente da máquina, o que não

utilizaremos. Entretanto, algumas análises que foram realizadas em [GE09], como por

exemplo, que o consumo de energia dos componentes muda dependendo das

características da carga de trabalho, serão úteis para nossa pesquisa.

29

PROPOSTA PARA DISSERTAÇÃO DE MESTRADO 5

Neste capítulo é apresentada a proposta para a dissertação de mestrado, que

consiste no desenvolvimento de um escalonador de tarefas para grade computacional,

com foco em economia de energia. Ao longo deste capítulo, explicar-se-á como o

trabalho será desenvolvido no decorrer do ano de 2012, as justificativas e os objetivos

do mesmo, a metodologia a ser utilizada, e ainda as atividades que serão executadas

para alcançar os objetivos propostos e em que período de tempo.

É importante destacar, que podem ocorrer modificações quanto ao que está

sendo proposto neste trabalho, pois ao realizar-se um estudo mais amplo sobre as

técnicas, as estratégias e os procedimentos necessários para o seu desenvolvimento,

mudanças podem ser inevitáveis.

5.1 Justificativa

Em ambientes de grade computacional, nos quais há uma grande quantidade de

jobs para serem executados, é de suma importância utilizar um escalonador que

garanta:

que todos os jobs tenham acesso às unidades de processamento, mantendo as

mesmas ocupadas para que a eficiência seja atingida;

que minimize o tempo de resposta, o tempo de espera e a sobrecarga

(overhead);

que mantenha o uso dos recursos balanceado;

que atenda os deadlines;

que maximize o número de jobs executados.

Mas atualmente, desenvolver escalonadores voltados apenas para obtenção de

um maior desempenho nem sempre é a melhor opção, já que esses grandes centros

que usam HPC enfrentam o problema de excesso de consumo de energia,

decorrentes, inúmeras vezes, do mau uso dos recursos disponíveis, o que causa um

aumento dos custos com eletricidade e refrigeração das instalações.

Em virtude disso, é proposto o desenvolvimento de um escalonador, que além

de manter um bom desempenho do sistema, também trabalhe com o cálculo do

consumo de energia, para decidir qual a melhor opção de escalonamento, em termos

30

de consumo energético, que se deve optar. Também é proposta a alteração dos

algoritmos de escalonamento que foram desenvolvidos no trabalho anterior [NEM11] do

Grupo de Modelagem de Aplicações Paralelas (GMAP) o qual iremos dar continuidade,

para que usem a informação de consumo de energia para tomar decisões de

escalonamento. Caso haja necessidade, serão desenvolvidos novos algoritmos que

trabalhem com os dados advindos do mecanismo de cálculo do consumo energético na

execução de tarefas.

5.2 Objetivos

Os objetivos centrais do trabalho a ser desenvolvido são: a criação de um

mecanismo de cálculo de consumo energético na execução de jobs, que considere

alguns fatores que afetam no consumo, como: tempo de execução, uso inadequado de

recursos, ociosidade, quantidade de quilowatts hora (kWh) que cada cluster que

compõem a grade consome; alteração dos algoritmos de escalonamento já citados na

Seção 4.1, de modo que se obtenha uma redução do consumo de energia, sem perdas

significativas em termos de desempenho.

Para tal, a decisão do escalonador será baseada no mecanismo de cálculo de

consumo de energia, que utilizará os dados fornecidos pelo Mecanismo de Previsão do

escalonador desenvolvido em [NEM11]. O escalonador atualmente efetua sua decisão

utilizando:

o cálculo do tempo necessário para fazer a rasterização de determinada tarefa

em cada um dos clusters disponíveis (informação fornecida pelo mecanismo de

previsão);

a disponibilidade de recursos (informação fornecida pelo mecanismo de busca) e

baseado em informações sobre a complexidade das tarefas.

Na nossa proposta, o escalonador passará a levar em consideração a

quantidade de energia necessária para executar determinada tarefa. Essas

informações serão fornecidas ao Energy Efficient Scheduler (EES), que escalonará o

job para o cluster que compõem a grade que obtiver o menor gasto de energia

(informação fornecida pelo mecanismo que calcula o consumo), utilizando um dos

algoritmos de escalonamento disponíveis. A Figura 3 mostra o fluxo do EES com o

mecanismo de cálculo de consumo energético:

31

Figura 3 – Modelo do EES.

O módulo de Cálculo de Consumo utilizará a informação de kWh, por cluster,

fornecida pelo módulo de Busca de Recursos e o tempo de execução da tarefa,

calculado pelo Mecanismo de Previsão. O Mecanismo de Previsão utilizará as

informações disponibilizadas pelo módulo de Busca de Recursos, como: memória,

disco, processador. Assim, o EES tomará a decisão baseado no cluster que possua o

menor consumo energético e que atenda as características das tarefas, como:

prioridade de execução e cumprimento de deadlines. Dependendo da situação, uma

das estratégias que poderia ser utilizada seria atribuir o cluster mais eficiente, no

aspecto energético, para a tarefa de maior tempo de execução. Sendo que as tarefas

utilizadas para os testes, não serão apenas referentes a documentos em PDF como em

[NEM11], mas sim diferentes tipos de tarefas, como por exemplo, tarefas voltadas a

entrada e saída, a cálculos matemáticos pesados, ao uso de memória.

Além dos objetivos anteriormente citados, ao longo deste trabalho pretende-se

também:

estudar os fatores que afetam o consumo de energia;

estudar tipos de tarefas e algoritmos de escalonamento;

estudar e elaborar técnicas para tornar os algoritmos de escalonamento

energeticamente eficientes;

estudar como realizar o cálculo do consumo de energia de determinada tarefa,

quais as informações a respeito do hardware e da tarefa, devem ser analisadas;

estudar quais são os tipos de testes mais apropriados para avaliar

escalonadores, como por exemplo, a carga e o tipo de trabalho.

32

5.3 Metodologia

A metodologia utilizada nesta pesquisa inicia-se com um estudo mais

aprofundado sobre escalonamento de tarefas. Seguido pelo estudo do trabalho

desenvolvido por [NEM11] (codificação, testes e resultados obtidos) e sobre técnicas

que podem ser utilizadas para minimizar o consumo de energia no escalonamento de

tarefas em uma grade computacional. Posteriormente, será desenvolvido o módulo de

cálculo do consumo de energia que cada tarefa terá ao ser executada em determinado

cluster e baseado neste, o desenvolvimento de estratégias de escalonamento dessas

tarefas. O próximo passo será a elaboração dos cenários de teste, que serão

compostos por tarefas com características diferentes, para que se possa validar

corretamente o EES. Ainda não decidiu-se se a validação será realizada através de

simulação ou utilizando a plataforma do Grid’5000 (instrumento científico para o estudo

de sistemas paralelos e distribuídos de grande escala, a infraestrutura do Grid'5000 é

geograficamente distribuída por 10 sites na França, sendo que Porto Alegre é

oficialmente o primeiro site no exterior). Por fim, será realizada a avaliação dos

resultados obtidos nos testes.

5.4 Cronograma de Atividades

No decorrer do ano de 2012 algumas atividades serão executadas para elaborar

o trabalho proposto neste documento. Abaixo, segue um detalhamento de cada uma

delas:

1. Estudo do processo de escalonamento de tarefas: nesta atividade, será

realizado um estudo mais detalhado sobre escalonamento de tarefas e sobre os tipos

de algoritmos de escalonamento;

2. Estudo do trabalho desenvolvido por [NEM11]: estudo do trabalho escrito, dos

códigos desenvolvidos, dos testes realizados e a realização de simulações para

entender o funcionamento do sistema anteriormente desenvolvido;

3. Avaliação do impacto das características de cada tarefa no seu escalonamento:

estudo aprofundado das características que as tarefas podem possuir e como isso

afeta seu escalonamento;

4. Estudo dos fatores que devem ser considerados para calcular o consumo de

energia na execução de determinadas tarefas;

33

5. Estudo de estratégias de escalonamento que minimizem o consumo de energia

em um ambiente de grade: nesta atividade, será realizado um estudo sobre estratégias

de escalonamento que podem ser utilizadas para reduzir o consumo energético;

6. Desenvolvimento do módulo de cálculo do consumo energético: nesta etapa

será realizado o desenvolvimento do módulo responsável por calcular o consumo

energético de determinada tarefa;

7. Desenvolvimento das estratégias do EES: criação das estratégias e

desenvolvimento das alterações dos algoritmos de escalonamento existentes;

8. Seminário de andamento: elaboração e apresentação do seminário de

andamento;

9. Escrita de artigos: redação de artigos para conferências;

10. Elaboração dos cenários de teste: construção dos cenários de testes que

conterão tarefas com diferentes características;

11. Testes e validação das estratégias de escalonamento propostas: realização de

testes para analisar o desempenho e a redução do consumo de energia obtida com a

utilização dos algoritmos de escalonamento propostos;

12. Escrita da dissertação de mestrado: escrita do documento que relata o trabalho

realizado e elaboração da apresentação;

13. Defesa da dissertação: apresentação e defesa da dissertação de mestrado.

A Tabela 1 apresenta as atividades descritas anteriormente, de acordo com uma

linha de tempo, que inicia em Janeiro de 2012 e conclui-se em dezembro do mesmo

ano. Na primeira coluna estão descritas as atividades previstas e anteriormente

detalhadas, e nas demais colunas estão os meses. Os quadros com sombra cinza

representam a previsão para a execução da atividade.

Atividades Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez

1

2

3

4

5

6

7

8

9

10

11

12

13

Tabela 1 – Cronograma de Atividades.

34

REFERÊNCIAS

[BEL08] BELADY, C.; RAWSON, A.; PFLUEGER, J.; CADER, T. “Green grid data center power efficiency metrics: PUE and DCIE”, 2008. Disponível em: http://www.thegreengrid.org/~/media/WhitePapers/White_Paper_6_-_PUE_and_DCiE_Eff_Metrics_30_December_2008.pdf?lang=en. Acesso em: Maio 2011.

[CAS88] CASAVANT, T.; KUHL, J. “A Taxonomy of Scheduling in General-purpose

Distributed Computing Systems”. IEEE Trans. on Software Engineering, vol. 14, no.2, Fev 1988, pp. 141-154.

[FAN07] FAN, X.; WEBER, W. D.; BARROSO, L. A. “Power provisioning for a warehouse-sized computer”. In: Proceedings of the 34th annual international symposium on computer architecture (ISCA’07). ACM, New York, 2007, pp. 13–23.

[FER07] FERNANDES, L. G.; NUNES, T.; RAEDER, M.; GIANNETTI, F.; CABEDA,

A.; BEDIN, G. “An Improved Parallel XSL-FO Rendering for Personalized Documents”. In: 14th Euro PVM/MPI - European PVM/MPI Users Group Meeting, 2007, Paris (França). Recent Advances in Parallel Virtual Machine and Message Passing Interface (LNCS). Heidelberg : Springer Berlin, 2007, vol. 4757. pp. 56-63.

[FER11] FERNANDES, L. G.; NUNES, T.; KOLBERG, M.; GIANNETTI, F.;

NEMETZ, R.; CABEDA, A. “Job Profiling and Queue Management in High Performance Printing”. Computer Science - Research and Development, 2011, vol. 26, pp. 1-20.

[GAR09] GARG, S. K.; BUYYA R. “Exploiting Heterogeneity in Grid Computing for

Energy-Efficient Resource Allocation”. The 17th International Conference on Advanced Computing and Communications, ADCOM 2009, Bengaluru, India, Dec., 2009.

[GE09] GE, R.; FENG, X.; SONG, S.; CHANG, H. C.; LI, Dong; CAMERON, K. W.

“PowerPack: Energy Profiling and Analysis of High-Performance Systems and Applications". IEEE Transactions on Parallel and Distributed Systems, vol. 99, RapidPosts, 2009, pp. 658-671.

[GIA06] GIANNETTI, F.; FERNANDES, L. G.; TIMMERS, R.; NUNES, T.; RAEDER,

M.; CASTRO, M. “High Performance XSL-FO Rendering for Variable Data Printing”. In: 21st ACM SAC - Symposium on Applied Computing, 2006, Dijon (França). Proceedings of the 21st ACM Symposium on Applied Computing (ACM SAC). Nova Iorque, NY (EUA): ACM Press, 2006. vol. 1. pp. 811-817.

35

[GRA66] GRAHAM, R. L. “Bounds for Certain Multiprocessing Anomalies”. Bell System Technical Journal, ACM, New York, USA, vol. 45, no. 9, Nov 1966, pp. 1563–1581.

[LAM09] LAMMIE, M.; BRENNER, P.; THAIN, D. “Scheduling grid workloads on

multicore clusters to minimize energy and maximize performance”. In 10th IEEE/ACM International Conference on Grid Computing, 2009, pp. 145 –152.

[LIU10] LIU Y.; ZHU H. “A survey of the research on power management

techniques for high-performance systems". Software Practice & Experience, vol. 40, 2010, pp. 943–964.

[MAM11] MÄMMELÄ, O.; MAJANEN, M.; BASMADJIAN, R.; MEER, H. De; GIESLER,

A.;·HOMBERG, W. “Energy-aware job scheduler for high-performance computing”. Computer Science - Research and Development. Springer Berlin/Heidelberg. Issn: 1865-2034, 11p.

[MAR07] MAROWKA, A. “Parallel Computing on Any Desktop”. Communications of

the ACM - CACM, vol. 50, Set 2007, pp. 75-78. [NEM11] NEMETZ, R. “Otimizando o Fluxo de Tarefas em Sistemas Distribuídos de

Impressão: um Algoritmo de Escalonamento Dinâmico Não Preemptivo Baseado em Mecanismo de Previsão”. 2011. Dissertação (Mestrado em Programa de Pós-Graduação em Ciência da Computação) - Pontifícia Universidade Católica do Rio Grande do Sul.

[NUN09a] NUNES, T. “Aplicando Estratégias de Escalonamento Através da Análise

do Perfil de Jobs para Ambientes de Impressão Distribuídos”. Dissertação (Mestrado). Pontifícia Universidade do Rio Grande do Sul. Porto Alegre, Brasil, 2009.

[NUN09b] NUNES, T.; GIANNETTI, F.; KOLBERG, M.; NEMETZ, R.; CABEDA, A.;

FERNANDES, L. G. “Job Profiling in High Performance Printing”. In: 9th ACM Symposium on Document Engineering, 2009, Munique (Alemanha). Proceedings of the 9th ACM Symposium on Document Engineering (ACM DOCENG). Nova Iorque, NY (EUA): ACM Press, 2009. pp. 109-118.

[NUN09c] NUNES, T.; RAEDER, M.; KOLBERG, M.; FERNANDES, L. G.; CABEDA,

A.; GIANNETTI, F. “High Performance Printing:Increasing Personalized Documents Rendering through PPML Jobs Profiling and Scheduling”. In: 12th IEEE CSE - International Conference on Computational Science and Engineering, 2009, Vancouver (Canadá). Proceedings of the 12th IEEE International Conference on Computational Science and Engineering (CSE). Los Alamitos, CA (EUA): IEEE Computer Society, 2009. pp. 285-291.

36

[SCA07] SCARAMELLA, J.; HEALEY, M. “Service-Based Approaches to Improving Data Center Thermal and Power Efficiencies”, 2007. Disponível em: https://h30406.www3.hp.com/campaigns/2007/promo/1-3ISN9/images/_3page-FINAL_TLT_Services_paper_52407.pdf. Acesso em: Maio 2011.

[STR05] STRONG, P. “Enterprise Grid Computing”. Queue - Enterprise Distributed

Computing, vol. 3, Jul-Ago 2005, pp. 50-59. [TAN08] TANEMBAUM, A.; WOODHULL, A. “Sistemas operacionais, projeto e

implementação”: Tradução João Tortello. 3 ed. Porto Alegre: Bookman, 2008, 992p.

[VYK09] VYKOUKAL, J.; WOLF, M.; BECK, R. “Does green it matter? Analysis of

the relationship between green it and grid technology from a resource-based view perspective”. In: Pacific Asia Conference on Information Systems - PACIS, 2009, 13p.