manda
Dentro do nosso conhecimento, n´os somos o primeiro grupo a investigar o potencial do uso de redes de broadcast para a construc¸˜ao de infraestruturas computacionais distribu´ıdas instantˆaneas e sob demanda [Batista et al. 2007] [Costa et al. 2009]. Existem, entretanto, alguns outros trabalhos que apresentam convergˆencia com a nossa pesquisa.
O framework FALKON (Fast and Light-weight tasK executiON) [Raicu et al. 2007; Raicu et al. 2008] tem como foco a possibilidade de execuc¸˜ao r´apida de aplicac¸˜oes HTC em clusters computacionais baseando-se na integrac¸˜ao de escalonadores multi-n´ıvel e despa- chantes (dispatchers) simplificados para oferecer alto desempenho. O escalonamento multi- n´ıvel do FALKON separa a aquisic¸˜ao de recursos (atrav´es de requisic¸˜oes em lote para esca- lonadores, por exemplo) da distribuic¸˜ao de tarefas, em um processo similar ao da abordagem OddCI.
7.2 Provisionamento e Coordenac¸˜ao de Recursos sob Demanda 137
abstrac¸˜ao de fork de m´aquina virtual que instantaneamente duplica uma VM em m´ultiplas r´eplicas executando em diferentes servidores atrav´es do uso de um esquema de comunicac¸˜ao um-para-muitos, como os sistemas OddCI. Usando uma t´ecnica de distribuic¸˜ao multicast, SNOWFLOCK fornece uma eficiente clonagem em mem´oria de VMs ativas que, potencial- mente, pode escalar para centenas de r´eplicas consumindo poucos recursos de I/O da nuvem. Assim como o OddCI, SNOWFLOCK tamb´em aborda a instanciac¸˜ao, sob demanda, de mi- lhares de VMs paralelas em determinados ambientes de computac¸˜ao na nuvem, mas que, diferentemente da nossa abordagem, requer a pr´e-alocac¸˜ao de recursos f´ısicos e a integrac¸˜ao de sua API nas aplicac¸˜oes em tempo de compilac¸˜ao.
Em termos de alocac¸˜ao de recursos sob demanda, o projeto NEPHELE [Warneke e Kao 2009] foi um dos primeiros frameworks para processamento paralelo que, explicitamente, buscou explorar a alocac¸˜ao dinˆamica de recursos para escalonamento e execuc¸˜ao de tarefas em ambientes de nuvem. Baseando-se em grafos de execuc¸˜ao (execution graphs) elaborados pelo usu´ario, o framework NEPHELE tamb´em traz a possibilidade, como o OddCI, para alocar e desalocar, automaticamente, recursos computacionais durante a execuc¸˜ao de uma aplicac¸˜ao.
Francois et al. [Francois, State e Festor 2007a] mostram que hackers, quando usando bot- nets, enfrentam os mesmos problemas de coordenac¸˜ao escal´avel enderec¸ados no Cap´ıtulo 5. Uma botnet ´e uma rede de computadores comprometidos (bots) controlados remotamente por um botmaster. Estas estruturas provaram sua eficiˆencia no controle de redes P2P com mais de 400.000 n´os [McLaughlin 2004]. O uso de soluc¸˜oes de gerenciamento de servic¸os de rede inspirados em modelos de malware para controle de redes de larga escala foi proposto por Francois et al. em trabalhos subsequentes [Francois, State e Festor 2007b; Francois, State e Festor 2008]. Os principais benef´ıcios destes modelos s˜ao: a) a capacidade de gerenciar um grande n´umero de n´os heterogˆeneos, e b) flexibilidade no uso, porque os controles e mecanismos de propagac¸˜ao s˜ao independentes das aplicac¸˜oes.
Desde que milh˜oes de PNAs ativos podem estar enviando heartbeat messages para o Controller, simultaneamente, mecanismos de hierarquizac¸˜ao, otimizac¸˜ao e distribuic¸˜ao de frequˆencia de envio devem ser incorporadas ao manuseio de tais mensagens para que as mesmas n˜ao representem um gargalo no sistema. Abordagens para problemas similares j´a foram propostas em outros contextos [Francois, State e Festor 2007a].
Na outra extremidade do processo, a infraestrutura de retaguarda precisa estar devida- mente aprovisionada para usufruir plenamente da potencial vaz˜ao de processamento su- portada pela instˆancia OddCI criada. Neste sentido, a taxa na qual o Backend consegue despachar tarefas para os dispositivos pode limitar o poder de computac¸˜ao potencialmente dispon´ıvel na instˆancia OddCI. Entretanto, h´a diversas abordagens que podem ser adotadas na montagem do Backend para impedir que o mesmo seja um gargalo para o sistema. Um exemplo de abordagem aplic´avel ´e o projeto do servidor de tarefas (Task Server) usado no BOINC [Anderson 2004], um middleware para computac¸˜ao volunt´aria, que consegue dis- tribuir cerca de8, 8 milh˜oes de tarefas por dia (101, 85 tarefas por segundo) usando apenas um ´unico computador de baixo custo. Com o uso de dois computadores adicionais, a sua capacidade aumenta para23, 6 milh˜oes de tarefas por dia (273, 14 tarefas por segundo).
Fedak at al. [Fedak et al. 2010] constru´ıram uma plataforma experimental para computac¸˜ao distribu´ıda usando dispositivos de baixa capacidade conectados atrav´es de banda larga, chamada DSL-Lab, que oferece a possibilidade para pesquisadores realizarem expe- rimentos em condic¸˜oes pr´oximas `aquelas que normalmente est˜ao dispon´ıveis com conex˜oes dom´esticas com a Internet. Os resultados confirmam que ´e poss´ıvel construir uma pilha completa de software em uma plataforma de design leve e de baixo custo sobre os dispo- sitivos conectados em banda larga implementando gest˜ao de recursos, eficiˆencia energ´etica, seguranc¸a e conectividade.
As estrat´egias propostas para o provisionamento OddCI para controlar o tamanho de instˆancia e garantir que ele ´e adequado para a vaz˜ao requerida pelo cliente est˜ao alinhadas com outras iniciativas de pesquisa. Aron e Chana propuseram um framework que oferece pol´ıticas de provisionamento para agendamento e alocac¸˜ao de recursos, e demonstraram que uma abordagem baseada no provisionamento de QoS ´e eficaz para minimizar o custo e o tempo de submiss˜ao de aplicac¸˜oes (submission burst time) [Aron e Chana 2012]. Rood e Lewis [Rood e Lewis 2009] estudaram a indisponibilidade freq¨uente e vol´atil de grades com- putacionais baseadas em recursos volunt´arios e usaram um modelo multi-estado para anali- sar um log de disponibilidade de m´aquinas baseado em dados coletados do Condor [Litzkow, Livny e Mutka 1988]. Partindo desse estudo, desenvolveram t´ecnicas de predic¸˜ao para pre- ver transic¸˜oes de recursos nos estados do modelo e, com base em tais previs˜oes, propuseram t´ecnicas de replicac¸˜ao de tarefas e escalonadores que s˜ao capazes de replicar as tarefas que
7.2 Provisionamento e Coordenac¸˜ao de Recursos sob Demanda 139
s˜ao mais prov´aveis de falhar, melhorando a eficiˆencia da execuc¸˜ao das aplicac¸˜oes.
Considerando contextos com recursos computacionais n˜ao dedicados, a previs˜ao de dis- ponibilidade dos dispositivos representa um aspecto relevante do provisionamento. A dispo- nibilidade de recursos no middleware para grades computacionais Condor ´e modelada em5 estados [Litzkow, Livny e Mutka 1988; Rood e Lewis 2009]: dispon´ıvel, usu´ario presente, limiar de CPU excedido, evicc¸˜ao de tarefa ou encerramento elegante (graceful shutdown) e indispon´ıvel. Tais estados diferenciam os tipos de indisponibilidade refletindo as pol´ıticas que os donos dos recursos preferem (por exemplo, permitir o uso do recurso mesmo quando parte do processamento estiver sendo utilizada). Com base nesses estados e no hist´orico de disponibilidade dos recursos [Rood e Lewis 2009], usam preditores para an´alise de intervalos considerando osN dias anteriores no mesmo hor´ario da previs˜ao (N-Day) ou considerando as N horas anteriores ao hor´ario da previs˜ao (N-Recent). A forma de an´alise considera o n´umero de transic¸˜oes do estado dispon´ıvel para cada outro estado de indisponibilidade (transactional) e calculam a porcentagem de tempo que o recurso permanece em cada es- tado (durational), utilizando uma inferˆencia sobre esses valores como a probabilidade do recurso mudar para o estado a seguir. Al´em disso, um esquema de ponderac¸˜ao que considera um peso igual, onde todas as transic¸˜oes possuem a mesma influˆencia no comportamento futuro do recurso (equal weighting). Outro esquema tem ponderac¸˜ao de tempo, onde as transic¸˜oes que ocorreram mais pr´oximas do hor´ario previsto emN dias anteriores recebem um peso maior (time weighting) e, por fim, h´a a possibilidade de maior ponderac¸˜ao para a transic¸˜ao mais recente, n˜ao considerando o hor´ario do dia (frehness weighting). Os resulta- dos de maior acur´acia de predic¸˜ao para o estado dos recursos entre os propostos foram de 77, 3% para a combinac¸˜ao transitional/N-recent/freshness (TRF) e 78, 3% para a combinac¸˜ao transitional/N-Day/equal(TDE). Essas duas combinac¸˜oes superaram outros preditores para recursos aplic´aveis em grades computacionais como Saturating and History Counter predic- tors [Mickens e Noble 2006], Multi-State and Single State Sliding Window predictors [Dinda 2006] e Ren Predictor [Ren et al. 2007]. A abordagem TRF ´e semelhante `a t´ecnica de selec¸˜ao por ranqueamento que usamos no Cap´ıtulo 5 mas requereu algumas simplificac¸˜oes para eliminar estados n˜ao naturais em alguns contextos nos quais os sistemas OddCI podem operar.