Pontifícia Universidade Católica do Rio Grande do Sul ... · PDF fileSRT...
Transcript of Pontifícia Universidade Católica do Rio Grande do Sul ... · PDF fileSRT...
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.