Dependability Mechanisms for Desktop Grids
Total Page:16
File Type:pdf, Size:1020Kb
UNIVERSIDADE DE COIMBRA FACULDADE DE CIÊNCIAS E DE TECNOLOGIA DEPARTAMENTO DE ENGENHARIA INFORMÁTICA DEPENDABILITY MECHANISMS FOR DESKTOP GRIDS Patrício Rodrigues Domingues DOUTORAMENTO EM ENGENHARIA INFORMÁTICA 2008 UNIVERSIDADE DE COIMBRA FACULDADE DE CIÊNCIAS E DE TECNOLOGIA DEPARTAMENTO DE ENGENHARIA INFORMÁTICA DEPENDABILITY MECHANISMS FOR DESKTOP GRIDS Patrício Rodrigues Domingues DOUTORAMENTO EM ENGENHARIA INFORMÁTICA 2008 Tese orientada pelo Prof. Doutor Luís Moura e Silva This work was partially supported by the Programa de Formação Avançada de Docentes do Ensino Superior Medida 5/Acção 5.3 (PRODEP III), by the Por- tuguese Foundation for Science and Technology under the POSI programme, by the FEDER programme of the European Union through the R&D unit 326/94 (CISUC) and by the CoreGRID programme funded by the European Commission (Contract IST-2002-004265). Abstract It is a well-known fact that most of the computing power spread over the In- ternet simply goes unused, with CPU and other resources sitting idle most of the time: on average less than 5% of the CPU time is effectively used. Desktop grids are software infrastructures that aim to exploit the otherwise idle processing power, making it available to users that require computational resources to solve long- running applications. The outcome of some efforts to harness idle machines can be seen in public projects such as SETI@home and Folding@home that boost im- pressive performance figures, in the order of several hundreds of TFLOPS each. At the same time, many institutions, both academic and corporate, run their own desk- top grid platforms. However, while desktop grids provide free computing power, they need to face important issues like fault tolerance and security, two of the main problems that harden the widespread use of desktop grid computing. In this thesis, we aim to exploit a set of fault tolerance techniques, such as checkpointing and redundant executions, to promote faster turnaround times. We start with an experimental study, where we analyze the availability of the comput- ing resources of an academic institution. We then focus on the benefits of sharing checkpoints in both institutional and wide-scale environments. We also explore hy- brid schemes, where the traditional centralized desktop grid organization is com- plemented with peer-to-peer resources. Another major issue regarding desktop grids is related with the level of trust that can be achieved relatively to the volunteered hosts that carry out the execu- tions. We propose and explore several mechanisms aimed at reducing the waste of computational resources needed to detect incorrect computations. For this purpose, we detail a checkpoint-based scheme for early detection of errors. We also propose and analyze an invitation-based strategy coupled to a credit rewarding scheme, to allow the enrollment and filtering of more trustworthy and more motivated resource donors. To summarize, we propose and study several fault tolerance methodologies oriented toward a more efficient usage of resources, resorting to techniques such as checkpointing, replication and sabotage tolerance to fasten and to make more reliable executions that are carried over desktop grid resources. The usage of tech- niques like these ones will be of ultimate importance for the wider deployment of applications over desktop grids. KEYWORDS: Fault tolerance, desktop grids, volunteer computing, checkpoint- ing, scheduling, sabotage-tolerance. Resumo Estendido Introdução É um facto sabido que uma vasta percentagem do poder computacional de com- putadores pessoais acaba perdida. De facto, no âmbito desta dissertação constatou- se que a percentagem média de inactividade dos processadores de mais de centena e meia de computadores de uma instituição académica era de 97,93%. Este valor confirma a regra empírica dos 5/95%, regra essa que afirma que um CPU tem uma taxa média de utilização de cerca 5%, sendo os restantes 95% desaproveita- dos. Ironicamente, o constante aumento do poder computacional leva a que o poder computacional desaproveitado aumente de ano para ano. O recente aparec- imento de arquitecturas que integram vários núcleos independentes (multi-cores) num mesmo processador leva a que possam existir vários cores que, grande parte do tempo, não estão a ser usados pelo utilizador da máquina. Deste modo, perde-se poder computacional, uma vez que recursos como memória e CPU não utilizados num dado instante não podem ser armazenados para posterior uso. Se a maioria dos utilizadores de computadores pessoais apenas recorre à to- talidade das capacidades da máquina por curtos períodos de tempos para suprir necessidades pontuais, outros utilizadores estão fortemente dependentes de eleva- dos recursos computacionais para a execução de aplicações nas mais diversas áreas do conhecimento, desde o cálculo das propriedades de compostos químicos, a con- strução de imagens 3-D, a detecção de ondas gravíticas, o experimentar de modelos de propagação de doenças, ou para uma das muitas outras áreas do saber que estão fortemente dependentes de poder computacional. Para estes utilizadores, todo o poder computacional que possam usar é bem-vindo. Obviamente, essa classe de utilizadores preferia ter acesso a recursos computacionais dedicados, mas esses ou não existem ou não estão disponíveis devido a restrições orçamentais. i O estudo de técnicas orientadas para o aproveitamento de recursos computa- cionais não dedicados data dos finais da década de 80. A generalização do com- putador pessoal e da Internet contribuíram ainda mais para o despontar de sistemas distribuídos de larga escala orientados para o aproveitamento de recursos denom- inados de voluntários. Esta designação advém do facto dos donos/responsáveis destes recursos os disponibilizarem voluntariamente. Estes sistemas, também des- ignados pelo termo anglo-saxónico volunteer computing, foram popularizados pelo seu uso em projectos de computação voluntária tais como o distributed.net, o SETI@home, o Folding@home, entre muitos outros. Na sequência do enorme sucesso do projecto SETI@home, e cientes das dificuldades técnicas que sentiram na criação e manutenção do referido projecto, os seus promotores implementaram a plataforma Berkeley Open Infrastructure for Network Computing (BOINC). Desta forma, o BOINC foi desenvolvido com o intuito de tornar mais simples e flexível a instalação e manutenção de um projecto de computação voluntária. O BOINC é hoje umas das principais plataformas para computação voluntária para ambientes de larga escala, sendo empregue em cerca de trinta projectos públicos de com- putação voluntária tais como o Einstein@home, o SIMAP@home, o Rosetta@home e o SZTAKI Desktop Grid, entre outros. O XtremWeb é outro exemplo de plataforma para aproveitamento de recursos não dedicados, embora esteja mais vocacionado como plataforma para experimentação de conceitos e técnicas relacionadas com o desktop grid. Apesar dos custos associados ao uso de recursos voluntários serem reduzidos relativamente ao poder computacional que pode ser alcançado, algumas limitações restringem o seu uso. As limitações dos ambientes de computação voluntária relacionam-se com (1) a baixa prioridade de execução concedida às aplicações externas, e com (2) as assimetrias das redes de computadores que levam a que, muitas vezes, duas ou mais máquinas não possam comunicar directamente entre si. De facto, os recursos não dedicados executam as aplicações externas com um nível de prioridade inferior ao empregue para as aplicações dos utilizadores inter- activos, e, nalguns casos, as aplicações externas apenas são executadas quando não existe uso interactivo dos recursos, isto é, quando nenhum utilizador está a usar a máquina. Nestes casos, a execução de uma aplicação externa é suspensa logo que seja detectada utilização interactiva da máquina. Adicionalmente, um recurso pode repentinamente ser desligado por um período de tempo indeterminado ou mesmo por tempo infinito (por exemplo, o dono do recurso decidiu cessar a partilha do mesmo). A conjugação destes dois factores – baixa prioridade no acesso aos re- ii cursos e imprevisibilidade da disponibilidade dos recursos – leva a que os recursos não dedicados apresentem elevada volatilidade, uma característica a ponderar por quem adapta as aplicações externas a ambientes não dedicados. A técnica habitual para lidar com este tipo de situações é a da salvaguarda periódica do estado da apli- cação para suporte persistente (checkpointing). Na sequência de uma interrupção, e logo que o recurso esteja de novo disponível, a execução da aplicação reinicia-se a partir do último ponto de execução salvaguardado. No que respeita à assimetria das comunicações, os mecanismos de firewalls e de translação de endereços (vulgo Network Address Translation, NAT) originam re- des assimétricas, nas quais, as máquinas não podem comunicar directamente umas com as outras, ou então, a comunicação até pode ser feita directamente, mas apenas pode ocorrer num determinado sentido. É aliás a assimetria nas comunicações que leva a que os ambientes de computação desktop grids sejam baseados no modelo de master-worker, no qual a iniciativa da comunicação parte do lado do worker. Outra limitação dos canais de comunicação relaciona-se com a largura de banda. De facto, para além da heterogeneidade ao nível da capacidade dos canais de co- municação, com a existência de recursos com diferentes velocidades de acesso à rede, existe ainda assimetria nas larguras de banda, com débitos de envio difer- entes dos débitos